class Avalon::Btcguild
Extracts Btcguild
pool info
Constants
- API_PATH
- API_URL
Public Class Methods
new(monitor, ping_url, api_key)
click to toggle source
Calls superclass method
# File lib/avalon/btcguild.rb, line 12 def initialize monitor, ping_url, api_key @ping_url, @api_key = ping_url, api_key @conn ||= Faraday.new(:url => API_URL) do |faraday| # faraday.response :logger # log requests to STDOUT faraday.adapter Faraday.default_adapter # make requests with Net::HTTP end super() end
Public Instance Methods
access(key1, key2, precision=nil, divider=1)
click to toggle source
Convenience data accessors
# File lib/avalon/btcguild.rb, line 60 def access key1, key2, precision=nil, divider=1 if @data[key1] && @data[key1][key2] if precision (@data[key1][key2]/divider).round(precision) else (@data[key1][key2]/divider) end end end
diff()
click to toggle source
# File lib/avalon/btcguild.rb, line 90 def diff access :pool, :difficulty, 1, 1000_000.0 end
get()
click to toggle source
# File lib/avalon/btcguild.rb, line 23 def get reply = @conn.get "#{API_PATH}#{@api_key}" if reply.success? && !(reply.body =~ /too many API requests/) JSON.parse(reply.body, :symbolize_names => true) else {} end rescue Faraday::Error::TimeoutError {} end
past24()
click to toggle source
# File lib/avalon/btcguild.rb, line 70 def past24 access :user, :past_24h_rewards, 2 end
past24_nmc()
click to toggle source
# File lib/avalon/btcguild.rb, line 78 def past24_nmc access :user, :past_24h_rewards_nmc, 1 end
poll(verbose=true)
click to toggle source
# File lib/avalon/btcguild.rb, line 34 def poll verbose=true @data[:ping] = ping @ping_url if @data[:ping] @data.merge!(get || {}) if @data[:workers] && @data[:workers].keys.include?(:'1') @data[:workers] = Hash[*@data[:workers].map {|_, h| [h.delete(:worker_name), h]}.flatten] end end puts "#{self}" if verbose end
pool_speed()
click to toggle source
# File lib/avalon/btcguild.rb, line 86 def pool_speed access :pool, :pool_speed, 1, 1000.0 end
report()
click to toggle source
Check for any exceptional situations, sound alarm if any
# File lib/avalon/btcguild.rb, line 47 def report if self[:ping].nil? alarm "BTC Guild not responding to ping" else end end
to_s()
click to toggle source
# File lib/avalon/btcguild.rb, line 54 def to_s "\nBTC Guild: #{pool_speed}TH/s ping:#{self[:ping]} diff:#{diff}M " + "unpaid(24h) btc: #{unpaid}(#{past24}) nmc: #{unpaid_nmc}(#{past24_nmc})" end
unpaid()
click to toggle source
# File lib/avalon/btcguild.rb, line 74 def unpaid access :user, :unpaid_rewards, 3 end
unpaid_nmc()
click to toggle source
# File lib/avalon/btcguild.rb, line 82 def unpaid_nmc access :user, :unpaid_rewards_nmc, 2 end