class AddressGroup
Attributes
store[R]
Public Class Methods
new()
click to toggle source
# File lib/address_matcher/address_group.rb, line 2 def initialize @store = {} end
Public Instance Methods
[](lat_long)
click to toggle source
# File lib/address_matcher/address_group.rb, line 10 def [](lat_long) store[lat_long] end
[]=(lat_long, address)
click to toggle source
# File lib/address_matcher/address_group.rb, line 6 def []=(lat_long, address) store[lat_long] = address end
match(lat_long)
click to toggle source
# File lib/address_matcher/address_group.rb, line 14 def match(lat_long) if exact = store[lat_long] exact else closest_match(lat_long) end end
Private Instance Methods
closest_match(lat_long)
click to toggle source
# File lib/address_matcher/address_group.rb, line 25 def closest_match(lat_long) closest = store.keys.min do |a, b| distance_between(lat_long, a) <=> distance_between(lat_long, b) end store[closest] end
distance_between(p1, p2)
click to toggle source
# File lib/address_matcher/address_group.rb, line 33 def distance_between(p1, p2) Geocoder::Calculations.distance_between(p1, p2) end