Sha256: 7d13fda3fbd964e7d6282ba3d3da719331f56006c53d9d74eeccd40eaa220fc8

Contents?: true

Size: 1008 Bytes

Versions: 36

Compression:

Stored size: 1008 Bytes

Contents

require 'geocoder/lookups/base'
require 'geocoder/results/geoip2'

module Geocoder
  module Lookup
    class Geoip2 < Base
      attr_reader :gem_name

      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

      def name
        'GeoIP2'
      end

      def required_api_key_parts
        []
      end

      private

      def db_class
        gem_name == 'hive_geoip2' ? Hive::GeoIP2 : MaxMindDB
      end

      def results(query)
        return [] unless configuration[:file]

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

Version data entries

36 entries across 36 versions & 4 rubygems

Version Path
geocoder-1.6.7 lib/geocoder/lookups/geoip2.rb
geocoder-1.6.6 lib/geocoder/lookups/geoip2.rb
geocoder-1.6.5 lib/geocoder/lookups/geoip2.rb
geocoder-1.6.4 lib/geocoder/lookups/geoip2.rb
geocoder-1.6.3 lib/geocoder/lookups/geoip2.rb
geocoder-1.6.2 lib/geocoder/lookups/geoip2.rb
geocoder-1.6.1 lib/geocoder/lookups/geoip2.rb
geocoder-1.6.0 lib/geocoder/lookups/geoip2.rb
geocoder-1.5.2 lib/geocoder/lookups/geoip2.rb
really-broken-geocoder-2.0.0 lib/geocoder/lookups/geoip2.rb
really-broken-geocoder-1.5.1 lib/geocoder/lookups/geoip2.rb
geocoder-1.5.1 lib/geocoder/lookups/geoip2.rb
geocoder-1.5.0 lib/geocoder/lookups/geoip2.rb
geocoder-1.4.9 lib/geocoder/lookups/geoip2.rb
geocoder-1.4.8 lib/geocoder/lookups/geoip2.rb
geocoder-1.4.7 lib/geocoder/lookups/geoip2.rb
geocoder-1.4.6 lib/geocoder/lookups/geoip2.rb
geocoder-1.4.5 lib/geocoder/lookups/geoip2.rb
geocoder-1.4.4 lib/geocoder/lookups/geoip2.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/geocoder-1.4.3/lib/geocoder/lookups/geoip2.rb