Sha256: 691c99361ef91e49fd5edd7bd383778cf25bdc508203f3ef85a196b8adb63615

Contents?: true

Size: 1.29 KB

Versions: 7

Compression:

Stored size: 1.29 KB

Contents

module CurrencyRate
  class CoinbaseAdapter < 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 BAT BBD BCH BDT BGN BHD BIF BMD
      BND BOB BRL BSD BTC BTN BWP BYN BYR BZD CAD CDF CHF CLF CLP CNH CNY COP CRC
      CUC CVE CZK DJF DKK DOP DZD EEK EGP ERN ETB ETC ETH EUR FJD FKP GBP GEL GGP
      GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS IMP INR IQD ISK JEP JMD
      JOD JPY KES KGS KHR KMF KRW KWD KYD KZT LAK LBP LKR LRD LSL LTC LTL LVL LYD
      MAD MDL MGA MKD MMK MNT MOP MRO MTL 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 SEK
      SGD SHP SLL SOS SRD SSP STD SVC SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH
      UGX USD SDC UYU UZS VEF VND VUV WST XAF XAG XAU XCD XDR XOF XPD XPF XPT YER
      ZAR ZEC ZMK ZMW ZRX ZWL
    )

    ANCHOR_CURRENCY = "BTC"

    FETCH_URL = "https://api.coinbase.com/v2/exchange-rates?currency=#{ANCHOR_CURRENCY}"

    def normalize(response)
      return nil unless super
      response["data"]["rates"].reduce({ "anchor" => ANCHOR_CURRENCY }) do |result, (currency, rate)|
        result[currency] = BigDecimal(rate.to_s)
        result
      end
    end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

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