lib/whois/parsers/whois.godaddy.com.rb in whois-parser-1.0.0 vs lib/whois/parsers/whois.godaddy.com.rb in whois-parser-1.0.1

- old
+ new

@@ -5,105 +5,35 @@ # # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net> #++ -require_relative 'base' +require_relative 'base_icann_compliant' module Whois class Parsers # Parser for the whois.godaddy.com server. # # @see Whois::Parsers::Example # The Example parser for the list of all available methods. # - class WhoisGodaddyCom < Base + class WhoisGodaddyCom < BaseIcannCompliant - property_not_supported :status - # The server is contacted only in case of a registered domain. property_supported :available? do false end property_supported :registered? do !available? end - property_supported :created_on do - if content_for_scanner =~ /Creation Date: (.+)\n/ - parse_time($1) - end - end - property_supported :updated_on do - if content_for_scanner =~ /Updated* Date: (.+)\n/ - parse_time($1) - end - end - - property_supported :expires_on do - if content_for_scanner =~ /Expiration Date: (.+)\n/ - parse_time($1) - end - end - - - property_supported :registrar do - Parser::Registrar.new( - name: content_for_scanner[/Registrar: (.+)\n/, 1], - url: content_for_scanner[/Registrar URL: (.+)\n/, 1], - ) - end - - property_supported :registrant_contacts do - build_contact('Registrant', Parser::Contact::TYPE_REGISTRANT) - end - - property_supported :admin_contacts do - build_contact('Admin', Parser::Contact::TYPE_ADMINISTRATIVE) - end - - property_supported :technical_contacts do - build_contact('Tech', Parser::Contact::TYPE_TECHNICAL) - end - - property_supported :nameservers do - content_for_scanner.scan(/Name Server: (.+)\n/).map do |line| - Parser::Nameserver.new(name: line[0].strip) - end - end - - - private - - def build_contact(element, type) - Parser::Contact.new( - type: type, - id: nil, - name: value_for_property(element, 'Name'), - organization: value_for_property(element, 'Organization'), - address: value_for_property(element, 'Street'), - city: value_for_property(element, 'City'), - zip: value_for_property(element, 'Postal Code'), - state: value_for_property(element, 'State/Province'), - country: value_for_property(element, 'Country'), - phone: value_for_property(element, 'Phone'), - fax: value_for_property(element, 'Fax'), - email: value_for_property(element, 'Email') - ) - end - - def value_for_property(element, property) - matches = content_for_scanner.scan(/#{element} #{property}:\s(.+)\n/) - value = matches.collect(&:first).join(', ') - if value == "" - nil - else - value + node("Update Date") do |value| + parse_time(value) end end end