lib/geocoder/lookups/baidu_ip.rb in geocoder-1.4.9 vs lib/geocoder/lookups/baidu_ip.rb in geocoder-1.5.0

- old
+ new

@@ -1,51 +1,22 @@ require 'geocoder/lookups/base' require 'geocoder/results/baidu_ip' module Geocoder::Lookup - class BaiduIp < Base + class BaiduIp < Baidu def name "Baidu IP" end - def required_api_key_parts - ["key"] - end + private # --------------------------------------------------------------- - def query_url(query) - "#{protocol}://api.map.baidu.com/location/ip?" + url_query_string(query) + def base_query_url(query) + "#{protocol}://api.map.baidu.com/location/ip?" end - # HTTP only - def supported_protocols - [:http] - end - - private # --------------------------------------------------------------- - - def results(query, reverse = false) - return [] unless doc = fetch_data(query) - case doc['status'] - when 0 - return [doc['content']] unless doc['content'].blank? - when 1, 3, 4 - raise_error(Geocoder::Error, "server error.") || - Geocoder.log(:warn, "Baidu IP Geocoding API error: server error.") - when 2 - raise_error(Geocoder::InvalidRequest, "invalid request.") || - Geocoder.log(:warn, "Baidu IP Geocoding API error: invalid request.") - when 5 - raise_error(Geocoder::InvalidApiKey, "invalid api key.") || - Geocoder.log(:warn, "Baidu IP Geocoding API error: invalid api key.") - when 101, 102, 200..299 - raise_error(Geocoder::RequestDenied, "request denied.") || - Geocoder.log(:warn, "Baidu IP Geocoding API error: request denied.") - when 300..399 - raise_error(Geocoder::OverQueryLimitError, "over query limit") || - Geocoder.log(:warn, "Baidu IP Geocoding API error: over query limit.") - end - return [] + def content_key + 'content' end def query_url_params(query) { :ip => query.sanitized_text,