Sha256: 70fe2ce4ba268ab47f5e2e75f50153790b344864c3658bb8f9f85f998ec75167
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
module CurrencyRate class FixerAdapter < FiatAdapter FETCH_URL = { "eur" => "http://api.fixer.io/latest?base=eur", "usd" => "http://api.fixer.io/latest?base=usd" } SUPPORTED_CURRENCIES = %w(USD EUR) def currency_pair_rate(currency1, currency2) rates = @rates[currency1.downcase] || @rates[currency2.downcase] raise CurrencyNotSupported unless rates rate = rates["rates"][currency1] || rates["rates"][currency2] raise CurrencyNotSupported unless rate BigDecimal.new(rate.to_s).round(self.class::DECIMAL_PRECISION) end def invert_rate(from,to,rate) if SUPPORTED_CURRENCIES.include?(to) _invert_rate(rate) else rate end end def supported_currency_pairs cache_supported_currency_pairs do @rates.each do |base_name, content| currency1 = content["base"] content["rates"].each do |currency2, rate| @supported_currency_pairs << "#{currency1}/#{currency2}" end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
currency-rate-0.4.1 | lib/fiat_adapters/fixer_adapter.rb |
currency-rate-0.4.0 | lib/fiat_adapters/fixer_adapter.rb |
currency-rate-0.3.9 | lib/fiat_adapters/fixer_adapter.rb |