Module: ApiMaker::ModelExtensions::ClassMethods

Defined in:
lib/api_maker/model_extensions.rb

Instance Method Summary collapse

Instance Method Details

#api_maker_broadcast_create_channel_nameObject



13
14
15
# File 'lib/api_maker/model_extensions.rb', line 13

def api_maker_broadcast_create_channel_name
  @api_maker_broadcast_create_channel_name ||= "api_maker_creates_#{api_maker_resource.short_name}"
end

#api_maker_broadcast_createsObject



7
8
9
10
11
# File 'lib/api_maker/model_extensions.rb', line 7

def api_maker_broadcast_creates
  after_commit on: :create do |model| # rubocop:disable Style/SymbolProc
    model.api_maker_broadcast_create
  end
end

#api_maker_broadcast_destroysObject



23
24
25
26
27
# File 'lib/api_maker/model_extensions.rb', line 23

def api_maker_broadcast_destroys
  after_commit on: :destroy do |model| # rubocop:disable Style/SymbolProc
    model.api_maker_broadcast_destroy
  end
end

#api_maker_broadcast_updatesObject



17
18
19
20
21
# File 'lib/api_maker/model_extensions.rb', line 17

def api_maker_broadcast_updates
  after_commit on: :update do |model| # rubocop:disable Style/SymbolProc
    model.api_maker_broadcast_update
  end
end

#api_maker_event(event_name, args = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/api_maker/model_extensions.rb', line 29

def api_maker_event(event_name, args = {})
  channel_name = api_maker_model_class_event_name(event_name)
  resource = ApiMaker::MemoryStorage.current.resource_for_model(self)
  data_to_broadcast = ApiMaker::ResultParser.parse(
    a: args,
    e: event_name,
    mt: resource.collection_name,
    t: :mce
  )
  ActionCable.server.broadcast(channel_name, data_to_broadcast)
end

#api_maker_model_class_event_name(event_name) ⇒ Object



41
42
43
# File 'lib/api_maker/model_extensions.rb', line 41

def api_maker_model_class_event_name(event_name)
  "api_maker_model_class_events_#{api_maker_resource.short_name}_#{event_name}"
end

#api_maker_resourceObject



45
46
47
# File 'lib/api_maker/model_extensions.rb', line 45

def api_maker_resource
  @api_maker_resource ||= ApiMaker::MemoryStorage.current.resource_for_model(self)
end