class SalesforceStreamer::Server
Attributes
client[R]
push_topics[W]
Public Class Methods
new(push_topics: [])
click to toggle source
# File lib/salesforce_streamer/server.rb, line 6 def initialize(push_topics: []) @push_topics = push_topics end
Public Instance Methods
restart()
click to toggle source
# File lib/salesforce_streamer/server.rb, line 17 def restart Log.info 'Restarting server' reset_client EM.next_tick { subscribe } end
run()
click to toggle source
# File lib/salesforce_streamer/server.rb, line 10 def run Log.info 'Starting server' catch_signals reset_client EM.run { subscribe } end
Private Instance Methods
catch_signals()
click to toggle source
# File lib/salesforce_streamer/server.rb, line 25 def catch_signals %w[INT USR1 USR2 TERM TTIN TSTP].each do |sig| trap sig do puts "Caught signal #{sig}. Shutting down..." exit 0 end end end
reset_client()
click to toggle source
# File lib/salesforce_streamer/server.rb, line 34 def reset_client @client = Restforce.new client.authenticate! Configuration.instance.faye_extensions.each do |extension| Log.debug %(adding Faye extension #{extension}) extension.server = self if extension.respond_to?(:server=) client.faye.add_extension extension end end
subscribe()
click to toggle source
# File lib/salesforce_streamer/server.rb, line 44 def subscribe @push_topics.each do |topic| client.subscribe topic.name, replay: Configuration.instance.replay_adapter do |message| Log.info "Message #{message.dig('event', 'replayId')} received from topic #{topic.name}" topic.handle message end end end