class CurrencyExchange::Yahoo
Constants
- BASE_URL
- END_URL
Public Class Methods
get_rates(query)
click to toggle source
# File lib/currency_exchange/yahoo.rb, line 5 def self.get_rates(query) rates_parser request_rates(query) end
rates_parser(resp)
click to toggle source
# File lib/currency_exchange/yahoo.rb, line 9 def self.rates_parser(resp) xml = Nokogiri::XML(resp) rates = [] xml.xpath('//rate').each do |rate| rates << parse_rate(rate.children) end rates end
Private Class Methods
parse_rate(node)
click to toggle source
# File lib/currency_exchange/yahoo.rb, line 24 def self.parse_rate(node) hash = {} node.each do |attribute| hash[attribute.name.downcase.to_sym] = attribute.inner_text end CurrencyExchange::Rate.new(hash[:name], hash[:rate], hash) end
query_builder(array)
click to toggle source
# File lib/currency_exchange/yahoo.rb, line 32 def self.query_builder(array) query = '(' array.each_with_index do |item, i| query += "%22#{item.first}#{item.last}%22" query += ',%20' if i.next < array.size end query + ')' end
request_rates(query)
click to toggle source
Private Methods
# File lib/currency_exchange/yahoo.rb, line 20 def self.request_rates(query) CurrencyExchange::Network.get "#{BASE_URL}#{query_builder(query)}#{END_URL}" end