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