Class: CensusApi::Client
- Inherits:
-
Object
- Object
- CensusApi::Client
- Defined in:
- lib/census_api/client.rb
Constant Summary collapse
- DATASETS =
can add more datasets as support becomes available
%w( sf1 acs5 )
Instance Attribute Summary collapse
-
#api_key ⇒ Object
readonly
Returns the value of attribute api_key.
-
#dataset ⇒ Object
Returns the value of attribute dataset.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
- #find(fields, level, *within) ⇒ Object
-
#initialize(api_key, options = {}) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(api_key, options = {}) ⇒ Client
Returns a new instance of Client.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/census_api/client.rb', line 8 def initialize(api_key, = {}) raise ArgumentError, "You must set an api_key." unless api_key # Use RestClient directly to determine the validity of the API Key path = "http://api.census.gov/data/2010/sf1?key=#{api_key}&get=P0010001&for=state:01" response = RestClient.get(path) if response.body.include? "Invalid Key" raise "'#{api_key}' is not a valid API key. Check your key for errors, or request a new one at census.gov." end @api_key = api_key if [:dataset] @dataset = [:dataset].downcase if DATASETS.include? [:dataset].downcase end end |
Instance Attribute Details
#api_key ⇒ Object (readonly)
Returns the value of attribute api_key.
3 4 5 |
# File 'lib/census_api/client.rb', line 3 def api_key @api_key end |
#dataset ⇒ Object
Returns the value of attribute dataset.
4 5 6 |
# File 'lib/census_api/client.rb', line 4 def dataset @dataset end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
3 4 5 |
# File 'lib/census_api/client.rb', line 3 def @options end |
Instance Method Details
#find(fields, level, *within) ⇒ Object
25 26 27 28 |
# File 'lib/census_api/client.rb', line 25 def find(fields, level, *within) raise "Client has not been assigned a dataset to query. Try @client.dataset = 'SF1' or anything from #{DATASETS}" if self.dataset.nil? Request.find(dataset, {key: @api_key, fields: fields, level: level, within: within}) end |