class FuelPricesEurope::FuelPrices

Public Class Methods

new() click to toggle source
# File lib/fuel_prices_europe/fuel_prices.rb, line 5
def initialize
  load_data
end

Public Instance Methods

find_by_countries(countries, type = :alpha2) click to toggle source

Find data from multiple countries. Pass in an array of countries. By default you must use alpha2 codes, but you can specify :alpha3 or :name as an extra argument. A hash with CountryData objects will be returned with the input countries as a key.

# File lib/fuel_prices_europe/fuel_prices.rb, line 12
def find_by_countries(countries, type = :alpha2)
  result = {}
  countries.each do |country|
    if type == :alpha2
      country_data = find_by_country_alpha2(country)
    elsif type == :alpha3
      country_data = find_by_country_alpha3(country)
    else
      country_data = find_by_country_name(country)
    end
    result[country] = country_data unless country_data.nil?
  end
  result
end
find_by_country_alpha2(alpha2) click to toggle source
# File lib/fuel_prices_europe/fuel_prices.rb, line 27
def find_by_country_alpha2(alpha2)
  @country_data[alpha2.upcase] || nil
end
Also aliased as: find_by_country_code
find_by_country_alpha3(alpha3) click to toggle source
# File lib/fuel_prices_europe/fuel_prices.rb, line 41
def find_by_country_alpha3(alpha3)
  load_data
  alpha2 = Country.find_country_by_alpha3(alpha3).alpha2
  @country_data[alpha2] || nil
end
find_by_country_code(alpha2)
find_by_country_name(country_name) click to toggle source
# File lib/fuel_prices_europe/fuel_prices.rb, line 34
def find_by_country_name(country_name)
  load_data
  alpha2 = Country.find_country_by_name(country_name).alpha2
  @country_data[alpha2] || nil
end

Private Instance Methods

load_data() click to toggle source
# File lib/fuel_prices_europe/fuel_prices.rb, line 49
def load_data
  @country_data = Scraper.scrape
end