Module: ApiMaker::ModelExtensions
- Defined in:
- lib/api_maker/model_extensions.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #api_maker_broadcast_create ⇒ Object
- #api_maker_broadcast_destroy ⇒ Object
- #api_maker_broadcast_destroy_channel_name ⇒ Object
- #api_maker_broadcast_update ⇒ Object
- #api_maker_broadcast_update_channel_name ⇒ Object
- #api_maker_event(event_name, args = {}) ⇒ Object
- #api_maker_event_channel_name(event_name) ⇒ Object
- #api_maker_resource ⇒ Object
Class Method Details
.included(base) ⇒ Object
2 3 4 |
# File 'lib/api_maker/model_extensions.rb', line 2 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#api_maker_broadcast_create ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/api_maker/model_extensions.rb', line 51 def api_maker_broadcast_create serializer = ApiMaker::Serializer.new(model: self) data_to_broadcast = ApiMaker::ResultParser.parse( model: self, model_class_name: self.class.name, model_id: id, model_type: serializer.resource.collection_name, type: :create ) ActionCable.server.broadcast(self.class.api_maker_broadcast_create_channel_name, data_to_broadcast) end |
#api_maker_broadcast_destroy ⇒ Object
63 64 65 66 67 68 69 70 71 72 |
# File 'lib/api_maker/model_extensions.rb', line 63 def api_maker_broadcast_destroy serializer = ApiMaker::Serializer.new(model: self) data_to_broadcast = ApiMaker::ResultParser.parse( model: self, model_id: id, model_type: serializer.resource.collection_name, type: :destroy ) ActionCable.server.broadcast(api_maker_broadcast_destroy_channel_name, data_to_broadcast) end |
#api_maker_broadcast_destroy_channel_name ⇒ Object
74 75 76 |
# File 'lib/api_maker/model_extensions.rb', line 74 def api_maker_broadcast_destroy_channel_name @api_maker_broadcast_destroy_channel_name ||= "api_maker_destroys_#{api_maker_resource.short_name}_#{id}" end |
#api_maker_broadcast_update ⇒ Object
78 79 80 81 82 83 84 85 86 87 |
# File 'lib/api_maker/model_extensions.rb', line 78 def api_maker_broadcast_update serializer = ApiMaker::Serializer.new(model: self) data_to_broadcast = ApiMaker::ResultParser.parse( model: self, model_id: id, model_type: serializer.resource.collection_name, type: :update ) ActionCable.server.broadcast(api_maker_broadcast_update_channel_name, data_to_broadcast) end |
#api_maker_broadcast_update_channel_name ⇒ Object
89 90 91 |
# File 'lib/api_maker/model_extensions.rb', line 89 def api_maker_broadcast_update_channel_name @api_maker_broadcast_update_channel_name ||= "api_maker_updates_#{api_maker_resource.short_name}_#{id}" end |
#api_maker_event(event_name, args = {}) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/api_maker/model_extensions.rb', line 34 def api_maker_event(event_name, args = {}) channel_name = api_maker_event_channel_name(event_name) serializer = ApiMaker::Serializer.new(model: self) data_to_broadcast = ApiMaker::ResultParser.parse( args: args, event_name: event_name, model_id: id, model_type: serializer.resource.collection_name, type: :event ) ActionCable.server.broadcast(channel_name, data_to_broadcast) end |
#api_maker_event_channel_name(event_name) ⇒ Object
47 48 49 |
# File 'lib/api_maker/model_extensions.rb', line 47 def api_maker_event_channel_name(event_name) "api_maker_events_#{api_maker_resource.short_name}_#{id}_#{event_name}" end |
#api_maker_resource ⇒ Object
93 94 95 |
# File 'lib/api_maker/model_extensions.rb', line 93 def api_maker_resource @api_maker_resource ||= self.class.api_maker_resource end |