Indirizzo 0.1.5 → 0.1.7
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.
- data/Indirizzo.gemspec +2 -2
- data/lib/indirizzo/address.rb +5 -8
- data/test/test_address.rb +10 -2
- metadata +8 -8
data/Indirizzo.gemspec
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = %q{Indirizzo}
|
3
|
-
s.version = "0.1.
|
3
|
+
s.version = "0.1.7"
|
4
4
|
|
5
5
|
s.authors = [%q{Dave Worth}]
|
6
|
-
s.date = %q{2012-01-
|
6
|
+
s.date = %q{2012-01-29}
|
7
7
|
s.description = %q{Indirizzo is simply an extraction of the US Street Address parsing code from Geocoder::US}
|
8
8
|
s.email = %q{dave@highgroove.com}
|
9
9
|
|
data/lib/indirizzo/address.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'indirizzo/constants'
|
2
|
-
require 'awesome_print'
|
3
2
|
|
4
3
|
module Indirizzo
|
5
4
|
# Defines the matching of parsed address tokens.
|
@@ -88,10 +87,10 @@ module Indirizzo
|
|
88
87
|
# full_state = @state.strip # special case: New York
|
89
88
|
@state = State[@state]
|
90
89
|
end
|
91
|
-
elsif !text[:country].nil?
|
92
|
-
@state = text[:country]
|
93
90
|
elsif !text[:state].nil?
|
94
91
|
@state = text[:state]
|
92
|
+
elsif !text[:country].nil?
|
93
|
+
@state = text[:country]
|
95
94
|
end
|
96
95
|
|
97
96
|
@zip = text[:postal_code]
|
@@ -263,17 +262,15 @@ module Indirizzo
|
|
263
262
|
|
264
263
|
def city_parts
|
265
264
|
strings = []
|
266
|
-
@city.map
|
265
|
+
@city.map do |string|
|
267
266
|
tokens = string.split(" ")
|
268
267
|
strings |= (0...tokens.length).to_a.reverse.map {|i|
|
269
268
|
(i...tokens.length).map {|j| tokens[i..j].join(" ")}}.flatten
|
270
|
-
|
269
|
+
end
|
271
270
|
# Don't return strings that consist solely of abbreviations.
|
272
271
|
# NOTE: Is this a micro-optimization that has edge cases that will break?
|
273
272
|
# Answer: Yes, it breaks on "Prairie"
|
274
|
-
|
275
|
-
strings = good_strings if !good_strings.empty?
|
276
|
-
strings.uniq
|
273
|
+
strings.reject { |s| Std_Abbr.key?(s) }.uniq
|
277
274
|
end
|
278
275
|
|
279
276
|
def city= (strings)
|
data/test/test_address.rb
CHANGED
@@ -42,17 +42,24 @@ class TestAddress < Test::Unit::TestCase
|
|
42
42
|
assert addr_po.po_box?
|
43
43
|
end
|
44
44
|
|
45
|
+
def test_intersection
|
46
|
+
addr_intersection = Address.new "Means St. at Optimism Way"
|
47
|
+
assert addr_intersection.intersection?
|
48
|
+
end
|
49
|
+
|
45
50
|
def test_skip_parse
|
46
51
|
addresses = [
|
47
52
|
{:street => "1233 Main St", :city => "Springfield", :region => "VA", :postal_code => "12345", :final_number => "1233", :parsed_street => "main st"},
|
48
53
|
{:street => "somewhere Ln", :city => "Somewhere", :region => "WI", :postal_code => "22222", :number => "402", :parsed_street => "somewhere ln", :final_number => "402"},
|
54
|
+
{:street => "somewhere Ln", :city => "Somewhere", :state => "WI", :postal_code => "22222", :number => "402", :parsed_street => "somewhere ln", :final_number => "402"},
|
49
55
|
]
|
50
56
|
for preparsed_address in addresses
|
51
57
|
address_for_geocode = Address.new preparsed_address
|
52
58
|
assert_equal preparsed_address[:parsed_street],address_for_geocode.street[0]
|
53
59
|
assert_equal preparsed_address[:final_number],address_for_geocode.number
|
54
60
|
assert_equal preparsed_address[:city],address_for_geocode.city[0]
|
55
|
-
assert_equal preparsed_address[:region],address_for_geocode.state
|
61
|
+
assert_equal preparsed_address[:region],address_for_geocode.state if preparsed_address[:region]
|
62
|
+
assert_equal preparsed_address[:state],address_for_geocode.state if preparsed_address[:state]
|
56
63
|
assert_equal preparsed_address[:postal_code],address_for_geocode.zip
|
57
64
|
end
|
58
65
|
end
|
@@ -128,7 +135,8 @@ class TestAddress < Test::Unit::TestCase
|
|
128
135
|
[ "19131", "", "", "19131" ],
|
129
136
|
[ "19131-9999", "", "", "19131" ],
|
130
137
|
].each do |fixture|
|
131
|
-
|
138
|
+
fixture_name = fixture[0].gsub(/(?:\s+|[,])/,'_')
|
139
|
+
define_method "test_city_parse_#{fixture_name}" do
|
132
140
|
check_city(fixture)
|
133
141
|
end
|
134
142
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Indirizzo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-29 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &70262923397040 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70262923397040
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: cover_me
|
27
|
-
requirement: &
|
27
|
+
requirement: &70262923396600 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70262923396600
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: awesome_print
|
38
|
-
requirement: &
|
38
|
+
requirement: &70262923396180 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70262923396180
|
47
47
|
description: Indirizzo is simply an extraction of the US Street Address parsing code
|
48
48
|
from Geocoder::US
|
49
49
|
email: dave@highgroove.com
|