zipcoder 0.7.3 → 0.7.4

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 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