Sha256: 40e36b05f7fcb62ea48bf45c3ba48cd16fb9ae9ab3ebe036334e2a32c95744d7

Contents?: true

Size: 1.29 KB

Versions: 7

Compression:

Stored size: 1.29 KB

Contents

module CurrencyRate
  class CurrencyLayerAdapter < Adapter
    # No need to use it for fetching, just additional information about supported currencies
    SUPPORTED_CURRENCIES = %w(
      AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN
      BHD BIF BMD BND BOB BRL BSD BTC BTN BWP BYN BYR BZD CAD
      CDF CHF CLF CLP CNY COP CRC CUC CUP CVE CZK DJF DKK DOP
      DZD EGP ERN ETB EUR FJD FKP GBP GEL GGP GHS GIP GMD GNF
      GTQ GYD HKD HNL HRK HTG HUF IDR ILS IMP INR IQD IRR ISK
      JEP JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK
      LBP LKR LRD LSL LTL LVL LYD MAD MDL MGA MKD MMK MNT MOP
      MRO MUR MVR MWK MXN MYR MZN NAD NGN NIO NOK NPR NZD OMR
      PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD
      SCR SDG SEK SGD SHP SLL SOS SRD STD SVC SYP SZL THB TJS
      TMT TND TOP TRY TTD TWD TZS UAH UGX USD UYU UZS VEF VND
      VUV WST XAF XAG XAU XCD XDR XOF XPF YER ZAR ZMK ZMW ZWL
    )

    ANCHOR_CURRENCY = "USD"
    FETCH_URL = "http://www.apilayer.net/api/live"
    API_KEY_PARAM = "access_key"

    def normalize(data)
      return nil unless super
      rates = { "anchor" => self.class::ANCHOR_CURRENCY }
      data["quotes"].each do |key, value|
        rates[key.sub(self.class::ANCHOR_CURRENCY, "")] = BigDecimal(value.to_s)
      end
      rates
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
currency-rate-1.7.0 lib/adapters/fiat/currency_layer_adapter.rb
currency-rate-1.6.1 lib/adapters/fiat/currency_layer_adapter.rb
currency-rate-1.6.0 lib/adapters/fiat/currency_layer_adapter.rb
currency-rate-1.5.4 lib/adapters/fiat/currency_layer_adapter.rb
currency-rate-1.5.3 lib/adapters/fiat/currency_layer_adapter.rb
currency-rate-1.5.2 lib/adapters/fiat/currency_layer_adapter.rb
currency-rate-1.5.1 lib/adapters/fiat/currency_layer_adapter.rb