class Moneymarket::Order
Constants
- CANCELED
- NEW
- OPEN
- TRADED
Attributes
fee[R]
limit[R]
ref[R]
user[R]
volume[R]
Public Class Methods
new(user: nil, status: NEW, volume: nil, limit: nil, fee: 0.0, ref: nil)
click to toggle source
# File lib/moneymarket/core/order.rb, line 10 def initialize(user: nil, status: NEW, volume: nil, limit: nil, fee: 0.0, ref: nil) @user = user @status = status @volume = volume @limit = limit @fee = fee @ref = ref end
Public Instance Methods
base_currency()
click to toggle source
# File lib/moneymarket/core/order.rb, line 23 def base_currency volume.currency end
closed?()
click to toggle source
# File lib/moneymarket/core/order.rb, line 56 def closed? traded? || canceled? end
consume(_volume)
click to toggle source
# File lib/moneymarket/core/order.rb, line 31 def consume(_volume) raise ArgumentError, 'cannot consume, order closed' if closed? raise ArgumentError, 'amount to consume must be positive' if _volume < 0 raise ArgumentError, 'trying to consume more than is available' if _volume > @volume @volume -= _volume @status = TRADED if @volume == 0 end
flag_as_canceled()
click to toggle source
# File lib/moneymarket/core/order.rb, line 48 def flag_as_canceled @status = CANCELED unless closed? end
flag_as_open()
click to toggle source
# File lib/moneymarket/core/order.rb, line 40 def flag_as_open if market_order? flag_as_canceled else @status = OPEN if new? end end
market_order?()
click to toggle source
# File lib/moneymarket/core/order.rb, line 19 def market_order? limit.nil? end
quote_currency()
click to toggle source
# File lib/moneymarket/core/order.rb, line 27 def quote_currency limit.currency end