|
|
|
@ -1,4 +1,5 @@
|
|
|
|
|
require 'faraday'
|
|
|
|
|
require 'uri'
|
|
|
|
|
require 'net/http'
|
|
|
|
|
require 'json'
|
|
|
|
|
|
|
|
|
|
class CPIFetcher
|
|
|
|
@ -6,16 +7,22 @@ class CPIFetcher
|
|
|
|
|
attr_reader :cpi_series_url
|
|
|
|
|
|
|
|
|
|
def initialize
|
|
|
|
|
@cpi_series_url = (ENV['CPI_SERIES_URL'] || DEFAULT_CPI_SERIES_URL)
|
|
|
|
|
@cpi_series_url = URI(ENV['CPI_SERIES_URL'] || DEFAULT_CPI_SERIES_URL)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def cpi
|
|
|
|
|
resp = JSON.parse(Faraday.get(cpi_series_url).body)
|
|
|
|
|
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__
|
|
|
|
|