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