From 7959237d17ad0176ec8dad1b02a8ac84817666ad Mon Sep 17 00:00:00 2001
From: Alex Reisner <alex@alexreisner.com>
Date: Wed, 9 Mar 2011 10:18:33 -0500
Subject: [PATCH] Raise exception on bad lookup configuration.

---
 lib/geocoder.rb       |  4 ++++
 test/geocoder_test.rb | 10 ++++++++++
 2 files changed, 14 insertions(+)

diff --git a/lib/geocoder.rb b/lib/geocoder.rb
index 731a17f6..9be0c2c7 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 bd5891a3..3b10adb1 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
-- 
GitLab