class VlatkoDawanda::Bank
Public Instance Methods
conversion_rates(base_currency, currencies)
click to toggle source
# File lib/vlatko_dawanda/bank.rb, line 4 def conversion_rates(base_currency, currencies) @currencies = parse_currencies(base_currency, currencies) end
currencies()
click to toggle source
# File lib/vlatko_dawanda/bank.rb, line 8 def currencies @currencies ||= {} end
find_currency(search)
click to toggle source
# File lib/vlatko_dawanda/bank.rb, line 12 def find_currency(search) currency = case search when ::String, ::Symbol currencies[currency_id(search)] when Currency found = currencies[currency_id(search.iso_code)] raise UnknownCurrency.new('currency not matching the rate') unless found == search found end raise UnknownCurrency.new('currency not found') if currency.nil? currency end
Private Instance Methods
currency_id(value)
click to toggle source
# File lib/vlatko_dawanda/bank.rb, line 35 def currency_id(value) value.downcase.to_sym end
parse_currencies(base_currency, currencies)
click to toggle source
# File lib/vlatko_dawanda/bank.rb, line 28 def parse_currencies(base_currency, currencies) currencies.merge({base_currency => 1}).inject({}) do |memo, (key,value)| memo[currency_id(key)] = Currency.new({iso_code: key, rate: value}) memo end end