module DataFetcher

Public Class Methods

process_currencies_xml(doc) click to toggle source
# File lib/fafx/data_fetcher.rb, line 15
def process_currencies_xml(doc)
  rates = {}
  doc.css('Cube>Cube[time]').each do |day|
    time = day[:time]
    rates[time] = {}
    day.css('Cube').each do |currency|
      rates[time][currency[:currency]] = currency[:rate].to_f
    end
  end
  rates
end
save_to_disk() click to toggle source
# File lib/fafx/data_fetcher.rb, line 5
def save_to_disk
  url = 'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml'
  doc = Nokogiri::XML(open(url))
  rates = process_currencies_xml(doc)
  dir = "#{File.join(File.dirname(__FILE__))}/rates.yaml"
  File.open(dir, 'w') { |f| f << rates.to_yaml }
end

Private Instance Methods

process_currencies_xml(doc) click to toggle source
# File lib/fafx/data_fetcher.rb, line 15
def process_currencies_xml(doc)
  rates = {}
  doc.css('Cube>Cube[time]').each do |day|
    time = day[:time]
    rates[time] = {}
    day.css('Cube').each do |currency|
      rates[time][currency[:currency]] = currency[:rate].to_f
    end
  end
  rates
end
save_to_disk() click to toggle source
# File lib/fafx/data_fetcher.rb, line 5
def save_to_disk
  url = 'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml'
  doc = Nokogiri::XML(open(url))
  rates = process_currencies_xml(doc)
  dir = "#{File.join(File.dirname(__FILE__))}/rates.yaml"
  File.open(dir, 'w') { |f| f << rates.to_yaml }
end