Class: Utils
- Inherits:
-
Object
- Object
- Utils
- Defined in:
- lib/utils.rb
Overview
General use utilities for SimBot
Class Method Summary collapse
-
.bchbtc_price ⇒ float
fetch bch/btc price from coin market cap.
-
.bchxrp_price ⇒ float
fetch bch/xrp price from coin market cap.
-
.btcltc_price ⇒ float
fetch btc/ltc price from coin market cap.
-
.btcusd_price ⇒ float
fetch btc/usd price from coin market cap.
-
.btcxrp_price ⇒ float
fetch btc/xrp price from coin market cap.
-
.cmc_data ⇒ Array
Cmc data.
-
.eoseth_price ⇒ float
fetch eos/eth price from coin market cap.
-
.kill_process(pid) ⇒ FalseClass and TrueClass
Try and read the existing pid from the pid file and signal the process.
-
.ltcbch_price ⇒ float
fetch ltc/bch price from coin market cap.
-
.ltcbtc_price ⇒ float
fetch ltc/btc price from coin market cap.
-
.ltcxrp_price ⇒ float
fetch ltc/xrp price from coin market cap.
-
.quote(market) ⇒ FalseClass and Float
accept market paramter and return the coinmarket cap quote for said market.
- .write_to_spreadsheet(data, name) ⇒ NilClass
Class Method Details
.bchbtc_price ⇒ float
fetch bch/btc price from coin market cap
84 85 86 87 88 |
# File 'lib/utils.rb', line 84 def self.bchbtc_price response = RestClient.get('https://api.coinmarketcap.com/v2/ticker/1831/?convert=BTC') hash = JSON.parse (response.body) hash['data']['quotes']['BTC']['price'].to_f.round(4) end |
.bchxrp_price ⇒ float
fetch bch/xrp price from coin market cap
76 77 78 79 80 |
# File 'lib/utils.rb', line 76 def self.bchxrp_price response = RestClient.get('https://api.coinmarketcap.com/v2/ticker/1831/?convert=XRP') hash = JSON.parse(response.body) hash['data']['quotes']['XRP']['price'].to_f.round(4) end |
.btcltc_price ⇒ float
fetch btc/ltc price from coin market cap
68 69 70 71 72 |
# File 'lib/utils.rb', line 68 def self.btcltc_price response = RestClient.get('https://api.coinmarketcap.com/v2/ticker/1/?convert=LTC') hash = JSON.parse(response.body) hash['data']['quotes']['LTC']['price'].to_f.round(4) end |
.btcusd_price ⇒ float
fetch btc/usd price from coin market cap
36 37 38 39 40 |
# File 'lib/utils.rb', line 36 def self.btcusd_price response = RestClient.get('https://api.coinmarketcap.com/v2/ticker/1/?convert=USD') hash = JSON.parse(response.body) hash['data']['quotes']['USD']['price'].to_f.round(4) end |
.btcxrp_price ⇒ float
fetch btc/xrp price from coin market cap
92 93 94 95 96 |
# File 'lib/utils.rb', line 92 def self.btcxrp_price response = RestClient.get('https://api.coinmarketcap.com/v2/ticker/1/?convert=XRP') hash = JSON.parse (response.body) hash['data']['quotes']['XRP']['price'].to_f.round(4) end |
.cmc_data ⇒ Array
Returns cmc data.
133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/utils.rb', line 133 def self.cmc_data data = [] (0...16).each do |start| response = RestClient.get("https://api.coinmarketcap.com/v2/ticker/?start=#{start * 100 + 1}") hash = JSON.parse (response.body) hash['data'].each do |key, coin| row = [coin['name'], coin['symbol'], coin['quotes']['USD']['market_cap'].to_f, coin['quotes']['USD']['volume_24h'].to_f] data.push(row) end end data end |
.eoseth_price ⇒ float
fetch eos/eth price from coin market cap
100 101 102 103 104 |
# File 'lib/utils.rb', line 100 def self.eoseth_price response = RestClient.get('https://api.coinmarketcap.com/v2/ticker/1765/?convert=ETH') hash = JSON.parse (response.body) return hash['data']['quotes']['ETH']['price'].to_f.round(4) end |
.kill_process(pid) ⇒ FalseClass and TrueClass
Try and read the existing pid from the pid file and signal the process. Returns true for a non blocking status.
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/utils.rb', line 110 def self.kill_process(pid) opid = File.read("#{pid}.pid").strip.to_i Process.kill "HUP", opid File.delete("#{pid}.pid") File.delete("#{pid}.outfile") File.delete("#{pid}.errfile") puts "Stopped process #{pid}" true rescue Errno::ENOENT $stdout.puts "#{pid} did not exist: Errno::ENOENT" true rescue Errno::ESRCH $stdout.puts "The process #{opid} did not exist: Errno::ESRCH" true rescue Errno::EPERM $stderr.puts "Lack of privileges to manage the process #{opid}: Errno::EPERM" false rescue ::Exception => e $stderr.puts "While signaling the PID, unexpected #{e.class}: #{e}" false end |
.ltcbch_price ⇒ float
fetch ltc/bch price from coin market cap
52 53 54 55 56 |
# File 'lib/utils.rb', line 52 def self.ltcbch_price response = RestClient.get('https://api.coinmarketcap.com/v2/ticker/2/?convert=BCH') hash = JSON.parse(response.body) hash['data']['quotes']['BCH']['price'].to_f.round(4) end |
.ltcbtc_price ⇒ float
fetch ltc/btc price from coin market cap
60 61 62 63 64 |
# File 'lib/utils.rb', line 60 def self.ltcbtc_price response = RestClient.get('https://api.coinmarketcap.com/v2/ticker/2/?convert=BTC') hash = JSON.parse(response.body) hash['data']['quotes']['BTC']['price'].to_f.round(4) end |
.ltcxrp_price ⇒ float
fetch ltc/xrp price from coin market cap
44 45 46 47 48 |
# File 'lib/utils.rb', line 44 def self.ltcxrp_price response = RestClient.get('https://api.coinmarketcap.com/v2/ticker/2/?convert=XRP') hash = JSON.parse(response.body) hash['data']['quotes']['XRP']['price'].to_f.round(4) end |
.quote(market) ⇒ FalseClass and Float
accept market paramter and return the coinmarket cap quote for said market
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/utils.rb', line 7 def self.quote(market) case market when 'bchxrp' bchxrp_price when 'bchbtc' bchbtc_price when 'btcxrp' btcxrp_price when 'eoseth' eoseth_price when 'btcltc' btcltc_price when 'ltcbtc' ltcbtc_price when 'ltcbch' ltcbch_price when 'ltcxrp' ltcxrp_price when 'btcusd' btcusd_price when 'btcbch' 1/bchbtc_price else false end end |
.write_to_spreadsheet(data, name) ⇒ NilClass
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/utils.rb', line 151 def self.write_to_spreadsheet(data, name) book = Spreadsheet::Workbook.new sheet = book.create_worksheet(name: 'coin_data') rc = 1 data.each do |row| col = 0 row.each do |cell| sheet[rc, col] = cell col += 1 end rc += 1 end book.write(name) puts "Data written to #{name}" end |