class Geocoder::Lookup::Geoip2

Attributes

gem_name[R]

Public Class Methods

new() click to toggle source
Calls superclass method Geocoder::Lookup::Base::new
# File lib/geocoder/lookups/geoip2.rb, line 9
def initialize
  unless configuration[:file].nil?
    begin
      @gem_name = configuration[:lib] || 'maxminddb'
      require @gem_name
    rescue LoadError
      raise "Could not load Maxmind DB dependency. To use the GeoIP2 lookup you must add the #{@gem_name} gem to your Gemfile or have it installed in your system."
    end

    @mmdb = db_class.new(configuration[:file].to_s)
  end
  super
end

Public Instance Methods

name() click to toggle source
# File lib/geocoder/lookups/geoip2.rb, line 23
def name
  'GeoIP2'
end
required_api_key_parts() click to toggle source
# File lib/geocoder/lookups/geoip2.rb, line 27
def required_api_key_parts
  []
end

Private Instance Methods

db_class() click to toggle source
# File lib/geocoder/lookups/geoip2.rb, line 33
def db_class
  gem_name == 'hive_geoip2' ? Hive::GeoIP2 : MaxMindDB
end
results(query) click to toggle source
# File lib/geocoder/lookups/geoip2.rb, line 37
def results(query)
  return [] unless configuration[:file]

  if @mmdb.respond_to?(:local_ip_alias) && !configuration[:local_ip_alias].nil?
    @mmdb.local_ip_alias = configuration[:local_ip_alias]
  end

  result = @mmdb.lookup(query.to_s)
  result.nil? ? [] : [result]
end