class Bitstamper::Models::Order

Constants

BUY
MAPPING
SELL

Attributes

amount[RW]
currency_pair[RW]
datetime[RW]
error[RW]
event[RW]
id[RW]
message[RW]
order_type[RW]
price[RW]
type[RW]

Public Class Methods

new(hash) click to toggle source
# File lib/bitstamper/models/order.rb, line 19
def initialize(hash)
  hash["type"]      =     hash["order_type"] if hash.fetch("type", nil).to_s.empty? && hash.has_key?("order_type")
  
  hash.each do |key, value|
    type            =     ::Bitstamper::Models::Order::MAPPING.fetch(key, nil)
    value           =     value && type ? ::Bitstamper::Utilities::convert_value(value, type) : value
    self.send("#{key}=", value) if self.respond_to?(key)
  end
  
  datetime          =     hash.fetch("datetime", nil)&.to_s
  
  if !datetime.to_s.empty? && datetime.include?("-")
    self.datetime   =     ::Bitstamper::Utilities::convert_value(datetime, :datetime)
  elsif !datetime.to_s.empty? && ::Bitstamper::Utilities.numeric?(datetime)
    self.datetime   =     ::Bitstamper::Utilities::convert_value(datetime, :time)
  end
  
  self.order_type   =     case self.type
    when ::Bitstamper::Models::Order::BUY  then :buy
    when ::Bitstamper::Models::Order::SELL then :sell
  end
end
parse(data) click to toggle source
# File lib/bitstamper/models/order.rb, line 42
def self.parse(data)
  data&.collect { |item| ::Bitstamper::Models::Order.new(item) }
end