Module: Force::Concerns::Streaming

Included in:
Data::Client
Defined in:
lib/force/concerns/streaming.rb

Instance Method Summary collapse

Instance Method Details

#fayeObject

Public: Faye client to use for subscribing to PushTopics



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/force/concerns/streaming.rb', line 15

def faye
  raise 'Instance URL missing. Call .authenticate! first.' unless options[:instance_url]
  
  @faye ||= Faye::Client.new("#{options[:instance_url]}/cometd/#{options[:api_version]}").tap do |client|
    client.bind 'transport:down' do
      Force.log "[COMETD DOWN]"
      client.set_header 'Authorization', "OAuth #{authenticate!.access_token}"
    end

    client.bind 'transport:up' do
      Force.log "[COMETD UP]"
    end
  end
end

#subscribe(channels, &block) ⇒ Object

Public: Subscribe to a PushTopic

channels - The name of the PushTopic channel(s) to subscribe to. block - A block to run when a new message is received.

Returns a Faye::Subscription



10
11
12
# File 'lib/force/concerns/streaming.rb', line 10

def subscribe(channels, &block)
  faye.subscribe Array(channels).map { |channel| "/topic/#{channel}" }, &block
end