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