Module: ApiMaker::ModelExtensions

Defined in:
lib/api_maker/model_extensions.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

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_createObject



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/api_maker/model_extensions.rb', line 67

def api_maker_broadcast_create
  serializer = ApiMaker::Serializer.new(model: self)
  data_to_broadcast = ApiMaker::ResultParser.parse(
    m: self,
    mcn: self.class.name,
    mi: id,
    mt: serializer.resource.collection_name,
    t: :c
  )
  ActionCable.server.broadcast(self.class.api_maker_broadcast_create_channel_name, data_to_broadcast)
end

#api_maker_broadcast_destroyObject



79
80
81
82
83
84
85
86
87
88
# File 'lib/api_maker/model_extensions.rb', line 79

def api_maker_broadcast_destroy
  serializer = ApiMaker::Serializer.new(model: self)
  data_to_broadcast = ApiMaker::ResultParser.parse(
    m: self,
    mi: id,
    mt: serializer.resource.collection_name,
    t: :d
  )
  ActionCable.server.broadcast(api_maker_broadcast_destroy_channel_name, data_to_broadcast)
end

#api_maker_broadcast_destroy_channel_nameObject



90
91
92
# File 'lib/api_maker/model_extensions.rb', line 90

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_updateObject



94
95
96
97
98
99
100
101
102
103
# File 'lib/api_maker/model_extensions.rb', line 94

def api_maker_broadcast_update
  serializer = ApiMaker::Serializer.new(model: self)
  data_to_broadcast = ApiMaker::ResultParser.parse(
    m: self,
    mi: id,
    mt: serializer.resource.collection_name,
    t: :u
  )
  ActionCable.server.broadcast(api_maker_broadcast_update_channel_name, data_to_broadcast)
end

#api_maker_broadcast_update_channel_nameObject



105
106
107
# File 'lib/api_maker/model_extensions.rb', line 105

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



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/api_maker/model_extensions.rb', line 50

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(
    a: args,
    e: event_name,
    mi: id,
    mt: serializer.resource.collection_name,
    t: :e
  )
  ActionCable.server.broadcast(channel_name, data_to_broadcast)
end

#api_maker_event_channel_name(event_name) ⇒ Object



63
64
65
# File 'lib/api_maker/model_extensions.rb', line 63

def api_maker_event_channel_name(event_name)
  "api_maker_events_#{api_maker_resource.short_name}_#{id}_#{event_name}"
end

#api_maker_resourceObject



109
110
111
# File 'lib/api_maker/model_extensions.rb', line 109

def api_maker_resource
  @api_maker_resource ||= self.class.api_maker_resource
end