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