Skip to content
Snippets Groups Projects
Commit 3846b15f authored by Alex Reisner's avatar Alex Reisner
Browse files

Split modules into separate files.

parent 064d3277
No related branches found
No related tags found
No related merge requests found
require "geocoder/configuration"
require "geocoder/calculations"
require "geocoder/cache"
require "geocoder/model"
require "geocoder/request"
require "geocoder/models/active_record"
require "geocoder/models/mongoid"
module Geocoder
extend self
......
require 'geocoder/models/base'
module Geocoder
module Model
module ActiveRecord
include Base
##
# 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
##
# 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
private # --------------------------------------------------------------
def geocoder_file_name; "active_record"; end
def geocoder_module_name; "ActiveRecord"; end
end
end
end
require 'geocoder'
module Geocoder
##
# Methods for invoking Geocoder in a model.
#
module Model
module Base
def geocoder_options
@geocoder_options
end
def geocoded_by
fail
end
def reverse_geocoded_by
fail
end
private # ----------------------------------------------------------------
def geocoder_init(options)
unless geocoder_initialized?
@geocoder_options = {}
require "geocoder/orms/#{geocoder_file_name}"
include eval("Geocoder::Orm::" + geocoder_module_name)
end
@geocoder_options.merge! options
end
def geocoder_initialized?
begin
included_modules.include? eval("Geocoder::Orm::" + geocoder_module_name)
rescue NameError
false
end
end
end
end
end
require 'geocoder'
require 'geocoder/models/base'
module Geocoder
##
# Methods for invoking Geocoder in a model.
#
module Model
module Base
def geocoder_options
@geocoder_options
end
private # ----------------------------------------------------------------
def geocoder_init(options)
unless geocoder_initialized?
@geocoder_options = {}
require "geocoder/orms/#{geocoder_file_name}"
include eval("Geocoder::Orm::" + geocoder_module_name)
end
@geocoder_options.merge! options
end
def geocoder_initialized?
begin
included_modules.include? eval("Geocoder::Orm::" + geocoder_module_name)
rescue NameError
false
end
end
end
module ActiveRecord
include Base
##
# 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
##
# 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
private
def geocoder_file_name; "active_record"; end
def geocoder_module_name; "ActiveRecord"; end
end
module Mongoid
include Base
def self.included(base); base.extend(self); end
##
# Set attribute names and include the Geocoder module.
#
......@@ -93,17 +31,16 @@ module Geocoder
)
end
def self.included(base); base.extend(self); end
private
private # --------------------------------------------------------------
def geocoder_file_name; "mongoid"; end
def geocoder_module_name; "Mongoid"; end
def geocoder_init(options)
super(options)
# create 2d index
index [[ geocoder_options[:coordinates], Mongo::GEO2D ]],
:min => -180, :max => 180
:min => -180, :max => 180 # create 2d index
end
end
end
......
require 'geocoder'
require 'geocoder/model'
require 'geocoder/models/active_record'
module Geocoder
if defined? Rails::Railtie
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment