us_street 0.1.2 → 0.1.3

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