Class: LiveResource::Pubnub::PubnubProtocol

Inherits:
Object
  • Object
show all
Includes:
LiveResource::Protocol
Defined in:
lib/live_resource/pubnub/pubnub_protocol.rb

Instance Method Summary collapse

Constructor Details

#initialize(pubnub) ⇒ PubnubProtocol

Returns a new instance of PubnubProtocol.



9
10
11
# File 'lib/live_resource/pubnub/pubnub_protocol.rb', line 9

def initialize(pubnub)
  @pubnub = pubnub
end

Instance Method Details

#channel_for(resource_id) ⇒ Object



30
31
32
# File 'lib/live_resource/pubnub/pubnub_protocol.rb', line 30

def channel_for(resource_id)
  resource_id
end

#encode_identifier(identifier) ⇒ Object



34
35
36
37
# File 'lib/live_resource/pubnub/pubnub_protocol.rb', line 34

def encode_identifier(identifier)
  permitted_characters = URI::REGEXP::PATTERN::UNRESERVED
  identifier.gsub(/[^#{permitted_characters}]/, '_')
end

#publish_message(resource_identifier, type, params = nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/live_resource/pubnub/pubnub_protocol.rb', line 13

def publish_message(resource_identifier, type, params = nil)
  params     ||= {}
  channel_id = channel_for(resource_identifier)

  message = params.merge(
      :type           => type,
      :':resource_id' => resource_identifier,
  )

  @pubnub.publish(
      params.merge(
          :channel  => channel_id,
          :message  => message,
          :callback => ->(x) {}
      ))
end