Sha256: 5e404753fed96a611fa6d5f71c5b2685d531d5bf6453c850eb15005f27f48aed

Contents?: true

Size: 836 Bytes

Versions: 1

Compression:

Stored size: 836 Bytes

Contents

require 'happymapper'
require 'iconv' unless String.instance_methods.include?(:encode)

module Ipgeobase
  class IpMetaData
    include HappyMapper

    tag 'ip-answer'
    element :inetnum, String, :deep => true
    element :city, String, :deep => true
    element :country, String, :deep => true
    element :region, String, :deep => true
    element :district, String, :deep => true
    element :lat, Float, :deep => true
    element :lng, Float, :deep => true

    def city
      encode(@city)
    end

    def country
      encode(@country)
    end

    def region
      encode(@region)
    end

    private

    def encode(entity)
      return nil if entity.nil?

      if entity.respond_to?(:encode)
        entity.encode("UTF-8")
      else
        Iconv.iconv('utf-8', 'windows-1251', entity).first
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ipgeobase-0.1.2 lib/ipgeobase/ip_meta_data.rb