class EiaFuel::Series

Attributes

data[R]
description[R]
end[R]
frequency[R]
geography[R]
iso3166[R]
name[R]
series_id[R]
source[R]
start[R]
units[R]
unitsshort[R]
updated[R]

Public Class Methods

new(series = nil) click to toggle source
# File lib/eia_fuel/series.rb, line 20
def initialize(series = nil)
  if series
    [:series_id, :name, :units, :frequency, :unitsshort, :description, :copyright, :source, :iso3166, :geography].each do |var|
      self.instance_variable_set "@#{var}", series[var.to_s]
    end
    @start   = Date.strptime(series["end"], "%Y%m%d")
    @end     = Date.strptime(series["end"], "%Y%m%d")
    @updated = Date.parse(series["updated"])
    @data    = generate_data(series["data"])
  end
end

Public Instance Methods

latest_price() click to toggle source
# File lib/eia_fuel/series.rb, line 32
def latest_price
  data.first.price
end

Private Instance Methods

generate_data(data_array) click to toggle source
# File lib/eia_fuel/series.rb, line 38
def generate_data(data_array)
  data_array.map do |tuple|
    Tuple.new(Date.strptime(tuple.first, "%Y%m%d"), tuple.last)
  end
end