module ApiMaker::ModelExtensions

Public Class Methods

included(base) click to toggle source
# File lib/api_maker/model_extensions.rb, line 2
def self.included(base)
  base.extend(ClassMethods)
end

Public Instance Methods

api_maker_broadcast_create() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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 = {}) click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# File lib/api_maker/model_extensions.rb, line 93
def api_maker_resource
  @api_maker_resource ||= self.class.api_maker_resource
end