class Geocoder::Lookup::Esri
def results(query)
def results(query) return [] unless doc = fetch_data(query) if (doc['error'].nil?) if (!query.reverse_geocode?) return [] if !doc['locations'] || doc['locations'].empty? end return [ doc ] else case [ doc['error']['code'] ] when [498] raise_error(Geocoder::InvalidApiKey, doc['error']['message']) || Geocoder.log(:warn, "#{self.name} Geocoding API error: #{doc['error']['message']}") when [ 403 ] raise_error(Geocoder::RequestDenied, 'ESRI request denied') || Geocoder.log(:warn, "#{self.name} ESRI request denied: #{doc['error']['message']}") when [ 500 ], [501] raise_error(Geocoder::ServiceUnavailable, 'ESRI service unavailable') || Geocoder.log(:warn, "#{self.name} ESRI service error: #{doc['error']['message']}") else raise_error(Geocoder::Error, doc['error']['message']) || Geocoder.log(:warn, "#{self.name} Geocoding error: #{doc['error']['message']}") end end return [] end