class Core

Attributes

currencies[R]
dates[R]
rates[R]

Public Class Methods

new() click to toggle source
# File lib/fafx/core.rb, line 5
def initialize
  data = load_data
  @rates = data
  @dates = data.keys
  @currencies = @rates[@dates.first].keys
end

Public Instance Methods

rate(curr) click to toggle source
# File lib/fafx/core.rb, line 12
def rate(curr)
  raise Fafx::CurrencyError, "#{curr} not found" unless @currencies.include?(curr)
  @rates[@dates.first][curr]
end
rates_at(date, curr) click to toggle source
# File lib/fafx/core.rb, line 17
def rates_at(date, curr)
  raise Fafx::DateError, 'Date not available' unless @dates.include?(date)
  raise Fafx::CurrencyError, "#{curr} not found" unless @currencies.include?(curr)
  @rates[date][curr]
end

Private Instance Methods

load_data() click to toggle source
# File lib/fafx/core.rb, line 25
def load_data
  rates = "#{File.join(File.dirname(__FILE__))}/rates.yaml"
  Fafx::ExchangeRate.update_data unless File.exist?(rates)
  YAML.load_file(rates)
end