us_street 0.1.2 → 0.1.3

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: 7c0f7b5ead83b5bec497036178f541dec7f9b23f
4
- data.tar.gz: d6545e0c76c6f755d9d67d66952043ebfd2e4eb2
3
+ metadata.gz: 2ef48a37d102c911b24152c2f77485b964c6e874
4
+ data.tar.gz: 5cfa71014710d2f69cb9f39e737e45e88011bd18
5
5
  SHA512:
6
- metadata.gz: 1ab0900411dcbd2e5baf10b7bea2c6cc65989236ef9864d4991fbbe3c250377e273edd82bad80c07b31b63417eb4a50b4eef9b6596141af1f276ff3ac91c7f2d
7
- data.tar.gz: 589785122c7482f6f3f06516b326ee3e52bdd9c042e57b81c28dd289bccc2808afb0cdee289811c66aef2dd4f040604860454736e734f54ece930a86b2b2fcf9
6
+ metadata.gz: a6afeaec5a91f008c6789921b488f35204db9177dadeb8e42c6e3718ce14572f30c57303bdb3f76487e8f1a337372af58fe8ad0679e45937150eee1f2d991854
7
+ data.tar.gz: 5b3d4e54f5c146fba3d7cbe99eb67c74fe2f0b72bc53f4f97635b1198276cdddd62db6410f3db14fca86ed13e56cd4058dc3827123e25e104d55a1c6a5d289a6
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # UsStreet
2
2
 
3
- Parses and normalizes the street part of an address for US streets into it's parts.
3
+ Parses and normalizes the street part of an address for US streets into its parts.
4
4
 
5
5
 
6
6
  ## Installation
@@ -1,3 +1,3 @@
1
1
  class UsStreet
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
data/lib/us_street.rb CHANGED
@@ -36,7 +36,7 @@ class UsStreet
36
36
  def self.components; COMPONENTS; end
37
37
 
38
38
  def self.clean(str)
39
- str.to_s.gsub(/([\.,:;]|\(.*?\))/, '').gsub(/.#\d+$/, '').gsub(/\s+/, ' ').strip.downcase.presence
39
+ str.to_s.gsub(/([\.,:;]|\(.*?\))/, '').gsub(/.#[a-zA-Z0-9]+$/, '').gsub(/\s+/, ' ').strip.downcase.presence
40
40
  end
41
41
 
42
42
  def self.clean_hash(hash)
@@ -82,8 +82,8 @@ class UsStreet
82
82
  sidx, eidx = 0, parts.length - 1
83
83
  unit_number = dir_suffix = dir_prefix = street_suffix = street_number = road_number = nil
84
84
 
85
- # We could have a unit number last. Format '#\d+' but it's removed by the cleaners so match the original
86
- if match = original_full_street.match(/#(\d+)$/)
85
+ # We could have a unit number last. Format '#[a-zA-Z0-9]+' but it's removed by the cleaners so match the original
86
+ if match = original_full_street.match(/#([a-zA-Z0-9]+)$/)
87
87
  unit_number = match[1]
88
88
  end
89
89
 
@@ -125,9 +125,9 @@ class UsStreet
125
125
  # Time to build up the output, prefer what was passed in
126
126
  # Note: We needed to decompose the street because the street may have had the components put into it
127
127
  # by some unsavoury operators :'(
128
- overrides_unit = overrides[:unit].to_s.try(:match, /(\d+)/).try(:captures).try(:first)
128
+ overrides_unit = overrides[:unit].to_s.try(:match, /([a-zA-Z0-9]+)/).try(:captures).try(:first)
129
129
  out = {
130
- unit: overrides_unit || unit_number,
130
+ unit: (overrides_unit || unit_number).try(:upcase),
131
131
  dir_prefix: direction_mapping(overrides[:dir_prefix]).presence || dir_prefix,
132
132
  street_name: overrides[:street_name].presence || parts[sidx..eidx].join(' '),
133
133
  street_suffix: road_mapping(overrides[:street_suffix]).presence || street_suffix,
@@ -167,6 +167,20 @@ describe UsStreet do
167
167
  expect(us_street.display).to eq('123 123rd St #15')
168
168
  end
169
169
 
170
+ it 'handles alpha unit numbers' do
171
+ us_street = UsStreet.parse('123 123rd st #C')
172
+ expect(us_street.unit).to eq('C')
173
+ expect(us_street.full_street).to eq('123 123rd St')
174
+ expect(us_street.display).to eq('123 123rd St #C')
175
+ end
176
+
177
+ it 'handles alpha unit numbers' do
178
+ us_street = UsStreet.parse('123 123rd st', unit: 'C')
179
+ expect(us_street.unit).to eq('C')
180
+ expect(us_street.full_street).to eq('123 123rd St')
181
+ expect(us_street.display).to eq('123 123rd St #C')
182
+ end
183
+
170
184
  it 'handles 123rd st without ordinals or street number' do
171
185
  us_street = UsStreet.parse('123 st')
172
186
  expect(us_street.street_number).to eq(nil)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: us_street
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Neighman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-15 00:00:00.000000000 Z
11
+ date: 2016-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport