Class: VariableExchangeBank

Inherits:
Object
  • Object
show all
Defined in:
lib/money/bank/variable_exchange_bank.rb

Overview

Example useage:

Money.bank = VariableExchangeBank.new
Money.bank.add_rate("USD", "CAD", 1.24515)
Money.bank.add_rate("CAD", "USD", 0.803115)
Money.us_dollar(100).exchange_to("CAD") => Money.ca_dollar(124)
Money.ca_dollar(100).exchange_to("USD") => Money.us_dollar(80)

Instance Method Summary collapse

Instance Method Details

#add_rate(from, to, rate) ⇒ Object



10
11
12
# File 'lib/money/bank/variable_exchange_bank.rb', line 10

def add_rate(from, to, rate)
  rates["#{from}_TO_#{to}".upcase] = rate
end

#exchange(money, currency) ⇒ Object



18
19
20
21
22
# File 'lib/money/bank/variable_exchange_bank.rb', line 18

def exchange(money, currency)
  rate = get_rate(money.currency, currency) or raise Money::MoneyError.new("Can't find required exchange rate")
  
  Money.new((money.cents * rate).floor, currency, money.precision)
end

#get_rate(from, to) ⇒ Object



14
15
16
# File 'lib/money/bank/variable_exchange_bank.rb', line 14

def get_rate(from, to)
  rates["#{from}_TO_#{to}".upcase] 
end