Module: ApiMaker::ModelExtensions::ClassMethods
- Defined in:
- lib/api_maker/model_extensions.rb
Instance Method Summary collapse
- #api_maker_broadcast_create_channel_name ⇒ Object
- #api_maker_broadcast_creates ⇒ Object
- #api_maker_broadcast_destroys ⇒ Object
- #api_maker_broadcast_updates ⇒ Object
- #api_maker_event(event_name, args = {}) ⇒ Object
- #api_maker_model_class_event_name(event_name) ⇒ Object
- #api_maker_resource ⇒ Object
Instance Method Details
#api_maker_broadcast_create_channel_name ⇒ Object
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_creates ⇒ Object
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_destroys ⇒ Object
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_updates ⇒ Object
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_resource ⇒ Object
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 |