uk_address_parser 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +1 -1
- data/lib/uk_address_parser/address_parser.rb +16 -7
- data/lib/uk_address_parser/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60502d3b6bc51be50f55316c0c3287d1539deb90
|
4
|
+
data.tar.gz: 24ca711046631664a9f591b7280998cdbb6909ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66f53dbfeea1b2df8b1e9a0e22656689be4c4798284180d6cd417df7cec915b2b7a085bd81aaba497634f1bfaf1f53af8720673df033e5b25d016d70ccf94ec9
|
7
|
+
data.tar.gz: b9f5c034d08addd1352426e13d917c9f15b7d9f034e7df5d1a8456568ccc856ba6d3c561c9f4312e9cab6df5829e1ef3151d98ea42315a929bbe73a38e0ad395
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
module UkAddressParser
|
2
2
|
class AddressParser
|
3
3
|
|
4
|
-
attr_accessor :address, :flat, :house_number, :
|
4
|
+
attr_accessor :address, :flat, :house_number, :building_name, :street, :street2, :street3, :town, :county
|
5
5
|
def initialize(address)
|
6
6
|
self.address = address
|
7
7
|
end
|
8
8
|
|
9
9
|
def parts
|
10
|
-
|
10
|
+
comma_or_commas_with_empty_spaces = /\s?\,[\s\,]*/
|
11
|
+
@parts ||= address.split(comma_or_commas_with_empty_spaces).collect(&:strip)
|
11
12
|
end
|
12
13
|
|
13
14
|
def build
|
@@ -43,8 +44,8 @@ module UkAddressParser
|
|
43
44
|
@street = $2
|
44
45
|
parts.shift
|
45
46
|
when known_street_ending_no_number
|
46
|
-
if !
|
47
|
-
@
|
47
|
+
if !building_name && looks_like_a_street?(parts[1])
|
48
|
+
@building_name = parts.shift
|
48
49
|
building_and_street
|
49
50
|
else
|
50
51
|
@street = parts.shift
|
@@ -56,9 +57,13 @@ module UkAddressParser
|
|
56
57
|
@house_number = $1
|
57
58
|
@street = $2
|
58
59
|
parts.shift
|
60
|
+
if !building_name && looks_like_a_street?(parts[0])
|
61
|
+
@building_name = @street
|
62
|
+
@street = parts.shift
|
63
|
+
end
|
59
64
|
else
|
60
|
-
unless
|
61
|
-
@
|
65
|
+
unless building_name
|
66
|
+
@building_name = parts.shift
|
62
67
|
building_and_street
|
63
68
|
end
|
64
69
|
end
|
@@ -80,6 +85,10 @@ module UkAddressParser
|
|
80
85
|
/^(\d+\w?)\s([\w\s\-\.]+)$/i
|
81
86
|
end
|
82
87
|
|
88
|
+
def looks_like_a_street?(part)
|
89
|
+
(number_and_any_street_name =~ part || known_street_ending_no_number =~ part)
|
90
|
+
end
|
91
|
+
|
83
92
|
def build_town
|
84
93
|
@town = parts.pop unless parts.empty?
|
85
94
|
end
|
@@ -97,7 +106,7 @@ module UkAddressParser
|
|
97
106
|
{
|
98
107
|
flat: flat,
|
99
108
|
house_number: house_number,
|
100
|
-
|
109
|
+
building_name: building_name,
|
101
110
|
street: street,
|
102
111
|
street2: street2,
|
103
112
|
street3: street3,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uk_address_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob Nichols
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|