class AtlasRealtimeClient

Public Class Methods

new(url, key, secret, account_id) click to toggle source
# File lib/atlasatsrt.rb, line 55
def initialize(url, key, secret, account_id)
        @url = url
        @key = key
        @secret = secret
        @account_id = account_id

        @client = Faye::Client.new(@url)
        @client.add_extension(HmacAuthExt.new(@key, @secret))
end

Public Instance Methods

cancel_order(orderid) click to toggle source
# File lib/atlasatsrt.rb, line 105
def cancel_order(orderid)
        send_action(:action => "order:cancel", :oid => orderid)
end
place_limit_order(client_order_id, item, currency, side, quantity, price) click to toggle source
# File lib/atlasatsrt.rb, line 97
def place_limit_order(client_order_id, item, currency, side, quantity, price)
        send_action(:action => "order:create", :item => item, :currency => currency, :side => side, :quantity => quantity, :type => "limit", :price => price, :clid => client_order_id)
end
place_market_order(client_order_id, item, currency, side, quantity) click to toggle source
# File lib/atlasatsrt.rb, line 101
def place_market_order(client_order_id, item, currency, side, quantity)
        send_action(:action => "order:create", :item => item, :currency => currency, :side => side, :quantity => quantity, :type => "market", :clid => client_order_id)
end
request_spinup() click to toggle source

symbols = nil for all symbols, otherwise please provide array

# File lib/atlasatsrt.rb, line 66
def request_spinup
        # account
        #  -> account params
        request_spinup_accountinfo
        #  -> recent orders
        request_spinup_orders
        # market data
        request_spinup_book
end
subscribe_book(&block) click to toggle source
# File lib/atlasatsrt.rb, line 90
def subscribe_book(&block)
        @client.subscribe "/market" do |message|
                book = JSON.parse(message)
                block.call(book)
        end
end
subscribe_orders(&block) click to toggle source
# File lib/atlasatsrt.rb, line 76
def subscribe_orders(&block)
        @client.subscribe "/account/#{@account_id}/orders" do |message|
                order = JSON.parse(message)
                block.call(order)
        end
end
subscribe_trades(&block) click to toggle source
# File lib/atlasatsrt.rb, line 83
def subscribe_trades(&block)
        @client.subscribe "/trades" do |message|
                trade = JSON.parse(message)
                block.call(trade)
        end
end

Private Instance Methods

create_request!(obj) click to toggle source
# File lib/atlasatsrt.rb, line 127
def create_request!(obj)
        @client.publish("/requests/#{@account_id}", to_message(obj))
end
request_spinup_accountinfo() click to toggle source
# File lib/atlasatsrt.rb, line 115
def request_spinup_accountinfo
        create_request!(:type => "account")
end
request_spinup_book() click to toggle source
# File lib/atlasatsrt.rb, line 123
def request_spinup_book
        create_request!(:type => "book")
end
request_spinup_orders() click to toggle source
# File lib/atlasatsrt.rb, line 119
def request_spinup_orders
        create_request!(:type => "orders")
end
send_action(obj) click to toggle source
# File lib/atlasatsrt.rb, line 111
def send_action(obj)
        @client.publish("/actions", to_message(obj))
end
to_message(obj) click to toggle source
# File lib/atlasatsrt.rb, line 131
def to_message(obj)
        obj.to_json
end