lib/mcoin/subscriber.rb in mcoin-0.5.1 vs lib/mcoin/subscriber.rb in mcoin-0.5.2
- old
+ new
@@ -2,19 +2,23 @@
module Mcoin
class Subscriber
attr_reader :markets, :pairs
- def initialize(pairs = [], markets = Market.available)
+ def initialize(pairs = nil, markets = Market.available)
@pairs = pairs_from(pairs)
@markets = markets
+ @queue = Queue.new
end
def start(interval = 1, &block)
loop do
+ yield @queue.pop(true) until @queue.empty?
+
Parallel.async(markets_from(markets), :fetch) do |result|
- yield result.to_ticker
+ @queue << result.to_ticker
end
+
sleep interval
end
end
protected