From a48e5f170d57f0da9795087fcb782da12d73ba9b Mon Sep 17 00:00:00 2001
From: James McCarthy <james2mccarthy@gmail.com>
Date: Thu, 21 Jul 2011 15:36:24 +0100
Subject: [PATCH] Simplified Gecoder#get_lookup and removed use of eval in
 Geocoder#spawn_lookup.

Signed-off-by: James McCarthy <james2mccarthy@gmail.com>
---
 lib/geocoder.rb | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/lib/geocoder.rb b/lib/geocoder.rb
index 4e648617..c169d710 100644
--- a/lib/geocoder.rb
+++ b/lib/geocoder.rb
@@ -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
-- 
GitLab