class Geocoder::Lookup::IziGeoip
Public Instance Methods
base_query_url(query)
click to toggle source
# File lib/geocoder/lookups/izi_geoip.rb, line 8 def base_query_url(query) "#{host}/#{path}?" end
cache_key(query)
click to toggle source
# File lib/geocoder/lookups/izi_geoip.rb, line 16 def cache_key(query) "ip=#{query.sanitized_text}" end
name()
click to toggle source
# File lib/geocoder/lookups/izi_geoip.rb, line 4 def name 'IziGeoip' end
query_url(query)
click to toggle source
# File lib/geocoder/lookups/izi_geoip.rb, line 12 def query_url(query) "#{host}/#{path}?#{param_name}=#{query.sanitized_text}" end
supported_protocols()
click to toggle source
# File lib/geocoder/lookups/izi_geoip.rb, line 20 def supported_protocols host =~ /https/ ? [:https] : [:http] end
Private Instance Methods
empty_result?(doc)
click to toggle source
# File lib/geocoder/lookups/izi_geoip.rb, line 47 def empty_result?(doc) !doc.is_a?(Hash) || doc.keys == ['ip'] end
host()
click to toggle source
# File lib/geocoder/lookups/izi_geoip.rb, line 35 def host configuration[:host] || 'localhost:3000' end
param_name()
click to toggle source
# File lib/geocoder/lookups/izi_geoip.rb, line 43 def param_name configuration[:param_name] || 'ip' end
path()
click to toggle source
# File lib/geocoder/lookups/izi_geoip.rb, line 39 def path configuration[:path] || 'geocode.json' end
query_url_params(query)
click to toggle source
Calls superclass method
# File lib/geocoder/lookups/izi_geoip.rb, line 65 def query_url_params(query) super end
reserved_result(ip)
click to toggle source
# File lib/geocoder/lookups/izi_geoip.rb, line 51 def reserved_result(ip) { 'ip' => ip, 'continent_code' => '', 'continent_name' => '', 'country_code' => 'RD', 'country_name' => '', 'location_latitude' => '', 'location_longitude' => '', 'location_time_zone' => '', 'postal_code' => '' } end
results(query)
click to toggle source
# File lib/geocoder/lookups/izi_geoip.rb, line 26 def results(query) return [reserved_result(query.text)] if query.loopback_ip_address? if (doc = fetch_data(query)).nil? || doc['country_code'].blank? || empty_result?(doc) [] else [doc] end end