From 5986e1cd2e27a4de3efce723b50f84b9dedafb7f Mon Sep 17 00:00:00 2001
From: Alex Reisner <alex@alexreisner.com>
Date: Fri, 1 Apr 2011 02:30:40 -0400
Subject: [PATCH] Change format of distance_to/from arguments.

---
 lib/geocoder/orms/base.rb | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/geocoder/orms/base.rb b/lib/geocoder/orms/base.rb
index cf256ddb..0ee222d7 100644
--- a/lib/geocoder/orms/base.rb
+++ b/lib/geocoder/orms/base.rb
@@ -21,10 +21,14 @@ module Geocoder
       # Takes two floats (latitude, longitude) and a symbol specifying the
       # units to be used (:mi or :km; default is :mi).
       #
-      def distance_to(lat, lon, units = :mi)
+      def distance_to(point, *args)
         return nil unless geocoded?
-        mylat,mylon = to_coordinates
-        Geocoder::Calculations.distance_between(mylat, mylon, lat, lon, :units => units)
+        units = args.last.is_a?(Symbol) ? args.pop : :mi
+        them = args.size > 0 ? [point, args.first] :
+          Geocoder::Calculations.extract_coordinates(point)
+        us = to_coordinates
+        Geocoder::Calculations.distance_between(
+          us[0], us[1], them[0], them[1], :units => units)
       end
 
       alias_method :distance_from, :distance_to
-- 
GitLab