lib/mcoin/subscriber.rb in mcoin-0.5.2 vs lib/mcoin/subscriber.rb in mcoin-0.6.0

- old
+ new

@@ -4,20 +4,19 @@ class Subscriber attr_reader :markets, :pairs def initialize(pairs = nil, markets = Market.available) @pairs = pairs_from(pairs) - @markets = markets - @queue = Queue.new + @markets = markets_from(markets) end def start(interval = 1, &block) loop do - yield @queue.pop(true) until @queue.empty? - - Parallel.async(markets_from(markets), :fetch) do |result| - @queue << result.to_ticker + Parallel.async(@markets, :fetch) do |result| + result.to_ticker.each do |ticker| + yield ticker + end end sleep interval end end @@ -30,14 +29,14 @@ end end def markets_from(picked) picked.map do |name| + market = Market.pick(name).new pairs.map do |pair| - Market - .pick(name) - .new(*pair) + market.watch(*pair) end + market end.flatten end end end