cpi-feed/cpi_fetcher.rb
Dan Buch e7cd0c2979 Remove faraday depedency
so that the fetcher may be used as a script without bundling things
2015-09-06 12:54:45 -04:00

32 lines
616 B
Ruby

require 'uri'
require 'net/http'
require 'json'
class CPIFetcher
DEFAULT_CPI_SERIES_URL = 'http://api.bls.gov/publicAPI/v2/timeseries/data/CUUSA210SA0'
attr_reader :cpi_series_url
def initialize
@cpi_series_url = URI(ENV['CPI_SERIES_URL'] || DEFAULT_CPI_SERIES_URL)
end
def cpi
resp = fetch_raw_response
return nil unless resp['Results']['series']
resp['Results']['series'].first['data'].first['value']
end
private
def fetch_raw_response
JSON.parse(Net::HTTP.get_response(cpi_series_url).body)
end
end
if $PROGRAM_NAME == __FILE__
puts CPIFetcher.new.cpi
exit 0
end