Class VariableExchangeBank
In: lib/bank/variable_exchange_bank.rb
Parent: Object

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)

Methods

add_rate   get_rate   reduce  

Public Instance methods

[Source]

    # File lib/bank/variable_exchange_bank.rb, line 10
10:   def add_rate(from, to, rate)
11:     rates["#{from}_TO_#{to}".upcase] = rate
12:   end

[Source]

    # File lib/bank/variable_exchange_bank.rb, line 14
14:   def get_rate(from, to)
15:     rates["#{from}_TO_#{to}".upcase] 
16:   end

[Source]

    # File lib/bank/variable_exchange_bank.rb, line 18
18:   def reduce(money, currency)
19:     rate = get_rate(money.currency, currency) or raise Money::MoneyError.new("Can't find required exchange rate")
20:     
21:     Money.new((money.cents * rate).floor, currency)
22:   end

[Validate]