class CgminerApiClient::MinerPool
Attributes
miners[RW]
Public Class Methods
new()
click to toggle source
# File lib/cgminer_api_client/miner_pool.rb, line 7 def initialize load_miners! end
Public Instance Methods
available_miners(force_reload = false)
click to toggle source
# File lib/cgminer_api_client/miner_pool.rb, line 31 def available_miners(force_reload = false) threads = @miners.collect do |miner| Thread.new do begin miner if miner.available?(force_reload) rescue nil end end end threads.each { |thr| thr.join } threads.collect(&:value).compact end
method_missing(name, *args)
click to toggle source
# File lib/cgminer_api_client/miner_pool.rb, line 49 def method_missing(name, *args) query(name, *args) end
query(method, *params)
click to toggle source
# File lib/cgminer_api_client/miner_pool.rb, line 16 def query(method, *params) threads = @miners.collect do |miner| Thread.new do begin miner.query(method, *params) rescue => e $stderr.puts "#{e.class}: #{e}" [] end end end threads.each { |thr| thr.join } threads.collect(&:value) end
reload_miners!()
click to toggle source
# File lib/cgminer_api_client/miner_pool.rb, line 11 def reload_miners! @miners = nil load_miners! end
Private Instance Methods
load_miners!()
click to toggle source
# File lib/cgminer_api_client/miner_pool.rb, line 55 def load_miners! raise 'Please create config/miners.yml' unless File.exist?('config/miners.yml') miners_config = YAML.load_file('config/miners.yml') @miners = miners_config.collect{|miner| CgminerApiClient::Miner.new( miner['host'], miner['port'], miner['timeout'] ) } end