census_api 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,12 @@
1
1
  module CensusApi
2
2
  class Client
3
+
4
+ require "yaml"
5
+
3
6
  attr_reader :api_key, :options
4
7
  attr_accessor :dataset
5
8
 
9
+ SUMMARY_LEVELS = {}
6
10
  DATASETS = %w( sf1 acs5 ) # can add more datasets as support becomes available
7
11
 
8
12
  def initialize(api_key, options = {})
@@ -20,11 +24,19 @@ module CensusApi
20
24
  if options[:dataset]
21
25
  @dataset = options[:dataset].downcase if DATASETS.include? options[:dataset].downcase
22
26
  end
27
+
28
+ set_summary_levels
23
29
  end
24
30
 
25
31
  def find(fields, level, *within)
26
32
  raise "Client has not been assigned a dataset to query. Try @client.dataset = 'SF1' or anything from #{DATASETS}" if self.dataset.nil?
27
33
  Request.find(dataset, {key: @api_key, fields: fields, level: level, within: within})
28
34
  end
35
+
36
+ def set_summary_levels
37
+ if SUMMARY_LEVELS.empty?
38
+ YAML.load_file(File.dirname(__FILE__).to_s + '/../yml/census_shapes.yml').each{ |k,v| SUMMARY_LEVELS[k] = v }
39
+ end
40
+ end
29
41
  end
30
42
  end
@@ -4,12 +4,9 @@ module CensusApi
4
4
  require 'restclient'
5
5
  require 'hpricot'
6
6
  require 'json'
7
- require "yaml"
8
7
 
9
8
  attr_accessor :response
10
9
 
11
- @@census_shapes
12
-
13
10
  CENSUS_URL = "http://api.census.gov/data/2010"
14
11
 
15
12
  def initialize(url, source, options)
@@ -52,21 +49,13 @@ module CensusApi
52
49
  else
53
50
  s = [s,"*"]
54
51
  end
55
- shp = shapes[s[0].upcase]
52
+ shp = CensusApi::Client::SUMMARY_LEVELS[s[0].upcase]
56
53
  s.shift && s.unshift(shp['name'].downcase.gsub(" ", "+")) if !shp.nil?
57
54
  s.unshift(s.shift.split("/")[0]) if !s[0].scan("home+land").empty? && truncate
58
55
  s.join(":")
59
56
  }
60
57
  return result.join("+")
61
- end
62
-
63
- def self.shapes
64
- return @@census_shapes if defined?( @@census_shapes)
65
- @@census_shapes = {}
66
- YAML.load_file(File.dirname(__FILE__).to_s + '/../yml/census_shapes.yml').each{|k,v| @@census_shapes[k] = v}
67
- return @@census_shapes
68
58
  end
69
-
70
59
  end
71
60
  end
72
61
 
@@ -1,3 +1,3 @@
1
1
  module CensusApi
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: census_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: