class Capwatch::Providers::CoinMarketCap
Constants
- NoCoinInProvider
- TICKER_URL
Attributes
body[RW]
Public Instance Methods
fetch()
click to toggle source
# File lib/capwatch/providers/coin_market_cap.rb, line 22 def fetch @body ||= open(TICKER_URL).read end
fetched_json()
click to toggle source
# File lib/capwatch/providers/coin_market_cap.rb, line 16 def fetched_json response = parse(fetch) update_rates(response) response end
parse(response)
click to toggle source
# File lib/capwatch/providers/coin_market_cap.rb, line 26 def parse(response) JSON.parse(response) end
update_coin(coin)
click to toggle source
# File lib/capwatch/providers/coin_market_cap.rb, line 39 def update_coin(coin) provider_coin = fetched_json.find { |c| c["symbol"] == coin.symbol } fail NoCoinInProvider, "No #{coin.symbol} in provider response" if provider_coin.nil? coin.name = provider_coin["name"] coin.price_usd = provider_coin["price_usd"].to_f coin.price_btc = provider_coin["price_btc"].to_f coin.percent_change_1h = provider_coin["percent_change_1h"].to_f coin.percent_change_24h = provider_coin["percent_change_24h"].to_f coin.percent_change_7d = provider_coin["percent_change_7d"].to_f end
update_rates(response)
click to toggle source
# File lib/capwatch/providers/coin_market_cap.rb, line 30 def update_rates(response) response.each do |coin_json| Capwatch::Exchange.rate( coin_json['symbol'], coin_json["price_btc"].to_f ) end end