zipcoder 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 77f0c35bbd27d057f681505f7acb9ee053a5aa6b
4
- data.tar.gz: 3ee6d1f08486f19717609b2cd113e22447679488
3
+ metadata.gz: 6a8c448625e1f29e651486fe183f07fa0b5b5b4d
4
+ data.tar.gz: 9234087086d3e048d8ca50eae52f2bf2f5b21e4a
5
5
  SHA512:
6
- metadata.gz: 278c9af7fbdeaa1045d1611816cff18c3309bdd9a2cbb36d1a9a74d510b269cce23c670be3e50e5cdb1c425fbd7aefb7934c9910747350ceffb38687aa3dd5d4
7
- data.tar.gz: 5c161707534917c5cd770b7d34689b4c4b9403b3783c55e8803a7bc2d0e2924195a8c7efb19dd8a7d37c75126cc2835fe63a1cdfd382604649362e19ccf7162c
6
+ metadata.gz: 02a075c911f38c1f14035b0dd52f0fee5417c900d19f23b4a1cf9c26a08c32f3015ef421c30bf4a8405c913c3dba4492cc09b65221d4f31694a05c91ffd8f337
7
+ data.tar.gz: 6d2c2eb7f9b5af8c28f73390fef20152c9cb2f60dcd7c55c469305073e5f5fab2fe887704052503e5859ac1cb89d362f7a457d32ab8f2f228bb794dfc20bd75b
data/README.md CHANGED
@@ -7,8 +7,12 @@ Gem for performing zip code lookup operations
7
7
 
8
8
  ## Revision History
9
9
 
10
- - v0.7.2:
11
- - minro bug fixes
10
+ - v0.7.4:
11
+ - updates "zip_cities" to return valid zip_codes (and not just what you enter)
12
+ - also added "specified_zip" to the city object when entering zip codes. This
13
+ will allow a client to know if all of the zip codes were specified for a city
14
+ - v0.7.2/3:
15
+ - minor bug fixes
12
16
  - v0.7.0:
13
17
  - added "zips_only" option to "city_info"
14
18
  - v0.6.1:
@@ -183,7 +187,7 @@ require 'zipcoder'
183
187
 
184
188
  # Returns the cities for a zip_code
185
189
  puts "78701-78750,78613".zip_cities
186
- # > [{:zip=>"78748", :city=>"Austin", :state=>"TX", :lat=>30.26, :long=>-97.74}, ...
190
+ # > [{:zip=>"78701-78705,78710,78712,78717,...", :specified_zip => "78701-78750", :city=>"Austin", :state=>"TX", :lat=>30.26, :long=>-97.74}, ...
187
191
 
188
192
  # Returns just the name of the cities
189
193
  puts "78701-78750,78613".zip_cities names_only: true
data/lib/zipcoder.rb CHANGED
@@ -57,21 +57,12 @@ module Zipcoder
57
57
  max = kwargs[:max]
58
58
 
59
59
  cities = {}
60
- last_key = nil
61
- last_zip = nil
62
60
  self._parse_zip_string(zip_string).each do |zip|
63
61
  info = zip.zip_info
64
- if info == nil
65
- if last_zip != nil and zip.to_i == last_zip.to_i + 1
66
- key = last_key
67
- else
68
- key = nil
69
- end
70
- else
62
+ key = nil
63
+ if info != nil
71
64
  key = "#{info[:city]}, #{info[:state]}"
72
65
  end
73
- last_key = key
74
- last_zip = zip
75
66
 
76
67
  if key == nil
77
68
  next
@@ -98,13 +89,18 @@ module Zipcoder
98
89
  end
99
90
  end
100
91
  else
101
- cities = cities.keys.uniq.sort
92
+ sorted_cities = cities.keys.uniq.sort
102
93
  if kwargs[:names_only]
103
- zips = cities
94
+ zips = sorted_cities
104
95
  else
105
96
  zips = []
106
- cities.each do |key|
107
- zips << key.city_info(keys: kwargs[:keys])
97
+ sorted_cities.each do |city|
98
+ zip_codes = cities[city]
99
+ city_detail = city.city_info(keys: kwargs[:keys])
100
+ if kwargs[:keys] == nil or kwargs[:keys].include? :specified_zip
101
+ city_detail[:specified_zip] = zip_codes.combine_zips
102
+ end
103
+ zips << city_detail
108
104
  end
109
105
  end
110
106
  end
@@ -1,3 +1,3 @@
1
1
  module Zipcoder
2
- VERSION = "0.7.3"
2
+ VERSION = "0.7.4"
3
3
  end
@@ -157,7 +157,8 @@ describe Zipcoder do
157
157
  zip_info = zip_cities[0]
158
158
  expect(zip_info[:city]).to eq("Austin")
159
159
  expect(zip_info[:state]).to eq("TX")
160
- expect(zip_info[:zip].start_with?("78701")).to eq(true)
160
+ expect(zip_info[:zip]).to eq("78701-78705,78710,78712,78717,78719,78721-78739,78741-78742,78744-78754,78756-78759,78798-78799")
161
+ expect(zip_info[:specified_zip]).to eq("78748")
161
162
  expect(zip_info[:lat]).to eq(30.315)
162
163
  expect(zip_info[:long]).to eq(-97.71)
163
164
  end
@@ -169,7 +170,8 @@ describe Zipcoder do
169
170
  zip_info = zip_cities[0]
170
171
  expect(zip_info[:city]).to eq("Austin")
171
172
  expect(zip_info[:state]).to eq("TX")
172
- expect(zip_info[:zip].start_with?("78701")).to eq(true)
173
+ expect(zip_info[:zip]).to eq("78701-78705,78710,78712,78717,78719,78721-78739,78741-78742,78744-78754,78756-78759,78798-78799")
174
+ expect(zip_info[:specified_zip]).to eq("78702-78705,78710,78712,78717,78719,78721-78739,78741-78742,78744-78750")
173
175
  expect(zip_info[:lat]).to eq(30.315)
174
176
  expect(zip_info[:long]).to eq(-97.71)
175
177
 
@@ -177,6 +179,7 @@ describe Zipcoder do
177
179
  expect(zip_info[:city]).to eq("Cedar Park")
178
180
  expect(zip_info[:state]).to eq("TX")
179
181
  expect(zip_info[:zip]).to eq("78613")
182
+ expect(zip_info[:specified_zip]).to eq("78613")
180
183
  expect(zip_info[:lat]).to eq(30.51)
181
184
  expect(zip_info[:long]).to eq(-97.83)
182
185
  end
@@ -194,12 +197,12 @@ describe Zipcoder do
194
197
  context "#grouped" do
195
198
  it "returns the cities grouped" do
196
199
  zip_cities = "78751,13601,78613,78700-78750".zip_cities grouped: true
197
- expect(zip_cities.keys.sort).to eq(["13601", "78613", "78701-78751"])
200
+ expect(zip_cities.keys.sort).to eq(["13601", "78613", "78701-78705,78710,78712,78717,78719,78721-78739,78741-78742,78744-78751"])
198
201
 
199
- zip_info = zip_cities["78701-78751"]
202
+ zip_info = zip_cities["78701-78705,78710,78712,78717,78719,78721-78739,78741-78742,78744-78751"]
200
203
  expect(zip_info[:city]).to eq("Austin")
201
204
  expect(zip_info[:state]).to eq("TX")
202
- expect(zip_info[:zip].start_with?("78701")).to eq(true)
205
+ expect(zip_info[:zip]).to eq("78701-78705,78710,78712,78717,78719,78721-78739,78741-78742,78744-78754,78756-78759,78798-78799")
203
206
  expect(zip_info[:lat]).to eq(30.315)
204
207
  expect(zip_info[:long]).to eq(-97.71)
205
208
 
@@ -220,8 +223,13 @@ describe Zipcoder do
220
223
 
221
224
  it "returns just names of cities grouped" do
222
225
  zip_cities = "78751,13601,78613,78700-78750".zip_cities grouped: true, names_only: true
223
- expect(zip_cities.keys.sort).to eq(["13601", "78613", "78701-78751"])
224
- expect(zip_cities).to eq({"78701-78751" => "Austin, TX", "78613" => "Cedar Park, TX", "13601" => "Watertown, NY"})
226
+ expect(zip_cities.keys.sort).to eq(["13601", "78613", "78701-78705,78710,78712,78717,78719,78721-78739,78741-78742,78744-78751"])
227
+ expected = {
228
+ "78701-78705,78710,78712,78717,78719,78721-78739,78741-78742,78744-78751" => "Austin, TX",
229
+ "78613" => "Cedar Park, TX",
230
+ "13601" => "Watertown, NY"
231
+ }
232
+ expect(zip_cities).to eq(expected)
225
233
  end
226
234
  end
227
235
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zipcoder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Chapman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-29 00:00:00.000000000 Z
11
+ date: 2018-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler