Skip to content
Snippets Groups Projects
Commit 565de2aa authored by Alex Reisner's avatar Alex Reisner
Browse files

Add deprecation warnings.

...for Result instance methods mistakenly called on an array.
parent 3259fdfb
No related branches found
No related tags found
No related merge requests found
......@@ -10,9 +10,27 @@ module Geocoder
# Search for information about an address or a set of coordinates.
#
def search(*args)
return [] if blank_query?(args[0])
ip = (args.size == 1 and ip_address?(args.first))
lookup(ip).search(*args)
if blank_query?(args[0])
results = []
else
ip = (args.size == 1 and ip_address?(args.first))
results = lookup(ip).search(*args)
end
results.instance_eval do
def warn_search_deprecation(attr)
warn "DEPRECATION WARNING: Geocoder.search now returns an array of Geocoder::Result objects. " +
"Calling '%s' directly on the returned array will cause an exception in Geocoder v1.0." % attr
end
def coordinates; warn_search_deprecation('coordinates'); first.coordinates if first; end
def latitude; warn_search_deprecation('latitude'); first.latitude if first; end
def longitude; warn_search_deprecation('longitude'); first.longitude if first; end
def address; warn_search_deprecation('address'); first.address if first; end
def city; warn_search_deprecation('city'); first.city if first; end
def country; warn_search_deprecation('country'); first.country if first; end
def country_code; warn_search_deprecation('country_code'); first.country_code if first; end
end
return results
end
##
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment