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