module Geocoder::Model::MongoBase

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,
    :coordinates   => options[:coordinates] || :coordinates,
    :geocode_block => block
  )
end

def geocoder_init(options)

def geocoder_init(options)
  unless geocoder_initialized?
    @geocoder_options = {}
    require "geocoder/stores/#{geocoder_file_name}"
    include eval("Geocoder::Store::" + geocoder_module_name)
  end
  @geocoder_options.merge! options
end

def geocoder_initialized?

def geocoder_initialized?
  begin
    included_modules.include? eval("Geocoder::Store::" + geocoder_module_name)
  rescue NameError
    false
  end
end

def reverse_geocoded_by(coordinates_attr, options = {}, &block)


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