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

Merge branch 'james2m-master' into 1.0.3

parents 7c96d5c7 6f400578
No related branches found
No related tags found
No related merge requests found
......@@ -91,12 +91,8 @@ module Geocoder
# Retrieve a Lookup object from the store.
#
def get_lookup(name)
unless defined?(@lookups)
@lookups = {}
end
unless @lookups.include?(name)
@lookups[name] = spawn_lookup(name)
end
@lookups = {} unless defined?(@lookups)
@lookups[name] = spawn_lookup(name) unless @lookups.include?(name)
@lookups[name]
end
......@@ -108,9 +104,9 @@ module Geocoder
name = name.to_s
require "geocoder/lookups/#{name}"
klass = name.split("_").map{ |i| i[0...1].upcase + i[1..-1] }.join
eval("Geocoder::Lookup::#{klass}.new")
Geocoder::Lookup.const_get(klass).new
else
valids = valid_lookups.map{ |l| ":#{l}" }.join(", ")
valids = valid_lookups.join(", ")
raise ConfigurationError, "Please specify a valid lookup for Geocoder " +
"(#{name.inspect} is not one of: #{valids})."
end
......
......@@ -39,20 +39,21 @@ module Geocoder
end
# define getters and setters for all configuration settings
self.options_and_defaults.each do |o,d|
eval("def self.#{o}; @@#{o}; end")
eval("def self.#{o}=(obj); @@#{o} = obj; end")
self.options_and_defaults.each do |option, default|
class_eval(<<-END, __FILE__, __LINE__ + 1)
@@#{option} = default unless defined? @@#{option}
def self.#{option}
@@#{option}
end
def self.#{option}=(obj)
@@#{option} = obj
end
END
end
##
# Set all values to default.
#
def self.set_defaults
self.options_and_defaults.each do |o,d|
self.send("#{o}=", d)
end
end
end
end
Geocoder::Configuration.set_defaults
......@@ -87,7 +87,7 @@ module Geocoder
# Class of the result objects
#
def result_class
eval("Geocoder::Result::#{self.class.to_s.split(":").last}")
Geocoder::Result.const_get(self.class.to_s.split(":").last)
end
##
......
......@@ -31,7 +31,7 @@ module Geocoder
unless @geocoder_options
@geocoder_options = {}
require "geocoder/stores/#{geocoder_file_name}"
include eval("Geocoder::Store::" + geocoder_module_name)
include Geocoder::Store.const_get(geocoder_module_name)
end
@geocoder_options.merge! options
end
......
......@@ -38,14 +38,14 @@ module Geocoder
unless geocoder_initialized?
@geocoder_options = {}
require "geocoder/stores/#{geocoder_file_name}"
include eval("Geocoder::Store::" + geocoder_module_name)
include Geocoder::Store.const_get(geocoder_module_name)
end
@geocoder_options.merge! options
end
def geocoder_initialized?
begin
included_modules.include? eval("Geocoder::Store::" + geocoder_module_name)
included_modules.include? Geocoder::Store.const_get(geocoder_module_name)
rescue NameError
false
end
......
......@@ -9,4 +9,5 @@ class ConfigurationTest < Test::Unit::TestCase
Geocoder.search "something dumb"
end
end
end
......@@ -3,10 +3,6 @@ require 'test_helper'
class CustomBlockTest < Test::Unit::TestCase
def setup
Geocoder::Configuration.set_defaults
end
def test_geocode_with_block_runs_block
e = Event.new(*venue_params(:msg))
coords = [40.750354, -73.993371]
......
......@@ -3,10 +3,6 @@ require 'test_helper'
class ErrorHandlingTest < Test::Unit::TestCase
def setup
Geocoder::Configuration.set_defaults
end
def test_does_not_choke_on_timeout
# keep test output clean: suppress timeout warning
orig = $VERBOSE; $VERBOSE = nil
......
......@@ -3,10 +3,6 @@ require 'test_helper'
class GeocoderTest < Test::Unit::TestCase
def setup
Geocoder::Configuration.set_defaults
end
def test_distance_to_returns_float
v = Venue.new(*venue_params(:msg))
v.latitude, v.longitude = [40.750354, -73.993371]
......
......@@ -3,10 +3,6 @@ require 'test_helper'
class HttpsTest < Test::Unit::TestCase
def setup
Geocoder::Configuration.set_defaults
end
def test_uses_https_for_secure_query
Geocoder::Configuration.use_https = true
g = Geocoder::Lookup::Google.new
......
......@@ -3,10 +3,6 @@ require 'test_helper'
class MethodAliasesTest < Test::Unit::TestCase
def setup
Geocoder::Configuration.set_defaults
end
def test_distance_from_is_alias_for_distance_to
v = Venue.new(*venue_params(:msg))
v.latitude, v.longitude = [40.750354, -73.993371]
......
......@@ -7,10 +7,6 @@ require 'mongoid_test_helper'
class MongoidTest < Test::Unit::TestCase
def setup
Geocoder::Configuration.set_defaults
end
def test_geocoded_check
p = Place.new(*venue_params(:msg))
p.location = [40.750354, -73.993371]
......
......@@ -3,10 +3,6 @@ require 'test_helper'
class ProxyTest < Test::Unit::TestCase
def setup
Geocoder::Configuration.set_defaults
end
def test_uses_proxy_when_specified
Geocoder::Configuration.http_proxy = 'localhost'
lookup = Geocoder::Lookup::Google.new
......
......@@ -3,10 +3,6 @@ require 'test_helper'
class ServicesTest < Test::Unit::TestCase
def setup
Geocoder::Configuration.set_defaults
end
# --- Google ---
......
......@@ -231,6 +231,12 @@ end
class Test::Unit::TestCase
def teardown
Geocoder.send(:remove_const, :Configuration)
load "geocoder/configuration.rb"
end
def venue_params(abbrev)
{
:msg => ["Madison Square Garden", "4 Penn Plaza, New York, NY"]
......
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