module ActiveRecord::Base
Public Class Methods
in_the_neighborhood(options = {})
click to toggle source
# File lib/neighborhood/in_the_neighborhood.rb, line 5 def in_the_neighborhood(options = {}) geocoded_by :address, :latitude => :lat, :longitude => :lng after_validation :geocode_if_address define_method "address" do [street_address, suite_apt, city, state, zip, country].compact.join(', ') end define_method "geocode_if_address" do if address.present? geo = Geocoder.search(address) if geo.size > 0 geo = geo.first.data # set basic geo attrs = { :lat => geo['geometry']['location']['lat'], :lng => geo['geometry']['location']['lng'], :full_address => geo['formatted_address'], } # set country if necessary unless options[:autoset_country] == false country = geo['address_components'] .select { |a| a['types'].include?('country') }.first['long_name'] attrs[:country] = country if country.present? end # save attributes update_columns(attrs) end end end end