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_destroy_channel_name(id) ⇒ Object
- #api_maker_broadcast_destroys ⇒ Object
- #api_maker_broadcast_update_channel_name(id) ⇒ Object
- #api_maker_broadcast_updates ⇒ Object
- #api_maker_event(event_name, args = {}) ⇒ Object
- #api_maker_event_channel_name(id, event_name) ⇒ Object
- #api_maker_model_class_event_name(event_name) ⇒ Object
- #api_maker_resource ⇒ Object
- #translated_collection(collection_name, &blk) ⇒ 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_destroy_channel_name(id) ⇒ Object
17 18 19 |
# File 'lib/api_maker/model_extensions.rb', line 17 def api_maker_broadcast_destroy_channel_name(id) "api_maker_destroys_#{api_maker_resource.short_name}_#{id}" end |
#api_maker_broadcast_destroys ⇒ Object
35 36 37 38 39 |
# File 'lib/api_maker/model_extensions.rb', line 35 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_update_channel_name(id) ⇒ Object
25 26 27 |
# File 'lib/api_maker/model_extensions.rb', line 25 def api_maker_broadcast_update_channel_name(id) "api_maker_updates_#{api_maker_resource.short_name}_#{id}" end |
#api_maker_broadcast_updates ⇒ Object
29 30 31 32 33 |
# File 'lib/api_maker/model_extensions.rb', line 29 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
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/api_maker/model_extensions.rb', line 41 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_event_channel_name(id, event_name) ⇒ Object
21 22 23 |
# File 'lib/api_maker/model_extensions.rb', line 21 def api_maker_event_channel_name(id, event_name) "api_maker_events_#{api_maker_resource.short_name}_#{id}_#{event_name}" end |
#api_maker_model_class_event_name(event_name) ⇒ Object
53 54 55 |
# File 'lib/api_maker/model_extensions.rb', line 53 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
57 58 59 |
# File 'lib/api_maker/model_extensions.rb', line 57 def api_maker_resource @api_maker_resource ||= ApiMaker::MemoryStorage.current.resource_for_model(self) end |
#translated_collection(collection_name, &blk) ⇒ Object
61 62 63 64 65 66 67 |
# File 'lib/api_maker/model_extensions.rb', line 61 def translated_collection(collection_name, &blk) ApiMaker::TranslatedCollections.add( blk: blk, collection_name: collection_name, model_class: self ) end |