census_api 1.0.8 → 1.1.0
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.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/README.md +0 -7
- data/census_api.gemspec +4 -5
- data/lib/census_api/client.rb +5 -18
- data/lib/census_api/request.rb +6 -10
- data/lib/census_api/version.rb +1 -1
- data/spec/census_api/client_spec.rb +12 -42
- data/spec/census_api/example_spec.rb +6 -27
- data/spec/census_api/request_spec.rb +20 -30
- data/spec/spec_helper.rb +0 -4
- data/spec/vcr_setup.rb +3 -3
- metadata +10 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a7ed25157bf9e34b4bd73269a608cdd1d312f0e
|
4
|
+
data.tar.gz: 9de9fe0553987838d86f9c6621e5638a3222b096
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e08efa0b1fd2bef67d6cbcab59f3e5e39e0f0f1310558e71d998a737ad647e3fde7b1f3363c639271a86eaa9aad9fe975f859fd28e1a549537c5eb7e19376f11
|
7
|
+
data.tar.gz: 00d11868c1ff9cd83b7439c64a0a44f9bb979e63b6fceb915a07fa000b342c97f603b2107b8a3c9b7dc14717fae5d276aeaaa7438b1e54abf9ece9a28d95bcc2
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -61,13 +61,6 @@ Then, use `Client#where` with an options hash to query for Census data. The fiel
|
|
61
61
|
|
62
62
|
```
|
63
63
|
|
64
|
-
The `Client.find` method which takes positional arguments is still available, but deprecated.
|
65
|
-
|
66
|
-
```ruby
|
67
|
-
@client.find('P0010001', 'COUNTY:001', 'STATE:06')
|
68
|
-
|
69
|
-
```
|
70
|
-
|
71
64
|
For a list of the fields available for each dataset, review the reference PDFs linked at the bottom of this document.
|
72
65
|
|
73
66
|
#### Parameters
|
data/census_api.gemspec
CHANGED
@@ -11,8 +11,8 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.email = ['tyrauber@mac.com']
|
12
12
|
gem.description = 'A Ruby Gem for querying the US Census Bureau API'
|
13
13
|
gem.summary = 'A Ruby Wrapper for the US Census Bureau API,
|
14
|
-
providing the ability to query both the
|
15
|
-
|
14
|
+
providing the ability to query both the SF1 and ACS5
|
15
|
+
datasets.'
|
16
16
|
gem.homepage = 'https://github.com/tyrauber/census_api.git'
|
17
17
|
|
18
18
|
gem.files = `git ls-files`.split("\n")
|
@@ -21,10 +21,9 @@ Gem::Specification.new do |gem|
|
|
21
21
|
.map { |f| File.basename(f) }
|
22
22
|
gem.require_paths = ['lib']
|
23
23
|
|
24
|
-
gem.add_runtime_dependency '
|
25
|
-
gem.add_runtime_dependency 'hpricot'
|
24
|
+
gem.add_runtime_dependency 'http'
|
26
25
|
gem.add_development_dependency 'rspec'
|
27
|
-
gem.add_development_dependency '
|
26
|
+
gem.add_development_dependency 'webmock', '< 2.0'
|
28
27
|
gem.add_development_dependency 'vcr'
|
29
28
|
gem.add_development_dependency 'rubocop'
|
30
29
|
end
|
data/lib/census_api/client.rb
CHANGED
@@ -3,9 +3,9 @@ module CensusApi
|
|
3
3
|
# client#initialize method takes an api_key and options hash,
|
4
4
|
# which includes dataset and vintage. client#where method accepts
|
5
5
|
# an options hash, including fields, level and within. Within is optional.
|
6
|
-
# client#find takes positional arguments and is now deprecated.
|
7
6
|
class Client
|
8
|
-
require '
|
7
|
+
require 'http'
|
8
|
+
$census_connection = HTTP.persistent "http://api.census.gov"
|
9
9
|
|
10
10
|
attr_reader :api_key, :api_vintage, :options
|
11
11
|
attr_accessor :dataset
|
@@ -23,19 +23,6 @@ module CensusApi
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
def find(fields, level, *within)
|
27
|
-
warn '[DEPRECATION] `find` is deprecated. Please use `where` instead.'
|
28
|
-
fail "Client requires a dataset (#{DATASETS})." if @dataset.nil?
|
29
|
-
options = {
|
30
|
-
key: @api_key,
|
31
|
-
vintage: @api_vintage,
|
32
|
-
fields: fields,
|
33
|
-
level: level,
|
34
|
-
within: within
|
35
|
-
}
|
36
|
-
Request.find(dataset, options)
|
37
|
-
end
|
38
|
-
|
39
26
|
def where(options={})
|
40
27
|
options.merge!(key: @api_key, vintage: @api_vintage)
|
41
28
|
fail "Client requires a dataset (#{DATASETS})." if @dataset.nil?
|
@@ -49,9 +36,9 @@ module CensusApi
|
|
49
36
|
protected
|
50
37
|
|
51
38
|
def validate_api_key(api_key)
|
52
|
-
path = "
|
53
|
-
response =
|
54
|
-
if response.
|
39
|
+
path = "/data/2010/sf1?key=#{api_key}&get=P0010001&for=state:01"
|
40
|
+
response = $census_connection.get path
|
41
|
+
if response.to_s.include? 'Invalid Key'
|
55
42
|
fail "'#{api_key}' is not a valid API key. Check your key for errors,
|
56
43
|
or request a new one at census.gov."
|
57
44
|
end
|
data/lib/census_api/request.rb
CHANGED
@@ -4,20 +4,16 @@ module CensusApi
|
|
4
4
|
# client#find method accepts source and options hash, which include
|
5
5
|
# :key, :fields, :level, :within and :vintage.
|
6
6
|
class Request
|
7
|
-
require '
|
8
|
-
require 'hpricot'
|
7
|
+
require 'http'
|
9
8
|
require 'json'
|
10
9
|
require 'yaml'
|
11
10
|
|
12
11
|
attr_accessor :response
|
13
12
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
@response = RestClient.get(uri.to_s) do |response, _req, _res, _blk|
|
19
|
-
response
|
20
|
-
end
|
13
|
+
def initialize(vintage, source, options)
|
14
|
+
uri = "/data/#{vintage}/#{source}?#{to_params(options)}"
|
15
|
+
@response = $census_connection.get(uri.to_s)
|
16
|
+
@response.flush
|
21
17
|
end
|
22
18
|
|
23
19
|
def self.find(source, options = {})
|
@@ -30,7 +26,7 @@ module CensusApi
|
|
30
26
|
params.merge!(in: format(options[:within][0], true))
|
31
27
|
end
|
32
28
|
options.merge!(vintage: 2010) unless options[:vintage]
|
33
|
-
request = new(
|
29
|
+
request = new(options[:vintage], source, params)
|
34
30
|
request.parse_response
|
35
31
|
end
|
36
32
|
|
data/lib/census_api/version.rb
CHANGED
@@ -1,36 +1,31 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe CensusApi::Client do
|
3
|
+
describe CensusApi::Client, :vcr do
|
4
4
|
|
5
|
-
describe 'client
|
6
|
-
|
7
|
-
use_vcr_cassette 'initialize_client'
|
5
|
+
describe 'initialize client' do
|
8
6
|
|
9
7
|
it 'should not initialize without an api_key' do
|
10
|
-
|
8
|
+
expect { CensusApi::Client.new }.to raise_error(ArgumentError)
|
11
9
|
end
|
12
10
|
|
13
11
|
it 'should initialize with an api_key' do
|
14
12
|
@client = CensusApi::Client.new(api_key)
|
15
|
-
@client.api_key.
|
13
|
+
expect(@client.api_key).to eq(api_key)
|
16
14
|
end
|
17
15
|
end
|
18
16
|
|
19
|
-
describe 'client and dataset
|
20
|
-
|
21
|
-
use_vcr_cassette 'initialize_client_and_dataset'
|
17
|
+
describe 'initialize client and dataset' do
|
22
18
|
|
23
19
|
it 'should initialize with an api_key and dataset' do
|
24
20
|
dataset = 'SF1'
|
25
21
|
@client = CensusApi::Client.new(api_key, dataset: dataset)
|
26
|
-
@client.api_key.
|
27
|
-
@client.dataset.
|
22
|
+
expect(@client.api_key).to eq(api_key)
|
23
|
+
expect(@client.dataset).to eq(dataset.downcase)
|
28
24
|
end
|
29
25
|
end
|
30
26
|
|
31
27
|
describe 'datasets' do
|
32
28
|
|
33
|
-
use_vcr_cassette 'find_method'
|
34
29
|
describe 'sf1' do
|
35
30
|
let(:source) { 'sf1' }
|
36
31
|
let(:options) do
|
@@ -43,7 +38,7 @@ describe CensusApi::Client do
|
|
43
38
|
|
44
39
|
it 'should request sf1' do
|
45
40
|
@client = CensusApi::Client.new(api_key, dataset: source)
|
46
|
-
CensusApi::Request.
|
41
|
+
expect(CensusApi::Request).to receive(:find).with(@client.dataset, options)
|
47
42
|
@client.where(options)
|
48
43
|
end
|
49
44
|
end
|
@@ -60,15 +55,13 @@ describe CensusApi::Client do
|
|
60
55
|
|
61
56
|
it 'should request acs5' do
|
62
57
|
@client = CensusApi::Client.new(api_key, dataset: source)
|
63
|
-
CensusApi::Request.
|
58
|
+
expect(CensusApi::Request).to receive(:find).with(@client.dataset, options)
|
64
59
|
@client.where(options)
|
65
60
|
end
|
66
61
|
end
|
67
62
|
end
|
68
63
|
|
69
|
-
describe '#
|
70
|
-
|
71
|
-
use_vcr_cassette 'find_method'
|
64
|
+
describe '#where' do
|
72
65
|
|
73
66
|
let(:source) { 'sf1' }
|
74
67
|
let(:options) do
|
@@ -79,29 +72,6 @@ describe CensusApi::Client do
|
|
79
72
|
within: [] }
|
80
73
|
end
|
81
74
|
|
82
|
-
it 'should be deprecated' do
|
83
|
-
@client = CensusApi::Client.new(api_key, dataset: source)
|
84
|
-
@client.should_receive(:warn)
|
85
|
-
.with('[DEPRECATION] `find` is deprecated. Please use `where` instead.')
|
86
|
-
@client.find(options[:fields], options[:level])
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
describe '#where' do
|
91
|
-
use_vcr_cassette 'where_method'
|
92
|
-
|
93
|
-
let(:source) { 'sf1' }
|
94
|
-
|
95
|
-
let(:options) do
|
96
|
-
{
|
97
|
-
key: api_key,
|
98
|
-
vintage: 2010,
|
99
|
-
fields: 'P0010001',
|
100
|
-
level: 'STATE:06',
|
101
|
-
within: []
|
102
|
-
}
|
103
|
-
end
|
104
|
-
|
105
75
|
let(:full_params) do
|
106
76
|
options.merge!(level: 'COUNTY:001', within: 'STATE:06')
|
107
77
|
end
|
@@ -120,14 +90,14 @@ describe CensusApi::Client do
|
|
120
90
|
|
121
91
|
it 'should request sf1 with valid fields and level params' do
|
122
92
|
@client = CensusApi::Client.new(api_key, dataset: source)
|
123
|
-
CensusApi::Request.
|
93
|
+
expect(CensusApi::Request).to receive(:find)
|
124
94
|
.with(@client.dataset, options)
|
125
95
|
expect { @client.where(options) }.not_to raise_error
|
126
96
|
end
|
127
97
|
|
128
98
|
it 'should request sf1 with valid fields, level and within params' do
|
129
99
|
@client = CensusApi::Client.new(api_key, dataset: source)
|
130
|
-
CensusApi::Request.
|
100
|
+
expect(CensusApi::Request).to receive(:find)
|
131
101
|
.with(@client.dataset, full_params)
|
132
102
|
expect { @client.where(full_params) }.not_to raise_error
|
133
103
|
end
|
@@ -1,56 +1,35 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe 'CensusApi::Examples' do
|
4
|
-
use_vcr_cassette 'census_api examples'
|
3
|
+
describe 'CensusApi::Examples', :vcr do
|
5
4
|
let(:client) { CensusApi::Client.new(api_key) }
|
6
5
|
|
7
6
|
describe 'sf1' do
|
8
7
|
before(:each) do
|
9
8
|
client.dataset = 'sf1'
|
10
9
|
end
|
11
|
-
describe '#find' do
|
12
|
-
CensusExamples::SF1.each do |query|
|
13
|
-
it "should retrieve #{query.join(",")}" do
|
14
|
-
response = client.send(:find, query[0], query[1], query[2])
|
15
|
-
expect{ response }.not_to raise_error
|
16
|
-
response.should be_a(Array)
|
17
|
-
response.first.should include('name')
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
10
|
describe '#where' do
|
22
11
|
CensusExamples::SF1.each do |query|
|
23
12
|
it "should retrieve #{query.join(",")}" do
|
24
13
|
response = client.send(:where, {fields: query[0], level: query[1], within: query[2]})
|
25
14
|
expect{ response }.not_to raise_error
|
26
|
-
response.
|
27
|
-
response.first.
|
15
|
+
expect(response).to be_a(Array)
|
16
|
+
expect(response.first).to include('name')
|
28
17
|
end
|
29
18
|
end
|
30
19
|
end
|
31
20
|
end
|
32
|
-
|
21
|
+
|
33
22
|
describe 'acs5' do
|
34
23
|
before(:each) do
|
35
24
|
client.dataset = 'acs5'
|
36
25
|
end
|
37
|
-
describe '#find' do
|
38
|
-
CensusExamples::ACS5.each do |query|
|
39
|
-
it "should retrieve #{query.join(",")}" do
|
40
|
-
response = client.send(:find, query[0], query[1], query[2])
|
41
|
-
expect{ response }.not_to raise_error
|
42
|
-
response.should be_a(Array)
|
43
|
-
response.first.should include('name')
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
26
|
describe '#where' do
|
48
27
|
CensusExamples::ACS5.each do |query|
|
49
28
|
it "should retrieve #{query.join(",")}" do
|
50
29
|
response = client.send(:where, {fields: query[0], level: query[1], within: query[2]})
|
51
30
|
expect{ response }.not_to raise_error
|
52
|
-
response.
|
53
|
-
response.first.
|
31
|
+
expect(response).to be_a(Array)
|
32
|
+
expect(response.first).to include('name')
|
54
33
|
end
|
55
34
|
end
|
56
35
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe CensusApi::Request do
|
3
|
+
describe CensusApi::Request, :vcr do
|
4
4
|
|
5
5
|
context '#find' do
|
6
6
|
[{source: 'sf1', field: 'P0010001', results: [
|
@@ -14,7 +14,6 @@ describe CensusApi::Request do
|
|
14
14
|
].each do |test|
|
15
15
|
|
16
16
|
describe "#{test[:source]} for a geography type" do
|
17
|
-
use_vcr_cassette "#{test[:source]}_find_states"
|
18
17
|
|
19
18
|
let(:params) do
|
20
19
|
{
|
@@ -32,20 +31,19 @@ describe CensusApi::Request do
|
|
32
31
|
end
|
33
32
|
|
34
33
|
it 'should have 52 results' do
|
35
|
-
@collection.count.
|
34
|
+
expect(@collection.count).to eq(52)
|
36
35
|
end
|
37
36
|
|
38
37
|
it 'should include fields for each result' do
|
39
38
|
@collection.each do |result|
|
40
|
-
result.
|
41
|
-
result.
|
42
|
-
result.
|
39
|
+
expect(result).to include(test[:field])
|
40
|
+
expect(result).to include('name')
|
41
|
+
expect(result).to include('state')
|
43
42
|
end
|
44
43
|
end
|
45
44
|
end
|
46
45
|
|
47
46
|
describe "#{test[:source]} for a geography type and id" do
|
48
|
-
use_vcr_cassette "#{test[:source]}_find_state_with_id"
|
49
47
|
let(:params) do
|
50
48
|
{
|
51
49
|
key: api_key,
|
@@ -62,18 +60,17 @@ describe CensusApi::Request do
|
|
62
60
|
end
|
63
61
|
|
64
62
|
it 'should have one result' do
|
65
|
-
@collection.count.
|
63
|
+
expect(@collection.count).to eq(1)
|
66
64
|
end
|
67
65
|
|
68
66
|
it 'should include fields for each result' do
|
69
67
|
@collection.each do |result|
|
70
|
-
result.
|
68
|
+
expect(result).to eq(test[:results][0])
|
71
69
|
end
|
72
70
|
end
|
73
71
|
end
|
74
72
|
|
75
73
|
describe "#{test[:source]} for a geography type" do
|
76
|
-
use_vcr_cassette "#{test[:source]}_find_counties_in_state"
|
77
74
|
|
78
75
|
let(:params) do
|
79
76
|
{
|
@@ -91,20 +88,19 @@ describe CensusApi::Request do
|
|
91
88
|
end
|
92
89
|
|
93
90
|
it 'should have one result' do
|
94
|
-
@collection.count.
|
91
|
+
expect(@collection.count).to eq(58)
|
95
92
|
end
|
96
93
|
|
97
94
|
it 'should include fields for each result' do
|
98
95
|
@collection.each do |result|
|
99
|
-
result.
|
100
|
-
result.
|
101
|
-
result.
|
96
|
+
expect(result).to include(test[:field])
|
97
|
+
expect(result).to include('name')
|
98
|
+
expect(result).to include('state')
|
102
99
|
end
|
103
100
|
end
|
104
101
|
end
|
105
102
|
|
106
103
|
describe "#{test[:source]} for a geography" do
|
107
|
-
use_vcr_cassette "#{test[:source]}_find_county_in_state"
|
108
104
|
|
109
105
|
let(:params) do
|
110
106
|
{
|
@@ -122,12 +118,12 @@ describe CensusApi::Request do
|
|
122
118
|
end
|
123
119
|
|
124
120
|
it 'should have one result' do
|
125
|
-
@collection.count.
|
121
|
+
expect(@collection.count).to eq(1)
|
126
122
|
end
|
127
123
|
|
128
124
|
it 'should include fields for each result' do
|
129
125
|
@collection.each do |result|
|
130
|
-
result.
|
126
|
+
expect(result).to eq(test[:results][1])
|
131
127
|
end
|
132
128
|
end
|
133
129
|
end
|
@@ -137,7 +133,6 @@ describe CensusApi::Request do
|
|
137
133
|
context 'DATASETS' do
|
138
134
|
CensusApi::Client::DATASETS.each do |source|
|
139
135
|
describe "#{source}" do
|
140
|
-
use_vcr_cassette "dataset_#{source}_find_states"
|
141
136
|
let(:params) do
|
142
137
|
{
|
143
138
|
key: api_key,
|
@@ -151,7 +146,7 @@ describe CensusApi::Request do
|
|
151
146
|
|
152
147
|
it "#{source} should be valid" do
|
153
148
|
@collection = CensusApi::Request.find(source, params)
|
154
|
-
@collection.count.
|
149
|
+
expect(@collection.count).to eq(52)
|
155
150
|
end
|
156
151
|
end
|
157
152
|
end
|
@@ -159,7 +154,6 @@ describe CensusApi::Request do
|
|
159
154
|
|
160
155
|
context '.vintage' do
|
161
156
|
describe 'vintage' do
|
162
|
-
use_vcr_cassette 'sf1_find_states_vintage'
|
163
157
|
|
164
158
|
let(:params) do
|
165
159
|
{
|
@@ -179,34 +173,30 @@ describe CensusApi::Request do
|
|
179
173
|
end
|
180
174
|
|
181
175
|
it 'should be valid' do
|
182
|
-
@collection_2010.count.
|
176
|
+
expect(@collection_2010.count).to eq(52)
|
183
177
|
end
|
184
178
|
|
185
179
|
it 'should not be same result set' do
|
186
|
-
@collection_2010.
|
180
|
+
expect(@collection_2010).not_to eq(@collection_2012)
|
187
181
|
end
|
188
182
|
end
|
189
183
|
end
|
190
184
|
|
191
185
|
context '#format' do
|
192
186
|
it 'should add wildcard after reformatting geography type without id' do
|
193
|
-
CensusApi::Request.format('COUSUB', false).
|
194
|
-
be('county+subdivision:*')
|
187
|
+
expect(CensusApi::Request.format('COUSUB', false)).to eq('county+subdivision:*')
|
195
188
|
end
|
196
189
|
|
197
190
|
it 'should maintain geography id after reformatting geography type' do
|
198
|
-
CensusApi::Request.format('COUSUB:86690', false).
|
199
|
-
be('county+subdivision:86690')
|
191
|
+
expect(CensusApi::Request.format('COUSUB:86690', false)).to eq('county+subdivision:86690')
|
200
192
|
end
|
201
193
|
|
202
194
|
it 'should truncate geography type AIANNH' do
|
203
|
-
CensusApi::Request.format('AIANNH', true).
|
204
|
-
be('american+indian+area:*')
|
195
|
+
expect(CensusApi::Request.format('AIANNH', true)).to eq('american+indian+area:*')
|
205
196
|
end
|
206
197
|
|
207
198
|
it 'should not truncate geography type CBSA' do
|
208
|
-
CensusApi::Request.format('CBSA', true).
|
209
|
-
be('metropolitan+statistical+area/micropolitan+statistical+area:*')
|
199
|
+
expect(CensusApi::Request.format('CBSA', true)).to eq('metropolitan+statistical+area/micropolitan+statistical+area:*')
|
210
200
|
end
|
211
201
|
end
|
212
202
|
end
|
data/spec/spec_helper.rb
CHANGED
data/spec/vcr_setup.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'vcr'
|
2
2
|
|
3
|
-
VCR.
|
3
|
+
VCR.configure do |c|
|
4
4
|
c.cassette_library_dir = 'spec/vcr_cassettes'
|
5
|
-
c.
|
6
|
-
c.
|
5
|
+
c.configure_rspec_metadata!
|
6
|
+
c.hook_into :webmock
|
7
7
|
c.default_cassette_options = { record: :new_episodes }
|
8
8
|
end
|
metadata
CHANGED
@@ -1,31 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: census_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ty Rauber
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: hpricot
|
14
|
+
name: http
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
30
16
|
requirements:
|
31
17
|
- - ">="
|
@@ -53,19 +39,19 @@ dependencies:
|
|
53
39
|
- !ruby/object:Gem::Version
|
54
40
|
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
42
|
+
name: webmock
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
|
-
- - "
|
45
|
+
- - "<"
|
60
46
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
47
|
+
version: '2.0'
|
62
48
|
type: :development
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
|
-
- - "
|
52
|
+
- - "<"
|
67
53
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
54
|
+
version: '2.0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: vcr
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,11 +125,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
139
125
|
version: '0'
|
140
126
|
requirements: []
|
141
127
|
rubyforge_project:
|
142
|
-
rubygems_version: 2.
|
128
|
+
rubygems_version: 2.5.1
|
143
129
|
signing_key:
|
144
130
|
specification_version: 4
|
145
131
|
summary: A Ruby Wrapper for the US Census Bureau API, providing the ability to query
|
146
|
-
both the
|
132
|
+
both the SF1 and ACS5 datasets.
|
147
133
|
test_files:
|
148
134
|
- spec/api_key.sample.rb
|
149
135
|
- spec/census_api/client_spec.rb
|