lib/whois/record/parser/whois.educause.edu.rb in whois-2.2.0 vs lib/whois/record/parser/whois.educause.edu.rb in whois-2.3.0

- old
+ new

@@ -1,24 +1,21 @@ #-- # Ruby Whois # # An intelligent pure Ruby WHOIS client and parser. # -# Copyright (c) 2009-2011 Simone Carletti <weppos@weppos.net> +# Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net> #++ require 'whois/record/parser/base' module Whois class Record class Parser - # - # = whois.educause.edu parser - # # Parser for the whois.educause.edu server. # # NOTE: This parser is just a stub and provides only a few basic methods # to check for domain availability and get domain status. # Please consider to contribute implementing missing methods. @@ -60,9 +57,32 @@ if content_for_scanner =~ /Domain expires:\s+(.+?)\n/ Time.parse($1) end end + property_supported :registrant_contacts do + if content_for_scanner =~ /Registrant:\n((.+\n)+)\n/ + lines = $1.split("\n").map(&:strip) + + case lines[-2] + when /([^\n,]+),\s([A-Z]{2})(?:\s(\d{5}))/ + city, state, zip = $1, $2, $3 + else + city = lines[-2] + end + + Record::Contact.new( + :type => Whois::Record::Contact::TYPE_REGISTRANT, + :name => nil, + :organization => lines[0], + :address => lines[1..-3].join("\n"), + :city => city, + :state => state, + :zip => zip, + :country => lines[-1] + ) + end + end property_supported :nameservers do if content_for_scanner =~ /Name Servers: \n((.+\n)+)\n/ $1.split("\n").map do |line| name, ipv4 = line.strip.split(/\s+/)