module CurrencyRate class KrakenAdapter < Adapter FETCH_URL = { "BTC_USD" => "https://api.kraken.com/0/public/Ticker?pair=xbtusd", "BTC_EUR" => "https://api.kraken.com/0/public/Ticker?pair=xbteur", "LTC_USD" => "https://api.kraken.com/0/public/Ticker?pair=ltcusd", "LTC_EUR" => "https://api.kraken.com/0/public/Ticker?pair=ltceur", } ASSET_MAP = { "BTC" => "XBT", } def normalize(data) return nil unless super data.reduce({}) do |result, (pair, value)| crypto, fiat = pair.split("_") result[pair] = BigDecimal.new(value["result"]["X#{ta(crypto)}Z#{ta(fiat)}"]["c"].first.to_s) result end end def translate_asset(asset) ASSET_MAP[asset] || asset end alias_method :ta, :translate_asset end end