class Market::Exchange::Trades

Public Class Methods

new(exchange) click to toggle source
# File lib/exchange/trades.rb, line 3
def initialize(exchange)
  @currency = exchange.currency
  @commodity = exchange.commodity
  self.update
end

Public Instance Methods

add(trade_data) click to toggle source
# File lib/exchange/trades.rb, line 46
def add(trade_data)
  begin
    unless trade_data.has_key?("currency")
      trade_data.merge!({"currency" => @currency, "commodity" => @commodity})
    end
    self.insert(0, Excoin::Market::Exchange::Trade.new(trade_data))
  rescue
    puts "Error in Excoin::Market::Exchange::Trades.add"
    puts trade_data
  end
end
buys() click to toggle source
# File lib/exchange/trades.rb, line 22
def buys
  self.select{|trade| trade.type == "BUY"}
end
highest(type = nil) click to toggle source
# File lib/exchange/trades.rb, line 30
def highest(type = nil)
  unless type
    self.max_by{|trade| trade.price}
  else
    self.select{|trade| trade.type == type.upcase}.max_by{|trade| trade.price}
  end
end
lowest(type = nil) click to toggle source
# File lib/exchange/trades.rb, line 38
def lowest(type = nil)
  unless type
    self.min_by{|trade| trade.price}
  else
    self.select{|trade| trade.type == type.upcase}.min_by{|trade| trade.price}
  end
end
sells() click to toggle source
# File lib/exchange/trades.rb, line 26
def sells
  self.select{|trade| trade.type == "SELL"}
end
trim(number) click to toggle source
# File lib/exchange/trades.rb, line 58
def trim(number)
  self.pop(number)
end
update(limit_type = "count", limit = 100) click to toggle source
# File lib/exchange/trades.rb, line 9
def update(limit_type = "count", limit = 100)
  self.clear
  trade_data = self.get_recent(@currency, @commodity, limit_type, limit)
  begin
    trade_data['trades'].each do |trade|
      self.push(Excoin::Market::Exchange::Trade.new(trade))
    end
  rescue
    puts "Error in Excoin::Market::Exchange::Trades.update"
    puts trade_data
  end
end

Protected Instance Methods

get_recent(currency, commodity, limit_type = "count", limit = 100) click to toggle source
# File lib/exchange/trades.rb, line 64
def get_recent(currency, commodity, limit_type = "count", limit = 100)
  Excoin.api.exchange_recent_trades(currency, commodity, limit_type, limit)
end