module Europe::Currency::ExchangeRates

exchange rates

Constants

EXCHANGE_URL

Public Class Methods

extract_rates(doc) click to toggle source
# File lib/europe/currency/exchange_rates.rb, line 19
def self.extract_rates(doc)
  data = JSON.parse(doc)

  rates = { date: Date.parse(data['usd']['date']),
            rates: {} }

  filter_rates(data, rates)
rescue JSON::ParserError
  :failed
end
filter_rates(data, rates) click to toggle source
# File lib/europe/currency/exchange_rates.rb, line 30
def self.filter_rates(data, rates)
  data.each do |currency, object|
    rates[:rates][currency.upcase.to_sym] = object['rate'].to_f
  end
  rates
end
retrieve() click to toggle source
# File lib/europe/currency/exchange_rates.rb, line 14
def self.retrieve
  resp = Net::HTTP.get_response(URI.parse(EXCHANGE_URL))
  resp.code.to_i == 200 ? extract_rates(resp.body) : :failed
end