Sha256: c9591eeaf594eb742a8b465f9c8c0bb7ecc8e48adc2c3f9fbf142dd8625b13ad
Contents?: true
Size: 854 Bytes
Versions: 2
Compression:
Stored size: 854 Bytes
Contents
# frozen_string_literal: true module Mcoin class Subscriber attr_reader :markets, :pairs def initialize(pairs = nil, markets = Market.available) @pairs = pairs_from(pairs) @markets = markets_from(markets) end def start(interval = 1, &block) loop do Parallel.async(@markets, :fetch) do |result| result.to_ticker.each do |ticker| yield ticker end end sleep interval end end protected def pairs_from(picked) @pairs ||= (picked || ['BTC-USD']).uniq.map do |pair| pair.split('-').map(&:to_sym) end end def markets_from(picked) picked.map do |name| market = Market.pick(name).new pairs.map do |pair| market.watch(*pair) end market end.flatten end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mcoin-0.6.1 | lib/mcoin/subscriber.rb |
mcoin-0.6.0 | lib/mcoin/subscriber.rb |