From eafa579e06a8ab4820f0e629d4a63cece2f664f2 Mon Sep 17 00:00:00 2001
From: Alex Reisner <alex@alexreisner.com>
Date: Fri, 1 Apr 2011 10:21:33 -0400
Subject: [PATCH] Deprecate old distance_to/from argument format.

---
 lib/geocoder/orms/base.rb | 3 +++
 test/geocoder_test.rb     | 4 ++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/lib/geocoder/orms/base.rb b/lib/geocoder/orms/base.rb
index 8b94b30e..f7cd9e33 100644
--- a/lib/geocoder/orms/base.rb
+++ b/lib/geocoder/orms/base.rb
@@ -28,6 +28,9 @@ module Geocoder
       # Also takes a symbol specifying the units (:mi or :km; default is :mi).
       #
       def distance_to(point, *args)
+        if point.is_a?(Numeric) and args[0].is_a?(Numeric)
+          warn "DEPRECATION WARNING: Instead of passing latitude/longitude as separate arguments to the distance_to/from method, please pass an array [#{point},#{args[0]}], a geocoded object, or a geocodable address (string). The old argument format will not be supported in Geocoder v.1.0."
+        end
         return nil unless geocoded?
         units = args.last.is_a?(Symbol) ? args.pop : :mi
         them = args.size > 0 ? [point, args.first] :
diff --git a/test/geocoder_test.rb b/test/geocoder_test.rb
index 16ccee5d..b45c7e2a 100644
--- a/test/geocoder_test.rb
+++ b/test/geocoder_test.rb
@@ -34,13 +34,13 @@ class GeocoderTest < Test::Unit::TestCase
   def test_distance_to_returns_float
     v = Venue.new(*venue_params(:msg))
     v.latitude, v.longitude = [40.750354, -73.993371]
-    assert (d = v.distance_to(30, -94)).is_a?(Float)
+    assert (d = v.distance_to([30, -94])).is_a?(Float)
   end
 
   def test_distance_from_is_alias_for_distance_to
     v = Venue.new(*venue_params(:msg))
     v.latitude, v.longitude = [40.750354, -73.993371]
-    assert_equal v.distance_from(30, -94), v.distance_to(30, -94)
+    assert_equal v.distance_from([30, -94]), v.distance_to([30, -94])
   end
 
   def test_coordinates_method
-- 
GitLab