lib/whois/parsers/whois.nic.tm.rb in whois-parser-1.1.0 vs lib/whois/parsers/whois.nic.tm.rb in whois-parser-1.2.0
- old
+ new
@@ -5,26 +5,92 @@
#
# Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
#++
-require_relative 'base_icb'
+require_relative 'base'
module Whois
class Parsers
# Parser for the whois.nic.tm server.
#
# @see Whois::Parsers::Example
# The Example parser for the list of all available methods.
#
- class WhoisNicTm < BaseIcb
+ class WhoisNicTm < Base
- property_not_supported :expires_on
+ property_not_supported :disclaimer
- property_not_supported :nameservers
+ property_supported :domain do
+ if registered?
+ content_for_scanner.match(/^Domain : (.+)\n/)[1]
+ elsif available?
+ content_for_scanner.match(/^Domain (.+) is available/)[1]
+ end
+ end
+
+ property_not_supported :domain_id
+
+
+ property_supported :status do
+ if available?
+ :available
+ else
+ :registered
+ end
+ end
+
+ property_supported :available? do
+ !!(content_for_scanner =~ /^Domain (.+?) is available/)
+ end
+
+ property_supported :registered? do
+ !available?
+ end
+
+
+ property_not_supported :created_on
+
+ property_not_supported :updated_on
+
+ property_supported :expires_on do
+ if content_for_scanner =~ /Expiry : (.+?)\n/
+ parse_time($1)
+ end
+ end
+
+
+ property_not_supported :registrar
+
+ property_supported :registrant_contacts do
+ lines = content_for_scanner.scan(/^Owner\s+: (.+)\n/).flatten
+ return if lines.empty?
+
+ Parser::Contact.new(
+ type: Parser::Contact::TYPE_REGISTRANT,
+ name: lines[0],
+ organization: lines[1],
+ address: lines[2],
+ zip: nil,
+ state: lines[4],
+ city: lines[3],
+ country: lines[5]
+ )
+ end
+
+ property_not_supported :admin_contacts
+
+ property_not_supported :technical_contacts
+
+
+ property_supported :nameservers do
+ content_for_scanner.scan(/^NS \d\s+: (.+)/).flatten.map do |name|
+ Parser::Nameserver.new(name: name)
+ end
+ end
end
end
end