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



87
88
89
90
91
92
93
94
95
96
97
# File 'lib/api_maker/model_extensions.rb', line 87

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



99
100
101
102
103
104
105
106
107
108
# File 'lib/api_maker/model_extensions.rb', line 99

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



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

def api_maker_broadcast_destroy_channel_name
  @api_maker_broadcast_destroy_channel_name ||= self.class.api_maker_broadcast_destroy_channel_name(id)
end

#api_maker_broadcast_updateObject



114
115
116
117
118
119
120
121
122
123
# File 'lib/api_maker/model_extensions.rb', line 114

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



125
126
127
# File 'lib/api_maker/model_extensions.rb', line 125

def api_maker_broadcast_update_channel_name
  self.class.api_maker_broadcast_update_channel_name(id)
end

#api_maker_event(event_name, args = {}) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/api_maker/model_extensions.rb', line 70

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



83
84
85
# File 'lib/api_maker/model_extensions.rb', line 83

def api_maker_event_channel_name(event_name)
  self.class.api_maker_event_channel_name(id, event_name)
end

#api_maker_resourceObject



129
130
131
# File 'lib/api_maker/model_extensions.rb', line 129

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