class EiaFuel::Client

Public Class Methods

new(api_key = nil) click to toggle source
# File lib/eia_fuel/client.rb, line 5
def initialize(api_key = nil)
  EiaFuel.api_key = api_key unless api_key.nil?
  raise ::EiaFuel::ApiKeyError.new("Missing the api_key") if EiaFuel.api_key.nil?
end

Public Instance Methods

get(series_id) click to toggle source
# File lib/eia_fuel/client.rb, line 10
def get(series_id)
  conn = Faraday.new(url: 'http://api.eia.gov/series/')
  res = conn.get do |f|
    f.params[:api_key]   = EiaFuel.api_key
    f.params[:series_id] = series_id
  end
  parse_response(res)
  rescue => e
    puts 'An error ocurred while fetching data'
end

Private Instance Methods

parse_response(response) click to toggle source
# File lib/eia_fuel/client.rb, line 23
def parse_response(response)
  res = JSON.parse(response.body)
  if res.dig('series', 0)
    EiaFuel::Series.new(res.dig('series', 0))
  else
    JSON.parse(response.body)
  end
end