module Geocoder::ModelMethods

def geocoded_by(address_attr, options = {}, &block)


Set attribute names and include the Geocoder module.
#
def geocoded_by(address_attr, options = {}, &block)
  geocoder_init(
    :geocode       => true,
    :user_address  => address_attr,
    :latitude      => options[:latitude]  || :latitude,
    :longitude     => options[:longitude] || :longitude,
    :geocode_block => block
  )
end

def geocoder_init(options)

def geocoder_init(options)
  unless geocoder_initialized?
    @geocoder_options = {}
    require 'geocoder/orms/active_record'
    include Geocoder::Orm::ActiveRecord
  end
  @geocoder_options.merge! options
end

def geocoder_initialized?

def geocoder_initialized?
  begin
    included_modules.include? Geocoder::Orm::ActiveRecord
  rescue NameError
    false
  end
end

def geocoder_options

def geocoder_options
  @geocoder_options
end

def reverse_geocoded_by(latitude_attr, longitude_attr, options = {}, &block)


Set attribute names and include the Geocoder module.
#
def reverse_geocoded_by(latitude_attr, longitude_attr, options = {}, &block)
  geocoder_init(
    :reverse_geocode => true,
    :fetched_address => options[:address] || :address,
    :latitude        => latitude_attr,
    :longitude       => longitude_attr,
    :reverse_block   => block
  )
end