Skip to content

Commit

Permalink
Added parser for whois.nic.nu
Browse files Browse the repository at this point in the history
  • Loading branch information
Mikkel Mondrup Kristensen authored and Mikkel Mondrup Kristensen committed Jan 11, 2010
1 parent a67969e commit bd53e07
Show file tree
Hide file tree
Showing 6 changed files with 199 additions and 1 deletion.
5 changes: 5 additions & 0 deletions Manifest
Expand Up @@ -53,6 +53,7 @@ lib/whois/answer/parser/whois.nic.it.rb
lib/whois/answer/parser/whois.nic.ly.rb
lib/whois/answer/parser/whois.nic.mu.rb
lib/whois/answer/parser/whois.nic.name.rb
lib/whois/answer/parser/whois.nic.nu.rb
lib/whois/answer/parser/whois.nic.tel.rb
lib/whois/answer/parser/whois.nic.tl.rb
lib/whois/answer/parser/whois.nic.travel.rb
Expand Down Expand Up @@ -123,6 +124,7 @@ test/answer/parser/whois.nic.it_test.rb
test/answer/parser/whois.nic.ly_test.rb
test/answer/parser/whois.nic.mu_test.rb
test/answer/parser/whois.nic.name_test.rb
test/answer/parser/whois.nic.nu_test.rb
test/answer/parser/whois.nic.tel_test.rb
test/answer/parser/whois.nic.tl_test.rb
test/answer/parser/whois.nic.travel_test.rb
Expand Down Expand Up @@ -251,6 +253,8 @@ test/testcases/responses/whois.nic.mu/mu/registered.txt
test/testcases/responses/whois.nic.name/available.txt
test/testcases/responses/whois.nic.name/registered.txt
test/testcases/responses/whois.nic.name/reserved.txt
test/testcases/responses/whois.nic.nu/available.txt
test/testcases/responses/whois.nic.nu/registered.txt
test/testcases/responses/whois.nic.tel/available.txt
test/testcases/responses/whois.nic.tel/registered.txt
test/testcases/responses/whois.nic.tl/available.txt
Expand Down Expand Up @@ -289,3 +293,4 @@ test/whois_test.rb
utils/bm_delegation_vs_inheritance.rb
utils/bm_shell_vs_pure.rb
utils/tlds.txt
whois.gemspec
80 changes: 80 additions & 0 deletions lib/whois/answer/parser/whois.nic.nu.rb
@@ -0,0 +1,80 @@
#
# = Ruby Whois
#
# An intelligent pure Ruby WHOIS client and parser.
#
#
# Category:: Net
# Package:: Whois
# Author:: Mikkel Kristensen <mikkel@tdx.dk>, Simone Carletti <weppos@weppos.net>
# License:: MIT License
#
#--
#
#++


require 'whois/answer/parser/base'


module Whois
class Answer
class Parser

#
# = whois.nic.nu
#
# Parser for the whois.nic.nu 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.
# See WhoisNicIt parser for an explanation of all available methods
# and examples.
#
class WhoisNicNu < Base

property_supported :status do
@status ||= if content.to_s =~ /Record status:\s+(.*)\n/
$1.downcase.to_sym
end
end

property_supported :available? do
@available ||= !!(content.to_s =~ /NO MATCH for domain/)
end

property_supported :registered? do
!available?
end


property_supported :created_on do
@created_on ||= if content.to_s =~ /Record created on (.*).\n/
Time.parse($1)
end
end

property_not_supported :updated_on

property_supported :expires_on do
@expires_on ||= if content.to_s =~ /Record expires on (.*).\n/
Time.parse($1)
end
end

property_supported :updated_on do
@updated_on ||= if content.to_s =~ /Record last updated on (.*?).\n/
Time.parse($1)
end
end

property_supported :nameservers do
@nameservers ||= content.to_s.scan(/Domain servers in listed order:(.*)Owner and Administrative Contact information for domains/m).to_s.split || []
end

end

end
end
end
59 changes: 59 additions & 0 deletions test/answer/parser/whois.nic.nu_test.rb
@@ -0,0 +1,59 @@
require 'test_helper'
require 'whois/answer/parser/whois.nic.nu.rb'

class AnswerParserWhoisNicNuTest < Whois::Answer::Parser::TestCase

def setup
@klass = Whois::Answer::Parser::WhoisNicNu
@host = "whois.nic.nu"
end


def test_status
assert_equal :active,
@klass.new(load_part('/registered.txt')).status
assert_equal nil,
@klass.new(load_part('/available.txt')).status
end

def test_available?
assert !@klass.new(load_part('/registered.txt')).available?
assert @klass.new(load_part('/available.txt')).available?
end

def test_registered?
assert @klass.new(load_part('/registered.txt')).registered?
assert !@klass.new(load_part('/available.txt')).registered?
end


def test_created_on
assert_equal Time.parse("1999-06-07"),
@klass.new(load_part('/registered.txt')).created_on
assert_equal nil,
@klass.new(load_part('/available.txt')).created_on
end

def test_updated_on
assert_equal Time.parse("2009-05-11"),
@klass.new(load_part('/registered.txt')).updated_on
assert_equal nil,
@klass.new(load_part('/available.txt')).updated_on
end

def test_expires_on
assert_equal Time.parse("2010-06-07"),
@klass.new(load_part('/registered.txt')).expires_on
assert_equal nil,
@klass.new(load_part('/available.txt')).expires_on
end


def test_nameservers
assert_equal %w(ns1.google.com ns2.google.com ns3.google.com ns4.google.com),
@klass.new(load_part('/registered.txt')).nameservers
assert_equal %w(),
@klass.new(load_part('/available.txt')).nameservers
end

end
2 changes: 1 addition & 1 deletion test/list_tld
Expand Up @@ -215,7 +215,7 @@ nl;whois.domain-registry.nl;google.nl;u34jedzcq.nl
no;whois.norid.no;google.no;u34jedzcq.no
np;;;
nr;;;
#Whois::Server.define :tld, ".nu", "whois.nic.nu"
nu;whois.nic.nu;google.nu;u34jedzcq.nu
#Whois::Server.define :tld, ".nz", "whois.srs.net.nz"
om;;;
pa;;;
Expand Down
19 changes: 19 additions & 0 deletions test/testcases/responses/whois.nic.nu/available.txt
@@ -0,0 +1,19 @@
------------------------------------------------------------------------
Database last updated: 2010-Jan-08 15:01:41 GMT
------------------------------------------------------------------------
Galba:~ mmk$ whois u34jedzcq.nu
------------------------------------------------------------------------
.NU Domain Ltd Whois service

NO MATCH for domain "u34jedzcq.nu" (ASCII):

Visit http://www.nunames.nu to determine if this domain has been
registered within the last 48 hours.

Owner and Administrative Contact information for domains
registered in .nu is available upon request from support@nic.nu

Copyright by .NU Domain Ltd - http://www.nunames.nu
------------------------------------------------------------------------
Database last updated: 2010-Jan-08 15:01:41 GMT
------------------------------------------------------------------------
35 changes: 35 additions & 0 deletions test/testcases/responses/whois.nic.nu/registered.txt
@@ -0,0 +1,35 @@
------------------------------------------------------------------------
.NU Domain Ltd Whois service

Domain Name (ASCII): google.nu

Technical Contact:
Domain Administrator dns-admin@google.com
Google, Inc.
1600 Amphitheatre Parkway
Mountain View
CA 94043
US
Phone: +1 650 318 0200 (voice) +1 650 618 1499 (fax)

Record last updated on 11-May-2009.
Record expires on 07-Jun-2010.
Record created on 07-Jun-1999.
Record status: Active
Registrar of record: eMarkMonitor, Inc.
ReferralServer: whois://whois.markmonitor.com
Referral URL: http://www.markmonitor.com

Domain servers in listed order:
ns1.google.com
ns2.google.com
ns3.google.com
ns4.google.com

Owner and Administrative Contact information for domains
registered in .nu is available upon request from support@nic.nu

Copyright by .NU Domain Ltd - http://www.nunames.nu
------------------------------------------------------------------------
Database last updated: 2010-Jan-08 15:01:41 GMT
------------------------------------------------------------------------

0 comments on commit bd53e07

Please sign in to comment.