Skip to content
Browse files

Updated whois.nic.ec parser to the new response format

  • Loading branch information...
1 parent 3b5cb60 commit 713bc39e281e130ea18ea3739e533f3b43a4902a @weppos committed Feb 24, 2014
View
2 CHANGELOG.md
@@ -11,6 +11,8 @@
- FIXED: whois.nic.cd crashes because the registry is no longer returning a status.
+- CHANGED: Updated whois.nic.ec parser to the new response format.
+
## Release 3.4.4
View
57 lib/whois/record/parser/whois.nic.ec.rb
@@ -14,63 +14,12 @@ module Whois
class Record
class Parser
- #
- # = whois.nic.ec parser
- #
# Parser for the whois.nic.ec 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.
+ # @see Whois::Record::Parser::Example
+ # The Example parser for the list of all available methods.
#
- class WhoisNicEc < Base
-
- property_supported :status do
- if available?
- :available
- else
- :registered
- end
- end
-
- property_supported :available? do
- !!(content_for_scanner =~ /Domain not registered/)
- end
-
- property_supported :registered? do
- !available?
- end
-
-
- property_supported :created_on do
- if content_for_scanner =~ /^Fecha de Creacion:(.*)\n/
- Time.parse($1)
- end
- end
-
- property_supported :updated_on do
- if content_for_scanner =~ /^Ultima Modificacion:(.*)\n/
- Time.parse($1)
- end
- end
-
- property_supported :expires_on do
- if content_for_scanner =~ /^Fecha de Expiracion:(.*)\n/
- Time.parse($1)
- end
- end
-
-
- property_supported :nameservers do
- if content_for_scanner =~ /Servidores de dominio \(Name Servers\)\n((.+\n)+)\n/
- $1.split("\n").map do |name|
- Record::Nameserver.new(:name => name)
- end
- end
- end
-
+ class WhoisNicEc < BaseCocca
end
end
View
11 spec/fixtures/responses/whois.nic.ec/status_available.expected
@@ -1,3 +1,10 @@
+#domain
+ %s == "u34jedzcq.ec"
+
+#domain_id
+ %s %ERROR{AttributeNotSupported}
+
+
#status
%s == :available
@@ -18,6 +25,10 @@
%s == nil
+#registrar
+ %s == nil
+
+
#nameservers
%s %CLASS{array}
%s == []
View
20 spec/fixtures/responses/whois.nic.ec/status_available.txt
@@ -1 +1,19 @@
-Dominio no existe / Domain not registered
+
+
+Los datos detallados a continuación por NIC.EC es informacion publica cuyo proposito es
+unicamente informativo que sirve para la obtencion de la informacion acerca de o
+relacionado con los registros de un Nombre de Dominio. Los datos se muestran de acuerdo
+a los datos de NIC.EC en la ultima actualizacion de su base de datos. Al realizar una
+busqueda de WHOIS de un dominio, usted declara y acepta que los datos seran utilizados
+solo para fines legales y que no utilizara los datos para envios masivos no solicitados
+de correo electronico o para publicidad o fines comerciales no solicitados.
+
+
+
+Domain Information
+Query: u34jedzcq.ec
+Status: Not Registered
+
+
+
+
View
29 spec/fixtures/responses/whois.nic.ec/status_registered.expected
@@ -1,3 +1,10 @@
+#domain
+ %s == "google.as"
+
+#domain_id
+ %s %ERROR{AttributeNotSupported}
+
+
#status
%s == :registered
@@ -10,25 +17,41 @@
#created_on
%s %CLASS{time}
- %s %TIME{2003-10-16}
+ %s %TIME{2003-10-16 00:00:00 UTC}
#updated_on
%s %CLASS{time}
- %s %TIME{2009-09-15}
+ %s %TIME{2013-09-17 00:00:00 UTC}
#expires_on
%s %CLASS{time}
- %s %TIME{2010-10-16}
+ %s %TIME{2014-10-16 00:00:00 UTC}
+
+
+#registrar
+ %s %CLASS{registrar}
+ %s.id == nil
+ %s.name == "MarkMonitor Inc."
+ %s.organization == nil
+ %s.url == nil
#nameservers
%s %CLASS{array}
%s %SIZE{4}
%s[0] %CLASS{nameserver}
%s[0].name == "ns1.google.com"
+ %s[0].ipv4 == nil
+ %s[0].ipv6 == nil
%s[1] %CLASS{nameserver}
%s[1].name == "ns2.google.com"
+ %s[1].ipv4 == nil
+ %s[1].ipv6 == nil
%s[2] %CLASS{nameserver}
%s[2].name == "ns3.google.com"
+ %s[2].ipv4 == nil
+ %s[2].ipv6 == nil
%s[3] %CLASS{nameserver}
%s[3].name == "ns4.google.com"
+ %s[3].ipv4 == nil
+ %s[3].ipv6 == nil
View
93 spec/fixtures/responses/whois.nic.ec/status_registered.txt
@@ -1,40 +1,57 @@
-Dominio: google.ec
-
-Fecha de Creacion: 16/Oct/2003
-Fecha de Expiracion: 16/Oct/2010
-Ultima Modificacion: 15/Sep/2009
-
-Registrante (Registrant)
-Organizacion: Google Inc.
-Pais: United States
-
-Contacto Administrativo (Administrative Contact)
-Organizacion: MarkMonitor
-Pais: United States
-
-Contacto Tecnico (Technical Contact)
-Organizacion: MarkMonitor
-Pais: United States
-
-Contacto Facturacion (Billing Contact)
-Organizacion: MarkMonitor
-Pais: United States
-
-Servidores de dominio (Name Servers)
-ns1.google.com
-ns2.google.com
-ns3.google.com
-ns4.google.com
-
-Mas informacion en: http://www.nic.ec
-More information in: http://www.nic.ec/eng
-
-Los datos detallados a continuación por NIC.EC es informacion publica cuyo proposito es
-unicamente informativo que sirve para la obtencion de la informacion acerca de o
-relacionado con los registros de un Nombre de Dominio. Los datos se muestran de acuerdo
-a los datos de NIC.EC en la ultima actualizacion de su base de datos. Al realizar una
-busqueda de WHOIS de un dominio, usted declara y acepta que los datos seran utilizados
-solo para fines legales y que no utilizara los datos para envios masivos no solicitados
-de correo electronico o para publicidad o fines comerciales no solicitados.
+
+Los datos detallados a continuación por NIC.EC es informacion publica cuyo proposito es
+unicamente informativo que sirve para la obtencion de la informacion acerca de o
+relacionado con los registros de un Nombre de Dominio. Los datos se muestran de acuerdo
+a los datos de NIC.EC en la ultima actualizacion de su base de datos. Al realizar una
+busqueda de WHOIS de un dominio, usted declara y acepta que los datos seran utilizados
+solo para fines legales y que no utilizara los datos para envios masivos no solicitados
+de correo electronico o para publicidad o fines comerciales no solicitados.
+
+
+
+Domain Information
+Query: google.ec
+Created: 16 Oct 2003
+Modified: 17 Sep 2013
+Expires: 16 Oct 2014
+Name Servers:
+ ns1.google.com
+ ns2.google.com
+ ns3.google.com
+ ns4.google.com
+
+Registrar Information
+Registrar Name: MarkMonitor Inc.
+Registration URL: www.markmonitor.com
+Address: 391 N. Ancestor Place
+Boise, ID 83704
+Country: US
+
+
+
+
+Registrant:
+Name: Rose Hagan
+Organisation: Google Inc.
+Address:
+ 2400 E. Bayshore Pkwy
+ Mountain View, CA 94043
+ US
+Email Address: dns-admin@google.com
+Phone Number: 1-6503300100
+Fax Number: 1-6503300100
+
+
+Admin Contact:
+Name: Domain Provisioning
+Organisation: MarkMonitor
+Address:
+ 10400 Overland Rd.,PMB 155
+ Boise, Idaho 83709
+ US
+Email Address: ccops@markmonitor.com
+Phone Number: 1208-3895740
+Fax Number: 1208-3895799
+
View
15 spec/whois/record/parser/responses/whois.nic.ec/status_available_spec.rb
@@ -21,6 +21,16 @@
described_class.new(part)
end
+ describe "#domain" do
+ it do
+ expect(subject.domain).to eq("u34jedzcq.ec")
+ end
+ end
+ describe "#domain_id" do
+ it do
+ expect { subject.domain_id }.to raise_error(Whois::AttributeNotSupported)
+ end
+ end
describe "#status" do
it do
expect(subject.status).to eq(:available)
@@ -51,6 +61,11 @@
expect(subject.expires_on).to eq(nil)
end
end
+ describe "#registrar" do
+ it do
+ expect(subject.registrar).to eq(nil)
+ end
+ end
describe "#nameservers" do
it do
expect(subject.nameservers).to be_a(Array)
View
33 spec/whois/record/parser/responses/whois.nic.ec/status_registered_spec.rb
@@ -21,6 +21,16 @@
described_class.new(part)
end
+ describe "#domain" do
+ it do
+ expect(subject.domain).to eq("google.as")
+ end
+ end
+ describe "#domain_id" do
+ it do
+ expect { subject.domain_id }.to raise_error(Whois::AttributeNotSupported)
+ end
+ end
describe "#status" do
it do
expect(subject.status).to eq(:registered)
@@ -39,19 +49,28 @@
describe "#created_on" do
it do
expect(subject.created_on).to be_a(Time)
- expect(subject.created_on).to eq(Time.parse("2003-10-16"))
+ expect(subject.created_on).to eq(Time.parse("2003-10-16 00:00:00 UTC"))
end
end
describe "#updated_on" do
it do
expect(subject.updated_on).to be_a(Time)
- expect(subject.updated_on).to eq(Time.parse("2009-09-15"))
+ expect(subject.updated_on).to eq(Time.parse("2013-09-17 00:00:00 UTC"))
end
end
describe "#expires_on" do
it do
expect(subject.expires_on).to be_a(Time)
- expect(subject.expires_on).to eq(Time.parse("2010-10-16"))
+ expect(subject.expires_on).to eq(Time.parse("2014-10-16 00:00:00 UTC"))
+ end
+ end
+ describe "#registrar" do
+ it do
+ expect(subject.registrar).to be_a(Whois::Record::Registrar)
+ expect(subject.registrar.id).to eq(nil)
+ expect(subject.registrar.name).to eq("MarkMonitor Inc.")
+ expect(subject.registrar.organization).to eq(nil)
+ expect(subject.registrar.url).to eq(nil)
end
end
describe "#nameservers" do
@@ -60,12 +79,20 @@
expect(subject.nameservers).to have(4).items
expect(subject.nameservers[0]).to be_a(Whois::Record::Nameserver)
expect(subject.nameservers[0].name).to eq("ns1.google.com")
+ expect(subject.nameservers[0].ipv4).to eq(nil)
+ expect(subject.nameservers[0].ipv6).to eq(nil)
expect(subject.nameservers[1]).to be_a(Whois::Record::Nameserver)
expect(subject.nameservers[1].name).to eq("ns2.google.com")
+ expect(subject.nameservers[1].ipv4).to eq(nil)
+ expect(subject.nameservers[1].ipv6).to eq(nil)
expect(subject.nameservers[2]).to be_a(Whois::Record::Nameserver)
expect(subject.nameservers[2].name).to eq("ns3.google.com")
+ expect(subject.nameservers[2].ipv4).to eq(nil)
+ expect(subject.nameservers[2].ipv6).to eq(nil)
expect(subject.nameservers[3]).to be_a(Whois::Record::Nameserver)
expect(subject.nameservers[3].name).to eq("ns4.google.com")
+ expect(subject.nameservers[3].ipv4).to eq(nil)
+ expect(subject.nameservers[3].ipv6).to eq(nil)
end
end
end

0 comments on commit 713bc39

Please sign in to comment.
Something went wrong with that request. Please try again.