policymap_wrap 1.0.0 → 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/Gemfile +2 -0
- data/Gemfile.lock +20 -0
- data/VERSION +1 -1
- data/lib/policymap_wrap/client.rb +82 -30
- data/lib/policymap_wrap/connection.rb +1 -1
- data/policymap_wrap.gemspec +1 -2
- metadata +15 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f185ed4a2bb58653a469276d87771b09f65439c
|
4
|
+
data.tar.gz: 10069fc06644d7d16efddb0aa03d2d01fd6874d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e5845dfb609f079d5bb0e66b2267c6ddc18631ad4c6d4b81221e660f3e2330135ad779988fe6baf7c34e2b85da017b14d3727a3656dcb3ae9bcbf0ab52bf3a9
|
7
|
+
data.tar.gz: 12fc72f21c2a6f6ad499d47ba004279e7b5a049ac4fae749ed978dd63651a0f8034d12a8abe52a4c91f7b022af5997441f4eecaf5962064bbd31dcc4b6456145
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
policymap_wrap (1.0.0)
|
5
|
+
rest-client (~> 1.6)
|
6
|
+
yajl-ruby (~> 1.1.0)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
mime-types (1.23)
|
12
|
+
rest-client (1.6.7)
|
13
|
+
mime-types (>= 1.16)
|
14
|
+
yajl-ruby (1.1.0)
|
15
|
+
|
16
|
+
PLATFORMS
|
17
|
+
ruby
|
18
|
+
|
19
|
+
DEPENDENCIES
|
20
|
+
policymap_wrap!
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.1.0
|
@@ -2,26 +2,60 @@ module PolicyMap
|
|
2
2
|
|
3
3
|
class Client
|
4
4
|
|
5
|
-
BOUNDARY_TYPES = {
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
5
|
+
BOUNDARY_TYPES = {
|
6
|
+
:state => 2,
|
7
|
+
:county => 4,
|
8
|
+
:census_tract => 6,
|
9
|
+
:zip => 8,
|
10
|
+
:block_group => 15,
|
11
|
+
:city => 16,
|
12
|
+
:congressional_district => 23,
|
13
|
+
:assembly_district => 25,
|
14
|
+
:senate_district => 24
|
15
|
+
}.freeze
|
16
|
+
|
17
|
+
INDICATORS = {
|
18
|
+
:average_vehicles_per_household => 9873779,
|
19
|
+
:broadcasting => 9584691,
|
20
|
+
:distressed_community => 9629156,
|
21
|
+
:percent_homeowners => 9873049,
|
22
|
+
:total_population => 9876593,
|
23
|
+
:independent_artists => 9618303,
|
24
|
+
:median_gross_rent => 9873661,
|
25
|
+
:median_gross_rent_2009 => 9873663,
|
26
|
+
:median_home_value => 9873606,
|
27
|
+
:median_household_income => 9871831,
|
28
|
+
:movie_and_sound_industries => 9584731,
|
29
|
+
:museums_and_historical_sites => 9584676,
|
30
|
+
:other_info_services => 9584624,
|
31
|
+
:percent_moved_in_since_1990 => 9873776,
|
32
|
+
:percent_who_commute_to_work_using_public_transit => 9873811,
|
33
|
+
:percent_african_american => 9876222,
|
34
|
+
:percent_native_american => 9876623,
|
35
|
+
:percent_asian => 9876202,
|
36
|
+
:percent_foreign_born => 9869060,
|
37
|
+
:percent_hispanic => 9876280,
|
38
|
+
:percent_pacific_islander => 9876468,
|
39
|
+
:poverty_rate => 9871807,
|
40
|
+
:percent_disabled => 9869050,
|
41
|
+
:percent_65_or_older => 9869059,
|
42
|
+
:percent_under_18 => 9869063,
|
43
|
+
:percent_college_degree => 9873916,
|
44
|
+
:percent_high_school_or_less => 9873913,
|
45
|
+
:percent_mixed_race => 9876437,
|
46
|
+
:percent_vacant_units => 9631221,
|
47
|
+
:percent_white => 9876415,
|
48
|
+
:percent_graduate_degree => 9873904,
|
49
|
+
:performing_arts_and_spectator_sports => 9584608,
|
50
|
+
:publishing_industries => 9584638,
|
51
|
+
:unemployment_rate => 9841103,
|
52
|
+
:vacancy_rate => 9876608
|
53
|
+
}.freeze
|
21
54
|
|
22
55
|
@@connection = nil
|
23
56
|
@@debug = false
|
24
57
|
@@default_options = nil
|
58
|
+
@@boundary_types_by_id = nil
|
25
59
|
|
26
60
|
class << self
|
27
61
|
|
@@ -57,17 +91,17 @@ module PolicyMap
|
|
57
91
|
|
58
92
|
raise InsufficientArgsForSearch unless options.has_key?(:boundary_types) && options.has_key?(:query)
|
59
93
|
|
60
|
-
options[:boundary_types] =
|
94
|
+
options[:boundary_types] = sanitized_boundary_types(options[:boundary_types])
|
61
95
|
HashUtils.rename_key!(options, :boundary_types, :bt)
|
62
|
-
HashUtils.rename_key!(options, :query, :
|
63
|
-
HashUtils.rename_key!(options, :state, :
|
64
|
-
HashUtils.rename_key!(options, :county, :
|
65
|
-
HashUtils.rename_key!(options, :census_tract, :
|
96
|
+
HashUtils.rename_key!(options, :query, :ss)
|
97
|
+
HashUtils.rename_key!(options, :state, :sst) if options.has_key?(:state)
|
98
|
+
HashUtils.rename_key!(options, :county, :sco) if options.has_key?(:county)
|
99
|
+
HashUtils.rename_key!(options, :census_tract, :sct) if options.has_key?(:census_tract)
|
66
100
|
|
67
101
|
options = default_options.merge(options)
|
68
102
|
|
69
103
|
result = get(Endpoint.endpoint_url, options)
|
70
|
-
result['sch']
|
104
|
+
result['sch']
|
71
105
|
end
|
72
106
|
|
73
107
|
def boundary_search(*args)
|
@@ -78,7 +112,7 @@ module PolicyMap
|
|
78
112
|
|
79
113
|
raise InsufficientArgsForSearch unless options.has_key?(:boundary_types) || options.has_key?(:boundary_ids)
|
80
114
|
|
81
|
-
options[:boundary_types] =
|
115
|
+
options[:boundary_types] = sanitized_boundary_types(options[:boundary_types])
|
82
116
|
options[:boundary_ids] = Array(options[:boundary_ids]).join(',') if options.has_key?(:boundary_ids)
|
83
117
|
HashUtils.rename_key!(options, :boundary_types, :bt) if options.has_key?(:boundary_types)
|
84
118
|
HashUtils.rename_key!(options, :boundary_ids, :bi) if options.has_key?(:boundary_ids)
|
@@ -87,7 +121,7 @@ module PolicyMap
|
|
87
121
|
options = default_options.merge(options)
|
88
122
|
|
89
123
|
result = get(Endpoint.endpoint_url, options)
|
90
|
-
|
124
|
+
result["bnd"]
|
91
125
|
end
|
92
126
|
|
93
127
|
def indicator_search(*args)
|
@@ -98,8 +132,8 @@ module PolicyMap
|
|
98
132
|
|
99
133
|
raise InsufficientArgsForSearch unless options.has_key?(:indicators) && (options.has_key?(:boundary_types) || options.has_key?(:boundary_ids))
|
100
134
|
|
101
|
-
options[:indicators] =
|
102
|
-
options[:boundary_types] =
|
135
|
+
options[:indicators] = sanitized_indicators(options[:indicators])
|
136
|
+
options[:boundary_types] = sanitized_boundary_types(options[:boundary_types])
|
103
137
|
options[:boundary_ids] = Array(options[:boundary_ids]).join(',') if options.has_key?(:boundary_ids)
|
104
138
|
HashUtils.rename_key!(options, :indicators, :ii)
|
105
139
|
HashUtils.rename_key!(options, :boundary_types, :bt) if options.has_key?(:boundary_types)
|
@@ -109,18 +143,18 @@ module PolicyMap
|
|
109
143
|
options = default_options.merge(options)
|
110
144
|
|
111
145
|
result = get(Endpoint.endpoint_url, options)
|
112
|
-
|
146
|
+
result["ind"]
|
113
147
|
end
|
114
148
|
|
115
149
|
def containment_search(*args)
|
116
150
|
default_options = @@default_options
|
117
|
-
default_options[:t]
|
151
|
+
default_options[:t] = 'bnd'
|
118
152
|
|
119
153
|
options = extract_options!(args)
|
120
154
|
|
121
155
|
raise InsufficientArgsForSearch unless options.has_key?(:boundary_types) && options.has_key?(:boundary_id)
|
122
156
|
|
123
|
-
options[:boundary_types] =
|
157
|
+
options[:boundary_types] = sanitized_boundary_types(options[:boundary_types])
|
124
158
|
HashUtils.rename_key!(options, :boundary_types, :cbt)
|
125
159
|
HashUtils.rename_key!(options, :boundary_id, :bi)
|
126
160
|
|
@@ -128,7 +162,7 @@ module PolicyMap
|
|
128
162
|
options = default_options.merge(options)
|
129
163
|
|
130
164
|
result = get(Endpoint.endpoint_url, options)
|
131
|
-
result['
|
165
|
+
result['bnd']
|
132
166
|
end
|
133
167
|
|
134
168
|
def get(endpoint, data=nil)
|
@@ -146,6 +180,24 @@ module PolicyMap
|
|
146
180
|
end
|
147
181
|
end
|
148
182
|
|
183
|
+
def sanitized_boundary_types(types)
|
184
|
+
# Convert :all to an array of all types
|
185
|
+
types = Array(types)
|
186
|
+
types = BOUNDARY_TYPES.keys if !types.empty? && :all == types.first.to_sym
|
187
|
+
|
188
|
+
# Convert symbols to a list of numbers
|
189
|
+
types.map { |bt| BOUNDARY_TYPES[bt] }.join(',')
|
190
|
+
end
|
191
|
+
|
192
|
+
def sanitized_indicators(indicators)
|
193
|
+
# Convert :all to an array of all types
|
194
|
+
indicators = Array(indicators)
|
195
|
+
indicators = INDICATORS.keys if !indicators.empty? && :all == indicators.first.to_sym
|
196
|
+
|
197
|
+
# Convert symbols to a list of numbers
|
198
|
+
indicators.map { |i| INDICATORS[i] }.join(',')
|
199
|
+
end
|
200
|
+
|
149
201
|
end
|
150
202
|
|
151
203
|
end
|
data/policymap_wrap.gemspec
CHANGED
@@ -11,11 +11,10 @@ Gem::Specification.new do |s|
|
|
11
11
|
s.email = "mgomes@geminisbs.com"
|
12
12
|
|
13
13
|
s.add_dependency "yajl-ruby", "~> 1.1.0"
|
14
|
-
s.add_dependency "rest-client", "~> 1.
|
14
|
+
s.add_dependency "rest-client", "~> 1.8"
|
15
15
|
|
16
16
|
s.files = `git ls-files`.split("\n")
|
17
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
end
|
21
|
-
|
metadata
CHANGED
@@ -1,51 +1,53 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: policymap_wrap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mauricio Gomes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: yajl-ruby
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.1.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rest-client
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.8'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1.
|
40
|
+
version: '1.8'
|
41
41
|
description: Ruby wrapper around the PolicyMap API v2
|
42
42
|
email: mgomes@geminisbs.com
|
43
43
|
executables: []
|
44
44
|
extensions: []
|
45
45
|
extra_rdoc_files: []
|
46
46
|
files:
|
47
|
-
- .document
|
48
|
-
- .gitignore
|
47
|
+
- ".document"
|
48
|
+
- ".gitignore"
|
49
|
+
- Gemfile
|
50
|
+
- Gemfile.lock
|
49
51
|
- LICENSE
|
50
52
|
- README.rdoc
|
51
53
|
- Rakefile
|
@@ -69,17 +71,17 @@ require_paths:
|
|
69
71
|
- lib
|
70
72
|
required_ruby_version: !ruby/object:Gem::Requirement
|
71
73
|
requirements:
|
72
|
-
- -
|
74
|
+
- - ">="
|
73
75
|
- !ruby/object:Gem::Version
|
74
76
|
version: '0'
|
75
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
78
|
requirements:
|
77
|
-
- -
|
79
|
+
- - ">="
|
78
80
|
- !ruby/object:Gem::Version
|
79
81
|
version: '0'
|
80
82
|
requirements: []
|
81
83
|
rubyforge_project:
|
82
|
-
rubygems_version: 2.
|
84
|
+
rubygems_version: 2.5.1
|
83
85
|
signing_key:
|
84
86
|
specification_version: 4
|
85
87
|
summary: Ruby wrapper around the PolicyMap API v2
|