From 2707ecae94af496bd81446679a7247bce928834c Mon Sep 17 00:00:00 2001
From: Alex Reisner <alex@alexreisner.com>
Date: Thu, 23 Jun 2011 23:31:42 -0400
Subject: [PATCH] Return zero results when no valid coords given.

Fixes issue #75 (ActiveRecord) and more (Mongoid).
---
 lib/geocoder/stores/active_record.rb | 2 +-
 lib/geocoder/stores/mongoid.rb       | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/lib/geocoder/stores/active_record.rb b/lib/geocoder/stores/active_record.rb
index d7a37cee..fb0b478b 100644
--- a/lib/geocoder/stores/active_record.rb
+++ b/lib/geocoder/stores/active_record.rb
@@ -36,7 +36,7 @@ module Geocoder::Store
           if latitude and longitude
             near_scope_options(latitude, longitude, *args)
           else
-            {}
+            where(:id => false) # no results if no lat/lon given
           end
         }
       end
diff --git a/lib/geocoder/stores/mongoid.rb b/lib/geocoder/stores/mongoid.rb
index dbd4ee68..cf06817b 100644
--- a/lib/geocoder/stores/mongoid.rb
+++ b/lib/geocoder/stores/mongoid.rb
@@ -17,6 +17,10 @@ module Geocoder::Store
 
         scope :near, lambda{ |location, *args|
           coords  = Geocoder::Calculations.extract_coordinates(location)
+
+          # no results if no lat/lon given
+          return criteria.where(:id => false) unless coords.is_a?(Array)
+
           radius  = args.size > 0 ? args.shift : 20
           options = args.size > 0 ? args.shift : {}
 
-- 
GitLab