uk_address_parser 0.1.0 → 0.2.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 +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
|