Class: CensusApi::Request
- Inherits:
-
Object
- Object
- CensusApi::Request
- Defined in:
- lib/census_api/request.rb
Overview
> CensusApi::Request
client#initialize method takes an url, vintage, source, options hash. client#find method accepts source and options hash, which include :key, :fields, :level, :within and :vintage.
Constant Summary collapse
- CENSUS_URL =
'http://api.census.gov/data'
Instance Attribute Summary collapse
-
#response ⇒ Object
Returns the value of attribute response.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(url, vintage, source, options) ⇒ Request
constructor
A new instance of Request.
- #parse_response ⇒ Object
Constructor Details
#initialize(url, vintage, source, options) ⇒ Request
Returns a new instance of Request.
16 17 18 19 20 21 22 |
# File 'lib/census_api/request.rb', line 16 def initialize(url, vintage, source, ) uri = Addressable::URI.parse("#{url}/#{vintage}/#{source}") uri.query_values = @response = RestClient.get(uri.to_s) do |response, _req, _res, _blk| response end end |
Instance Attribute Details
#response ⇒ Object
Returns the value of attribute response.
12 13 14 |
# File 'lib/census_api/request.rb', line 12 def response @response end |
Class Method Details
.find(source, options = {}) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/census_api/request.rb', line 24 def self.find(source, = {}) fields = [:fields] fields = fields.split(',').push('NAME').join(',') if fields.is_a? String fields = fields.push('NAME').join(',') if fields.is_a? Array level = format([:level], false) params = { key: [:key], get: fields, for: level } params.merge!(in: format([:within][0], true)) unless [:within].empty? .merge!(vintage: 2010) unless [:vintage] request = new(CENSUS_URL, [:vintage], source, params) request.parse_response end |
Instance Method Details
#parse_response ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/census_api/request.rb', line 36 def parse_response case @response.code when 200 response_success(@response) else response_error(@response) end end |