class Tangocard::ExchangeRate
Attributes
currency_code[R]
rate[R]
Public Class Methods
all()
click to toggle source
Return an array of all currency exchange rates.
Example:
>> Tangocard::ExchangeRate.all => [#<Tangocard::ExchangeRate:0x007ff31ab927a0 @currency_code="USD", @rate="1.00000">, #<Tangocard::ExchangeRate:0x007ff31ab92750 @currency_code="JPY", @rate="123.44700">, ...]
Arguments:
none
# File lib/tangocard/exchange_rate.rb, line 25 def self.all Tangocard::Raas.rewards_index.parsed_response['xrates']['rates'].map do |currency_code, rate| Tangocard::ExchangeRate.new(currency_code, rate) end end
find(currency_code)
click to toggle source
Find a exchange rate by its currency code.
Example:
>> Tangocard::ExchangeRate.find("EUR") => #<Tangocard::ExchangeRate:0x007ff31a2dd808 @currency_code="EUR", @rate="0.88870">
Arguments:
currency_code: (String)
# File lib/tangocard/exchange_rate.rb, line 39 def self.find(currency_code) self.all.select{|r| r.currency_code == currency_code}.first end
new(currency_code, rate)
click to toggle source
# File lib/tangocard/exchange_rate.rb, line 61 def initialize(currency_code, rate) @currency_code = currency_code @rate = rate.to_f end
populate_money_rates()
click to toggle source
Set all available exchange rates for Money gem. Once set allows to get reward USD representation of other currencies. For more information and use cases refer to Money gem docs.
Example:
>> Tangocard::ExchangeRate.populate_money_rates => true >> reward.to_money(:denomination) => #<Money fractional:500 currency:EUR> >> reward.to_money(:denomination).exchange_to('USD') => #<Money fractional:563 currency:USD>
Arguments:
none
# File lib/tangocard/exchange_rate.rb, line 56 def self.populate_money_rates self.all.each {|r| Money.add_rate(r.currency_code, 'USD', r.inverse_rate)} true end
timestamp()
click to toggle source
Return current currency exchange rate timestamp.
Example:
>> Tangocard::ExchangeRate.timestamp => 1456956187
Arguments:
none
# File lib/tangocard/exchange_rate.rb, line 12 def self.timestamp Tangocard::Raas.rewards_index.parsed_response['xrates']['timestamp'] end
Public Instance Methods
inverse_rate()
click to toggle source
Return an inverse rate of original (float). Used to pupulate Money gem rates.
Arguments:
none
# File lib/tangocard/exchange_rate.rb, line 70 def inverse_rate 1.0 / rate end