address-matcher 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a5ad7065d7364b08e5790c9a167dfd7cf8ac4f2b
4
- data.tar.gz: d45880a4f355aa72a7e60f32eb751073fea926d5
3
+ metadata.gz: 51f302ec9ed3f0501f73acc45e7f2940ca2c34f3
4
+ data.tar.gz: 0a6e261082cb6c0c6dfb5fbc6e2ce3bafcbfa62f
5
5
  SHA512:
6
- metadata.gz: 4c22c19bbf32d8695713f82741f90c3d43b49c5f08324dc818da039e3fd5433997503cab82e1912f5f65c7683507ab05a63a9513d03409d0ddc39f766dda48cc
7
- data.tar.gz: ab353263bf9c8223dbcce9ca2c504b3b0cdff1571d2bfd2a3d2f95ee06033d741246131f1d8b8878787c060a60801ac177d2118164aaf365c911afb765ecf111
6
+ metadata.gz: a2661a44e8296c9dc2d985e4572594c224359b996ce52848388f7a8ddc5ffac6b5770bc9228b2e1940c839c064cd574a12e49174453caea1e1c26efe63f0065d
7
+ data.tar.gz: 2cce9e34c11d73fdfbd04ab8ed32ab79155d60b60e069babb38a822fca9a75c45780945d8f48c16d0901b4a1d02c04c32605eff37f2f08325ebad05a81fa0cf7
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- address-matcher (0.0.1)
4
+ address-matcher (0.1.1)
5
5
  geocoder (~> 1.2)
6
6
 
7
7
  GEM
@@ -10,32 +10,32 @@ GEM
10
10
  coderay (1.1.0)
11
11
  diff-lcs (1.2.5)
12
12
  docile (1.1.5)
13
- geocoder (1.2.8)
13
+ geocoder (1.2.9)
14
+ json (1.8.3)
14
15
  method_source (0.8.2)
15
- multi_json (1.11.0)
16
16
  pry (0.10.1)
17
17
  coderay (~> 1.1.0)
18
18
  method_source (~> 0.8.1)
19
19
  slop (~> 3.4)
20
20
  rake (10.4.2)
21
- rspec (3.2.0)
22
- rspec-core (~> 3.2.0)
23
- rspec-expectations (~> 3.2.0)
24
- rspec-mocks (~> 3.2.0)
25
- rspec-core (3.2.2)
26
- rspec-support (~> 3.2.0)
27
- rspec-expectations (3.2.0)
21
+ rspec (3.3.0)
22
+ rspec-core (~> 3.3.0)
23
+ rspec-expectations (~> 3.3.0)
24
+ rspec-mocks (~> 3.3.0)
25
+ rspec-core (3.3.1)
26
+ rspec-support (~> 3.3.0)
27
+ rspec-expectations (3.3.0)
28
28
  diff-lcs (>= 1.2.0, < 2.0)
29
- rspec-support (~> 3.2.0)
30
- rspec-mocks (3.2.1)
29
+ rspec-support (~> 3.3.0)
30
+ rspec-mocks (3.3.1)
31
31
  diff-lcs (>= 1.2.0, < 2.0)
32
- rspec-support (~> 3.2.0)
33
- rspec-support (3.2.2)
34
- simplecov (0.9.2)
32
+ rspec-support (~> 3.3.0)
33
+ rspec-support (3.3.0)
34
+ simplecov (0.10.0)
35
35
  docile (~> 1.1.0)
36
- multi_json (~> 1.0)
37
- simplecov-html (~> 0.9.0)
38
- simplecov-html (0.9.0)
36
+ json (~> 1.8)
37
+ simplecov-html (~> 0.10.0)
38
+ simplecov-html (0.10.0)
39
39
  slop (3.6.0)
40
40
 
41
41
  PLATFORMS
@@ -45,5 +45,5 @@ DEPENDENCIES
45
45
  address-matcher!
46
46
  pry (~> 0.10)
47
47
  rake (~> 10.4)
48
- rspec (~> 3.2)
49
- simplecov (~> 0.9)
48
+ rspec (~> 3.3)
49
+ simplecov (~> 0.10)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.2.0
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'address-matcher'
3
- s.version = '0.1.1'
3
+ s.version = '0.2.0'
4
4
  s.date = '2015-04-07'
5
5
  s.summary = "Matches addresses by geocoding"
6
6
  s.description = "Uses geocoding to perform fuzzy match on address strings"
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
18
18
  s.add_dependency('geocoder', '~> 1.2')
19
19
 
20
20
  s.add_development_dependency('rake', '~> 10.4')
21
- s.add_development_dependency('rspec', '~> 3.2')
22
- s.add_development_dependency('simplecov', '~> 0.9')
21
+ s.add_development_dependency('rspec', '~> 3.3')
22
+ s.add_development_dependency('simplecov', '~> 0.10')
23
23
  s.add_development_dependency('pry', '~> 0.10')
24
24
  end
@@ -28,8 +28,14 @@ class AddressLibrary
28
28
  def match(address_string)
29
29
  coords = geocode(address_string)
30
30
  if coords
31
- group = store[latitude_index(coords)][longitude_index(coords)]
32
- group.match(coords)
31
+ address_for_coords(coords)
32
+ end
33
+ end
34
+
35
+ def address_for_coords(lat_long)
36
+ unless lat_long.to_a.empty?
37
+ group = store[latitude_index(lat_long)][longitude_index(lat_long)]
38
+ group.match(lat_long)
33
39
  end
34
40
  end
35
41
 
@@ -142,5 +142,39 @@ describe AddressLibrary do
142
142
 
143
143
  expect(match).to be_nil
144
144
  end
145
+
146
+ describe '#address_for_coords' do
147
+ it 'returns the address that is nearest the given coordinates' do
148
+ lib = AddressLibrary.new.add_address(met_opera_short.address)
149
+
150
+ address = lib.address_for_coords(met_opera_long.coords)
151
+
152
+ expect(address).to eq met_opera_short.address
153
+ end
154
+
155
+ it 'returns nil if there are no addresses near enough to match' do
156
+ lib = AddressLibrary.new.add_address(met_opera_short.address)
157
+
158
+ address = lib.address_for_coords(boco.coords)
159
+
160
+ expect(address).to be_nil
161
+ end
162
+
163
+ it 'returns nil if the coords are nil' do
164
+ lib = AddressLibrary.new.add_address(met_opera_short.address)
165
+
166
+ address = lib.address_for_coords(nil)
167
+
168
+ expect(address).to be_nil
169
+ end
170
+
171
+ it 'returns nil if the coords are empty' do
172
+ lib = AddressLibrary.new.add_address(met_opera_short.address)
173
+
174
+ address = lib.address_for_coords([])
175
+
176
+ expect(address).to be_nil
177
+ end
178
+ end
145
179
  end
146
180
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: address-matcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stuart Terrett
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.2'
47
+ version: '3.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.2'
54
+ version: '3.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: simplecov
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.9'
61
+ version: '0.10'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.9'
68
+ version: '0.10'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
71
  requirement: !ruby/object:Gem::Requirement