class Order
Attributes
id[R]
price[RW]
sent_at[R]
side[R]
size[R]
status[RW]
Public Class Methods
new(id, side, price, size)
click to toggle source
# File lib/order.rb, line 9 def initialize id, side, price, size @id, @side, @price, @size = id, side, price, size @sent_at = Time.now @cancelled = false @status = :pending_accept @price = @price.round 2 end
Public Instance Methods
<=>(order)
click to toggle source
# File lib/order.rb, line 18 def <=> order if order.price == price @sent_at <=> order.sent_at else price <=> order.price end end
cancel!()
click to toggle source
# File lib/order.rb, line 41 def cancel! return if @cancelled # can only cancel an order once @cancelled = true changed notify_observers :cancel, self end
cancelled?()
click to toggle source
# File lib/order.rb, line 26 def cancelled? @cancelled end
fill!(amount)
click to toggle source
# File lib/order.rb, line 30 def fill! amount changed status = :fill status = :partial_fill if amount < @size @size -= amount notify_observers status, self end