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