Skip to content
Snippets Groups Projects
telize.rb 1.11 KiB
Newer Older
  • Learn to ignore specific revisions
  • require 'geocoder/lookups/base'
    require 'geocoder/results/telize'
    
    module Geocoder::Lookup
      class Telize < Base
    
        def name
          "Telize"
        end
    
        def query_url(query)
          #currently doesn't support HTTPS
          "http://www.telize.com/geoip/#{query.sanitized_text}"
        end
    
        private # ---------------------------------------------------------------
    
        def results(query)
          # don't look up a loopback address, just return the stored result
          return [reserved_result(query.text)] if query.loopback_ip_address?
    
          # note: Telize returns json with a code attribute of 401 on bad request
          doc = fetch_data(query)
          (doc && doc['code'] == 401) ? [] : [doc]
    
        end
    
        def reserved_result(ip)
          {
            "ip"           => ip,
            "city"         => "",
            "region_code"  => "",
            "region_name"  => "",
            "metrocode"    => "",
            "zipcode"      => "",
            "latitude"     => "0",
            "longitude"    => "0",
            "country_name" => "Reserved",
            "country_code" => "RD"
          }
        end
    
        def host
          configuration[:host] || "telize.net"
        end
      end
    end