class Iqfeed::Level1Client

Public Class Methods

new(options = {}) click to toggle source
# File lib/iqfeed/level1_client.rb, line 64
def initialize(options = {})
        parse_options(options)                       
end

Public Instance Methods

add(observer) click to toggle source
# File lib/iqfeed/level1_client.rb, line 80
def add(observer)
        @socket.puts "w" + observer.symbol
        add_observer(observer)
end
open() click to toggle source
# File lib/iqfeed/level1_client.rb, line 74
def open
        @socket = TCPSocket.open @host, @port
        @socket.puts "S,CONNECT"
        @socket.puts "S,SET CLIENT NAME," + @name
end
parse_options(options) click to toggle source
# File lib/iqfeed/level1_client.rb, line 68
def parse_options(options)
        @host = options[:host] || 'localhost'
        @port = options[:port] || 5009
        @name = options[:name] || 'DEMO'
end
remove(symbol) click to toggle source
# File lib/iqfeed/level1_client.rb, line 85
def remove(symbol)
        @socket.puts "r" + symbol;
end
run() click to toggle source
# File lib/iqfeed/level1_client.rb, line 89
def run
        exception = nil
        while line = @socket.gets
                if line =~ /^E,/
                        exception = 'No Data'
                elsif line =~ /!ENDMSG!,/
                        break
                end
                tick = Level1Tick.parse(line)
                next if tick.nil?
                changed
                notify_observers(tick)
        end
        if exception
                raise exception
        end
end