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

Restructure Geocoder::Lookup module.

Extend with self so we can private methods are actually private.
parent f52f655c
No related branches found
No related tags found
No related merge requests found
module Geocoder
module Lookup
extend self
##
# Array of valid Lookup service names.
#
def self.all_services
def all_services
street_services + ip_services
end
##
# Array of valid Lookup service names, excluding :test.
#
def self.all_services_except_test
def all_services_except_test
all_services - [:test]
end
##
# All street address lookup services, default first.
#
def self.street_services
def street_services
[:google, :google_premier, :yahoo, :bing, :geocoder_ca, :yandex, :nominatim, :mapquest, :test]
end
##
# All IP address lookup services, default first.
#
def self.ip_services
def ip_services
[:freegeoip]
end
......@@ -34,7 +35,7 @@ module Geocoder
# Use this instead of Geocoder::Lookup::X.new to get an
# already-configured Lookup object.
#
def self.get(name)
def get(name)
@services = {} unless defined?(@services)
@services[name] = spawn(name) unless @services.include?(name)
@services[name]
......@@ -46,7 +47,7 @@ module Geocoder
##
# Spawn a Lookup of the given name.
#
def self.spawn(name)
def spawn(name)
if all_services.include?(name)
name = name.to_s
Geocoder::Lookup.const_get(classify_name(name)).new
......@@ -57,7 +58,7 @@ module Geocoder
end
end
def self.classify_name(filename)
def classify_name(filename)
filename.split("_").map{ |i| i[0...1].upcase + i[1..-1] }.join
end
end
......
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