Class: VariableExchangeBank
- Inherits:
-
Object
- Object
- VariableExchangeBank
- 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 |