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