class Geocoder::Lookup::Ipregistry
Constants
- ERROR_CODES
Public Instance Methods
name()
click to toggle source
# File lib/geocoder/lookups/ipregistry.rb, line 17 def name "Ipregistry" end
supported_protocols()
click to toggle source
# File lib/geocoder/lookups/ipregistry.rb, line 21 def supported_protocols [:https, :http] end
Private Instance Methods
base_query_url(query)
click to toggle source
# File lib/geocoder/lookups/ipregistry.rb, line 27 def base_query_url(query) "#{protocol}://#{host}/#{query.sanitized_text}?" end
cache_key(query)
click to toggle source
# File lib/geocoder/lookups/ipregistry.rb, line 31 def cache_key(query) query_url(query) end
host()
click to toggle source
# File lib/geocoder/lookups/ipregistry.rb, line 35 def host configuration[:host] || "api.ipregistry.co" end
query_url_params(query)
click to toggle source
Calls superclass method
# File lib/geocoder/lookups/ipregistry.rb, line 39 def query_url_params(query) { key: configuration.api_key }.merge(super) end
reserved_result(ip)
click to toggle source
# File lib/geocoder/lookups/ipregistry.rb, line 60 def reserved_result(ip) { "ip" => ip, "country_name" => "Reserved", "country_code" => "RD" } end
results(query)
click to toggle source
# File lib/geocoder/lookups/ipregistry.rb, line 45 def results(query) # don't look up a loopback or private address, just return the stored result return [reserved_result(query.text)] if query.internal_ip_address? return [] unless (doc = fetch_data(query)) if (error = doc['error']) code = error['code'] msg = error['message'] raise_error(ERROR_CODES[code], msg ) || Geocoder.log(:warn, "Ipregistry API error: #{msg}") return [] end [doc] end