class Bitcoin::OrderBook

Attributes

limit[RW]
price[RW]
side[RW]
size[RW]
symbol[RW]
timestamp[RW]

Public Class Methods

all(symbol_name) click to toggle source
# File lib/bitcoin/order_book.rb, line 26
def self.all(symbol_name)
  data = JSON.parse RestClient.get "#{Bitcoin::BASE}/public/orderbook/#{symbol_name}?limit=0"
  ask_orders = data['ask']
  bid_orders = data['bid']

  ask_orders.each{ |order|
    order[:side] = 'ask'
    order['timestamp'] = data['timestamp']
    order[:symbol] = symbol_name
  }
  bid_orders.each{ |order|
    order[:side] = 'bid'
    order['timestamp'] = data['timestamp']
    order[:symbol] = symbol_name
  }

  [ask_orders, bid_orders].flatten!.map{|order|
    Bitcoin::OrderBook.new_from_object(order)
  }
end
new_from_object(object) click to toggle source
# File lib/bitcoin/order_book.rb, line 15
def self.new_from_object(object)
  o = Bitcoin::OrderBook.new
  o.size = object['size'].to_f
  o.side = object[:side]
  o.price = object['price'].to_f
  o.timestamp = Time.parse(object['timestamp'])
  o.limit = object['limit']
  o.symbol = object[:symbol]
  o
end

Public Instance Methods

display_details() click to toggle source
# File lib/bitcoin/order_book.rb, line 5
  def display_details
    puts <<-DOC
    #{@symbol} #{@side.upcase} Order:
    #{@price}
    Quantity: #{@size}
    #{@timestamp}

    DOC
  end