diff --git a/lib/geocoder.rb b/lib/geocoder.rb index 731a17f671680c68f647391e2abb54e8271f9161..9be0c2c7371fd6d1b8c603134c6ef069ea255fa9 100644 --- a/lib/geocoder.rb +++ b/lib/geocoder.rb @@ -68,6 +68,10 @@ module Geocoder name = name.to_s require "geocoder/lookups/#{name}" eval("Geocoder::Lookup::#{name[0...1].upcase + name[1..-1]}.new") + else + valids = valid_lookups.map{ |l| ":#{l}" }.join(", ") + raise ConfigurationError, "Please specify a valid lookup for Geocoder " + + "(#{name.inspect} is not one of: #{valids})." end end diff --git a/test/geocoder_test.rb b/test/geocoder_test.rb index bd5891a353060df05ffb27f65bdac5bbcc7cbd82..3b10adb12a2cf6fea2b6f1df477c0a4d672be5a5 100644 --- a/test/geocoder_test.rb +++ b/test/geocoder_test.rb @@ -7,6 +7,16 @@ class GeocoderTest < Test::Unit::TestCase end + # --- configuration --- + # + def test_exception_raised_on_bad_lookup_config + Geocoder::Configuration.lookup = :stoopid + assert_raises Geocoder::ConfigurationError do + Geocoder.search "something dumb" + end + end + + # --- sanity checks --- def test_distance_between