Class: OfflineBroadcaster::Adapter

Inherits:
Object
  • Object
show all
Defined in:
lib/offline_broadcaster/adapter.rb

Class Method Summary collapse

Class Method Details

.collect(channel:, receiver:, data:) ⇒ Object

Should be overloaded by specified adapter,

So we can customize behaviour on delivering the `data`.

Raises:

  • (NotImplementedError)


17
18
19
# File 'lib/offline_broadcaster/adapter.rb', line 17

def self.collect(channel:, receiver:, data:)
  raise NotImplementedError
end

.deliver(channel:, receiver:, data:) ⇒ Object

Delivers the ‘data` to receiver if it is online,

else save into DB.


6
7
8
9
10
11
12
13
# File 'lib/offline_broadcaster/adapter.rb', line 6

def self.deliver(channel:, receiver:, data:)
  config = receiver.offline_broadcaster_config
  if receiver.send(config.online_attribute)
    config.adapter.collect(channel: channel, receiver: receiver, data: data)
    return
  end
  Record.create!(channel: channel, receiver: receiver, data: data)
end