Sha256: 7989a864f28ba2453a320a71ed05901f067c7e39b4193d857502c702c3f00e7f
Contents?: true
Size: 838 Bytes
Versions: 1
Compression:
Stored size: 838 Bytes
Contents
require 'observer' class Order include Observable attr_reader :id, :local_id, :side, :size, :sent_at, :status attr_accessor :price, :status 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 def <=> order if order.price == price @sent_at <=> order.sent_at else price <=> order.price end end def cancelled? @cancelled end def fill! amount changed status = :fill status = :partial_fill if amount < @size @size -= amount notify_observers status, self end def cancel! return if @cancelled # can only cancel an order once @cancelled = true changed notify_observers :cancel, self end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ruby-trade-0.2 | lib/order.rb |