StreetAddress 1.0.6 → 2.0.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 +5 -5
- data/CHANGELOG.md +48 -0
- data/LICENCE +21 -0
- data/README.md +87 -42
- data/lib/street_address.rb +710 -695
- metadata +87 -19
- data/.gitignore +0 -6
- data/Gemfile +0 -7
- data/Rakefile +0 -8
- data/street_address.gemspec +0 -21
- data/test/test_street_address.rb +0 -203
metadata
CHANGED
|
@@ -1,17 +1,87 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: StreetAddress
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Derrek Long
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
-
dependencies:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: bundler
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '2.0'
|
|
19
|
+
type: :development
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '2.0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: rake
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '13.0'
|
|
33
|
+
type: :development
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '13.0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: minitest
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - "~>"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '5.0'
|
|
47
|
+
type: :development
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - "~>"
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '5.0'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: irb
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - "~>"
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '1.14'
|
|
61
|
+
type: :development
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - "~>"
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '1.14'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: rdoc
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '6.0'
|
|
75
|
+
type: :development
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '6.0'
|
|
13
82
|
description: |
|
|
14
|
-
StreetAddress::US allows you to send any string to parse and if the string
|
|
83
|
+
StreetAddress::US allows you to send any string to parse and if the string
|
|
84
|
+
is a US address returns an object of the address broken into its constituent parts.
|
|
15
85
|
|
|
16
86
|
A port of Geo::StreetAddress::US by Schuyler D. Erle and Tim Bunce.
|
|
17
87
|
email: derreklong@gmail.com
|
|
@@ -19,17 +89,17 @@ executables: []
|
|
|
19
89
|
extensions: []
|
|
20
90
|
extra_rdoc_files: []
|
|
21
91
|
files:
|
|
22
|
-
-
|
|
23
|
-
-
|
|
92
|
+
- CHANGELOG.md
|
|
93
|
+
- LICENCE
|
|
24
94
|
- README.md
|
|
25
|
-
- Rakefile
|
|
26
95
|
- lib/street_address.rb
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
96
|
+
homepage: https://github.com/street-address-rb/street-address
|
|
97
|
+
licenses:
|
|
98
|
+
- MIT
|
|
99
|
+
metadata:
|
|
100
|
+
source_code_uri: https://github.com/street-address-rb/street-address
|
|
101
|
+
changelog_uri: https://github.com/street-address-rb/street-address/blob/master/CHANGELOG.md
|
|
102
|
+
bug_tracker_uri: https://github.com/street-address-rb/street-address/issues
|
|
33
103
|
rdoc_options: []
|
|
34
104
|
require_paths:
|
|
35
105
|
- lib
|
|
@@ -37,16 +107,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
37
107
|
requirements:
|
|
38
108
|
- - ">="
|
|
39
109
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
110
|
+
version: '3.3'
|
|
41
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
42
112
|
requirements:
|
|
43
113
|
- - ">="
|
|
44
114
|
- !ruby/object:Gem::Version
|
|
45
115
|
version: '0'
|
|
46
116
|
requirements: []
|
|
47
|
-
|
|
48
|
-
rubygems_version: 2.2.2
|
|
49
|
-
signing_key:
|
|
117
|
+
rubygems_version: 3.6.7
|
|
50
118
|
specification_version: 4
|
|
51
|
-
summary: Parse
|
|
119
|
+
summary: Parse US street addresses into constituent parts.
|
|
52
120
|
test_files: []
|
data/.gitignore
DELETED
data/Gemfile
DELETED
data/Rakefile
DELETED
data/street_address.gemspec
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
$LOAD_PATH.unshift 'lib'
|
|
2
|
-
|
|
3
|
-
require 'street_address'
|
|
4
|
-
|
|
5
|
-
Gem::Specification.new do |s|
|
|
6
|
-
s.name = "StreetAddress"
|
|
7
|
-
s.version = StreetAddress::US::VERSION
|
|
8
|
-
s.date = Time.now.strftime('%Y-%m-%d')
|
|
9
|
-
s.summary = "Parse Addresses into substituent parts. This gem includes US only."
|
|
10
|
-
s.authors = ["Derrek Long"]
|
|
11
|
-
s.require_paths = ["lib"]
|
|
12
|
-
s.email = "derreklong@gmail.com"
|
|
13
|
-
s.files = `git ls-files`.split("\n")
|
|
14
|
-
s.test_files = `git ls-files -- {test}/*`.split("\n")
|
|
15
|
-
s.homepage = "https://github.com/derrek/street-address"
|
|
16
|
-
s.description = <<desc
|
|
17
|
-
StreetAddress::US allows you to send any string to parse and if the string is a US address returns an object of the address broken into it's substituent parts.
|
|
18
|
-
|
|
19
|
-
A port of Geo::StreetAddress::US by Schuyler D. Erle and Tim Bunce.
|
|
20
|
-
desc
|
|
21
|
-
end
|
data/test/test_street_address.rb
DELETED
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
require 'test/unit'
|
|
2
|
-
require 'street_address'
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class StreetAddressUsTest < Test::Unit::TestCase
|
|
6
|
-
def setup
|
|
7
|
-
@addr1 = "2730 S Veitch St Apt 207, Arlington, VA 22206"
|
|
8
|
-
@addr2 = "44 Canal Center Plaza Suite 500, Alexandria, VA 22314"
|
|
9
|
-
@addr3 = "1600 Pennsylvania Ave Washington DC"
|
|
10
|
-
@addr4 = "1005 Gravenstein Hwy N, Sebastopol CA 95472"
|
|
11
|
-
@addr5 = "PO BOX 450, Chicago IL 60657"
|
|
12
|
-
@addr6 = "2730 S Veitch St #207, Arlington, VA 22206"
|
|
13
|
-
@addr7 = "#42 233 S Wacker Dr 60606"
|
|
14
|
-
@addr8 = "Apt. 42, 233 S Wacker Dr 60606"
|
|
15
|
-
@addr9 = "2730 S Veitch St #207"
|
|
16
|
-
|
|
17
|
-
@int1 = "Hollywood & Vine, Los Angeles, CA"
|
|
18
|
-
@int2 = "Hollywood Blvd and Vine St, Los Angeles, CA"
|
|
19
|
-
@int3 = "Mission Street at Valencia Street, San Francisco, CA"
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def test_zip_plus_4_with_dash
|
|
23
|
-
addr = StreetAddress::US.parse("2730 S Veitch St, Arlington, VA 22206-3333")
|
|
24
|
-
assert_equal "3333", addr.postal_code_ext
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def test_zip_plus_4_without_dash
|
|
28
|
-
addr = StreetAddress::US.parse("2730 S Veitch St, Arlington, VA 222064444")
|
|
29
|
-
assert_equal "4444", addr.postal_code_ext
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def test_informal_parse_normal_address
|
|
33
|
-
a = StreetAddress::US.parse("2730 S Veitch St, Arlington, VA 222064444", :informal => true)
|
|
34
|
-
assert_equal "2730", a.number
|
|
35
|
-
assert_equal "S", a.prefix
|
|
36
|
-
assert_equal "Veitch", a.street
|
|
37
|
-
assert_equal "St", a.street_type
|
|
38
|
-
assert_equal "Arlington", a.city
|
|
39
|
-
assert_equal "VA", a.state
|
|
40
|
-
assert_equal "22206", a.postal_code
|
|
41
|
-
assert_equal "4444", a.postal_code_ext
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def test_informal_parse_informal_address
|
|
45
|
-
a = StreetAddress::US.parse("2730 S Veitch St", :informal => true)
|
|
46
|
-
assert_equal "2730", a.number
|
|
47
|
-
assert_equal "S", a.prefix
|
|
48
|
-
assert_equal "Veitch", a.street
|
|
49
|
-
assert_equal "St", a.street_type
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def test_informal_parse_informal_address_trailing_words
|
|
53
|
-
a = StreetAddress::US.parse("2730 S Veitch St in the south of arlington", :informal => true)
|
|
54
|
-
assert_equal "2730", a.number
|
|
55
|
-
assert_equal "S", a.prefix
|
|
56
|
-
assert_equal "Veitch", a.street
|
|
57
|
-
assert_equal "St", a.street_type
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def test_parse
|
|
61
|
-
assert_equal StreetAddress::US.parse("&"), nil
|
|
62
|
-
assert_equal StreetAddress::US.parse(" and "), nil
|
|
63
|
-
|
|
64
|
-
addr = StreetAddress::US.parse(@addr1)
|
|
65
|
-
assert_equal addr.number, "2730"
|
|
66
|
-
assert_equal addr.postal_code, "22206"
|
|
67
|
-
assert_equal addr.prefix, "S"
|
|
68
|
-
assert_equal addr.state, "VA"
|
|
69
|
-
assert_equal addr.street, "Veitch"
|
|
70
|
-
assert_equal addr.street_type, "St"
|
|
71
|
-
assert_equal addr.unit, "207"
|
|
72
|
-
assert_equal addr.unit_prefix, "Apt"
|
|
73
|
-
assert_equal addr.city, "Arlington"
|
|
74
|
-
assert_equal addr.prefix2, nil
|
|
75
|
-
assert_equal addr.postal_code_ext, nil
|
|
76
|
-
|
|
77
|
-
addr = StreetAddress::US.parse(@addr2)
|
|
78
|
-
assert_equal addr.number, "44"
|
|
79
|
-
assert_equal addr.postal_code, "22314"
|
|
80
|
-
assert_equal addr.prefix, nil
|
|
81
|
-
assert_equal addr.state, "VA"
|
|
82
|
-
assert_equal addr.street, "Canal Center"
|
|
83
|
-
assert_equal addr.street_type, "Plz"
|
|
84
|
-
assert_equal addr.unit, "500"
|
|
85
|
-
assert_equal addr.unit_prefix, "Suite"
|
|
86
|
-
assert_equal addr.city, "Alexandria"
|
|
87
|
-
assert_equal addr.street2, nil
|
|
88
|
-
|
|
89
|
-
addr = StreetAddress::US.parse(@addr3)
|
|
90
|
-
assert_equal addr.number, "1600"
|
|
91
|
-
assert_equal addr.postal_code, nil
|
|
92
|
-
assert_equal addr.prefix, nil
|
|
93
|
-
assert_equal addr.state, "DC"
|
|
94
|
-
assert_equal addr.street, "Pennsylvania"
|
|
95
|
-
assert_equal addr.street_type, "Ave"
|
|
96
|
-
assert_equal addr.unit, nil
|
|
97
|
-
assert_equal addr.unit_prefix, nil
|
|
98
|
-
assert_equal addr.city, "Washington"
|
|
99
|
-
assert_equal addr.street2, nil
|
|
100
|
-
|
|
101
|
-
addr = StreetAddress::US.parse(@addr4)
|
|
102
|
-
assert_equal addr.number, "1005"
|
|
103
|
-
assert_equal addr.postal_code, "95472"
|
|
104
|
-
assert_equal addr.prefix, nil
|
|
105
|
-
assert_equal addr.state, "CA"
|
|
106
|
-
assert_equal addr.street, "Gravenstein"
|
|
107
|
-
assert_equal addr.street_type, "Hwy"
|
|
108
|
-
assert_equal addr.unit, nil
|
|
109
|
-
assert_equal addr.unit_prefix, nil
|
|
110
|
-
assert_equal addr.city, "Sebastopol"
|
|
111
|
-
assert_equal addr.street2, nil
|
|
112
|
-
assert_equal addr.suffix, "N"
|
|
113
|
-
|
|
114
|
-
addr = StreetAddress::US.parse(@addr5)
|
|
115
|
-
assert_equal addr, nil
|
|
116
|
-
|
|
117
|
-
addr = StreetAddress::US.parse(@addr6)
|
|
118
|
-
assert_equal("207", addr.unit)
|
|
119
|
-
|
|
120
|
-
addr = StreetAddress::US.parse(@addr7, :informal => true)
|
|
121
|
-
assert_equal addr.number, "233"
|
|
122
|
-
assert_equal addr.postal_code, "60606"
|
|
123
|
-
assert_equal addr.prefix, "S"
|
|
124
|
-
assert_equal addr.state, nil
|
|
125
|
-
assert_equal addr.street, "Wacker"
|
|
126
|
-
assert_equal addr.street_type, "Dr"
|
|
127
|
-
assert_equal addr.unit, "42"
|
|
128
|
-
assert_equal addr.unit_prefix, "#"
|
|
129
|
-
assert_equal addr.city, nil
|
|
130
|
-
assert_equal addr.street2, nil
|
|
131
|
-
assert_equal addr.suffix, nil
|
|
132
|
-
|
|
133
|
-
addr = StreetAddress::US.parse(@addr8, :informal => true)
|
|
134
|
-
assert_equal addr.number, "233"
|
|
135
|
-
assert_equal addr.postal_code, "60606"
|
|
136
|
-
assert_equal addr.prefix, "S"
|
|
137
|
-
assert_equal addr.state, nil
|
|
138
|
-
assert_equal addr.street, "Wacker"
|
|
139
|
-
assert_equal addr.street_type, "Dr"
|
|
140
|
-
assert_equal addr.unit, "42"
|
|
141
|
-
assert_equal addr.unit_prefix, "Apt"
|
|
142
|
-
assert_equal addr.city, nil
|
|
143
|
-
assert_equal addr.street2, nil
|
|
144
|
-
assert_equal addr.suffix, nil
|
|
145
|
-
|
|
146
|
-
addr = StreetAddress::US.parse(@addr9, :informal => true)
|
|
147
|
-
assert_equal("207", addr.unit)
|
|
148
|
-
|
|
149
|
-
addr = StreetAddress::US.parse(@int1)
|
|
150
|
-
assert_equal addr.city, "Los Angeles"
|
|
151
|
-
assert_equal addr.state, "CA"
|
|
152
|
-
assert_equal addr.street, "Hollywood"
|
|
153
|
-
assert_equal addr.street2, "Vine"
|
|
154
|
-
assert_equal addr.number, nil
|
|
155
|
-
assert_equal addr.postal_code, nil
|
|
156
|
-
assert_equal addr.intersection?, true
|
|
157
|
-
|
|
158
|
-
addr = StreetAddress::US.parse(@int2)
|
|
159
|
-
assert_equal addr.city, "Los Angeles"
|
|
160
|
-
assert_equal addr.state, "CA"
|
|
161
|
-
assert_equal addr.street, "Hollywood"
|
|
162
|
-
assert_equal addr.street2, "Vine"
|
|
163
|
-
assert_equal addr.number, nil
|
|
164
|
-
assert_equal addr.postal_code, nil
|
|
165
|
-
assert_equal addr.intersection?, true
|
|
166
|
-
assert_equal addr.street_type, "Blvd"
|
|
167
|
-
assert_equal addr.street_type2, "St"
|
|
168
|
-
|
|
169
|
-
addr = StreetAddress::US.parse(@int3)
|
|
170
|
-
assert_equal addr.city, "San Francisco"
|
|
171
|
-
assert_equal addr.state, "CA"
|
|
172
|
-
assert_equal addr.street, "Mission"
|
|
173
|
-
assert_equal addr.street2, "Valencia"
|
|
174
|
-
assert_equal addr.number, nil
|
|
175
|
-
assert_equal addr.postal_code, nil
|
|
176
|
-
assert_equal addr.intersection?, true
|
|
177
|
-
assert_equal addr.street_type, "St"
|
|
178
|
-
assert_equal addr.street_type2, "St"
|
|
179
|
-
|
|
180
|
-
parseable = [
|
|
181
|
-
"1600 Pennsylvania Ave Washington DC 20006",
|
|
182
|
-
"1600 Pennsylvania Ave #400, Washington, DC, 20006",
|
|
183
|
-
"1600 Pennsylvania Ave Washington, DC",
|
|
184
|
-
"1600 Pennsylvania Ave #400 Washington DC",
|
|
185
|
-
"1600 Pennsylvania Ave, 20006",
|
|
186
|
-
"1600 Pennsylvania Ave #400, 20006",
|
|
187
|
-
"1600 Pennsylvania Ave 20006",
|
|
188
|
-
"1600 Pennsylvania Ave #400 20006",
|
|
189
|
-
"Hollywood & Vine, Los Angeles, CA",
|
|
190
|
-
"Hollywood Blvd and Vine St, Los Angeles, CA",
|
|
191
|
-
"Mission Street at Valencia Street, San Francisco, CA",
|
|
192
|
-
"Hollywood & Vine, Los Angeles, CA, 90028",
|
|
193
|
-
"Hollywood Blvd and Vine St, Los Angeles, CA, 90028",
|
|
194
|
-
"Mission Street at Valencia Street, San Francisco, CA, 90028"
|
|
195
|
-
]
|
|
196
|
-
|
|
197
|
-
parseable.each do |location|
|
|
198
|
-
assert_not_nil(StreetAddress::US.parse(location), location + " was not parseable")
|
|
199
|
-
end
|
|
200
|
-
|
|
201
|
-
end
|
|
202
|
-
|
|
203
|
-
end
|