class DataSift::LiveStream
Attributes
connected[RW]
retry_timeout[RW]
stream[R]
subscriptions[R]
Public Class Methods
new(config, stream)
click to toggle source
Calls superclass method
DataSift::ApiResource::new
# File lib/live_stream.rb, line 7 def initialize(config, stream) super(config) @stream = stream @retry_timeout = 0 @subscriptions = {} @connected = false end
Public Instance Methods
connected?()
click to toggle source
# File lib/live_stream.rb, line 23 def connected? @connected end
fire_ds_message(message)
click to toggle source
# File lib/live_stream.rb, line 27 def fire_ds_message(message) hash = false if message.has_key?(:hash) hash = message[:hash] end message.merge!({ :is_failure => message[:status] == 'failure', :is_success => message[:status] == 'success', :is_warning => message[:status] == 'warning', :is_tick => message[:status] == 'connected' }) @on_datasift_message.call(self, message, hash) end
fire_on_message(hash, interaction)
click to toggle source
# File lib/live_stream.rb, line 41 def fire_on_message(hash, interaction) callback = @subscriptions[hash] if callback == nil raise StreamingMessageError.new "no valid on_message callback provided for stream #{hash} with message #{interaction}" end callback.call(interaction, self, hash) end
on_datasift_message=(p)
click to toggle source
# File lib/live_stream.rb, line 18 def on_datasift_message=(p) raise BadParametersError.new('on_ds_message - 3 parameters required') unless p.arity == 3 @on_datasift_message = p end
subscribe(hash, on_message)
click to toggle source
# File lib/live_stream.rb, line 49 def subscribe(hash, on_message) raise BadParametersError.new('on_message - 3 parameters required') unless on_message.arity == 3 @subscriptions[hash] = on_message @stream.send "{ \"action\":\"subscribe\",\"hash\":\"#{hash}\"}" end
unsubscribe(hash)
click to toggle source
# File lib/live_stream.rb, line 55 def unsubscribe hash @stream.send "{ \"action\":\"unsubscribe\",\"hash\":\"#{hash}\"}" end