Sha256: b5413f1a69d0e48449c231eb826998d09d6dd24996d352e6bbbaa73cb62fbdde

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 KB

Contents

require '/opt/melissadata/lib/mdIpLocatorRubyWrapper'

module MelissaData::NativeObject
  class IpLocator < Base
    def initialize(opts={})
      @obj = MdIpLocatorRubyWrapper::MdIpLocator.new
      obj.SetPathToIpLocatorFiles(data_dir)

      @result_codes = [
        ['IS01', "IP Address found in database"],
        ['IS02', "IP Address unknown"],
        ['IE01', "IP Address was empty or not well formed"]
      ]

      @defaults = {
        :ip => ''
      }

      # At least one of these needs to be present
      @required_fields = [:ip]

      super
    end

    def parse_input
      obj.LocateIpAddress(input[:ip].to_s)
    end

    def assign_values
      @output = {
        :ip => input[:ip],
        :domain_name => obj.GetDomainName,
        :isp => obj.GetISP,
        :city => obj.GetCity,
        :region => obj.GetRegion,
        :zip => obj.GetZip,
        :country => obj.GetCountry,
        :country_abbrev => obj.GetCountryAbbreviation,
        :lat => obj.GetLatitude,
        :lng => obj.GetLongitude
      }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
melissadata-0.1.5 lib/melissadata/native_object/ip_locator.rb