Class: ExchangeRate::RatesDataSource
- Inherits:
-
Object
- Object
- ExchangeRate::RatesDataSource
- Defined in:
- lib/exchange_rate/rates_data_source.rb
Instance Method Summary collapse
- #currency_names ⇒ Object
- #find_rate_by_date_and_currency(date, currency_symbol) ⇒ Object
- #find_rates_by_date(date) ⇒ Object
- #parsed_rates ⇒ Object
Instance Method Details
#currency_names ⇒ Object
16 17 18 |
# File 'lib/exchange_rate/rates_data_source.rb', line 16 def currency_names @currency_names ||= parsed_rates.css("[currency]").map(&:first).map(&:last).uniq end |
#find_rate_by_date_and_currency(date, currency_symbol) ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'lib/exchange_rate/rates_data_source.rb', line 7 def find_rate_by_date_and_currency(date, currency_symbol) rates_for_date = find_rates_by_date(date) currency_rate = rates_for_date.at_css("[currency='#{currency_symbol}']") raise CurrencyNotFound if currency_rate.nil? currency_rate.values.last end |
#find_rates_by_date(date) ⇒ Object
20 21 22 23 24 |
# File 'lib/exchange_rate/rates_data_source.rb', line 20 def find_rates_by_date(date) rates_for_date = parsed_rates.css("[time='#{date.to_s}']") raise NoRateForGivenDate if rates_for_date.size == 0 rates_for_date end |
#parsed_rates ⇒ Object
26 27 28 |
# File 'lib/exchange_rate/rates_data_source.rb', line 26 def parsed_rates @parsed_rates = Nokogiri::XML(raw_xml_rates) end |