whois 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. data/CHANGELOG.rdoc +39 -16
  2. data/Manifest +6 -1
  3. data/lib/whois/answer/parser.rb +1 -1
  4. data/lib/whois/answer/parser/NOTES.txt +11 -2
  5. data/lib/whois/answer/parser/base.rb +1 -1
  6. data/lib/whois/answer/parser/jobswhois.verisign-grs.com.rb +7 -3
  7. data/lib/whois/answer/parser/whois.adamsnames.tc.rb +2 -2
  8. data/lib/whois/answer/parser/whois.aeda.net.ae.rb +2 -2
  9. data/lib/whois/answer/parser/whois.aero.rb +9 -4
  10. data/lib/whois/answer/parser/whois.afilias-grs.info.rb +7 -2
  11. data/lib/whois/answer/parser/whois.afilias.info.rb +3 -3
  12. data/lib/whois/answer/parser/whois.biz.rb +7 -2
  13. data/lib/whois/answer/parser/whois.cat.rb +12 -2
  14. data/lib/whois/answer/parser/whois.cira.ca.rb +12 -4
  15. data/lib/whois/answer/parser/whois.crsnic.net.rb +9 -10
  16. data/lib/whois/answer/parser/whois.denic.de.rb +2 -4
  17. data/lib/whois/answer/parser/whois.dk-hostmaster.dk.rb +2 -2
  18. data/lib/whois/answer/parser/whois.domain-registry.nl.rb +10 -2
  19. data/lib/whois/answer/parser/whois.domainregistry.ie.rb +8 -3
  20. data/lib/whois/answer/parser/whois.dotmobiregistry.net.rb +7 -2
  21. data/lib/whois/answer/parser/whois.educause.edu.rb +10 -2
  22. data/lib/whois/answer/parser/whois.eu.org.rb +5 -2
  23. data/lib/whois/answer/parser/whois.eu.rb +16 -6
  24. data/lib/whois/answer/parser/whois.iana.org.rb +9 -4
  25. data/lib/whois/answer/parser/whois.isnic.is.rb +7 -2
  26. data/lib/whois/answer/parser/whois.meregistry.net.rb +2 -2
  27. data/lib/whois/answer/parser/whois.museum.rb +14 -4
  28. data/lib/whois/answer/parser/whois.nic-se.se.rb +5 -3
  29. data/lib/whois/answer/parser/whois.nic.ac.rb +2 -2
  30. data/lib/whois/answer/parser/whois.nic.asia.rb +9 -4
  31. data/lib/whois/answer/parser/whois.nic.cc.rb +7 -3
  32. data/lib/whois/answer/parser/whois.nic.cd.rb +10 -2
  33. data/lib/whois/answer/parser/whois.nic.ch.rb +10 -2
  34. data/lib/whois/answer/parser/whois.nic.coop.rb +7 -2
  35. data/lib/whois/answer/parser/whois.nic.fr.rb +7 -2
  36. data/lib/whois/answer/parser/whois.nic.gl.rb +10 -2
  37. data/lib/whois/answer/parser/whois.nic.gov.rb +5 -2
  38. data/lib/whois/answer/parser/whois.nic.hu.rb +26 -40
  39. data/lib/whois/answer/parser/whois.nic.im.rb +7 -2
  40. data/lib/whois/answer/parser/whois.nic.io.rb +5 -2
  41. data/lib/whois/answer/parser/whois.nic.it.rb +2 -4
  42. data/lib/whois/answer/parser/whois.nic.ly.rb +10 -2
  43. data/lib/whois/answer/parser/whois.nic.mu.rb +10 -2
  44. data/lib/whois/answer/parser/whois.nic.name.rb +5 -2
  45. data/lib/whois/answer/parser/whois.nic.nu.rb +9 -11
  46. data/lib/whois/answer/parser/whois.nic.tel.rb +2 -2
  47. data/lib/whois/answer/parser/whois.nic.tl.rb +10 -2
  48. data/lib/whois/answer/parser/whois.nic.travel.rb +7 -2
  49. data/lib/whois/answer/parser/whois.nic.tv.rb +4 -4
  50. data/lib/whois/answer/parser/whois.nic.uk.rb +19 -10
  51. data/lib/whois/answer/parser/whois.nic.us.rb +7 -2
  52. data/lib/whois/answer/parser/whois.nic.ve.rb +78 -0
  53. data/lib/whois/answer/parser/whois.norid.no.rb +2 -2
  54. data/lib/whois/answer/parser/whois.publicinterestregistry.net.rb +1 -1
  55. data/lib/whois/answer/parser/whois.register.bg.rb +10 -2
  56. data/lib/whois/answer/parser/whois.registro.br.rb +5 -2
  57. data/lib/whois/answer/parser/whois.registrypro.pro.rb +2 -2
  58. data/lib/whois/answer/parser/whois.ripe.net.rb +13 -2
  59. data/lib/whois/answer/parser/whois.ripn.net.rb +7 -2
  60. data/lib/whois/answer/parser/whois.rotld.ro.rb +7 -2
  61. data/lib/whois/answer/parser/whois.samoanic.ws.rb +10 -2
  62. data/lib/whois/answer/parser/whois.za.net.rb +10 -2
  63. data/lib/whois/answer/parser/whois.za.org.rb +10 -2
  64. data/lib/whois/server/adapters/afilias.rb +1 -1
  65. data/lib/whois/server/adapters/arpa.rb +1 -1
  66. data/lib/whois/server/adapters/base.rb +1 -1
  67. data/lib/whois/server/adapters/formatted.rb +1 -1
  68. data/lib/whois/server/adapters/none.rb +1 -1
  69. data/lib/whois/server/adapters/not_implemented.rb +1 -1
  70. data/lib/whois/server/adapters/standard.rb +1 -1
  71. data/lib/whois/server/adapters/web.rb +1 -1
  72. data/lib/whois/version.rb +1 -1
  73. data/test/answer/parser/jobswhois.verisign-grs.com_test.rb +15 -4
  74. data/test/answer/parser/whois.aero_test.rb +14 -1
  75. data/test/answer/parser/whois.afilias-grs.info_test.rb +91 -0
  76. data/test/answer/parser/whois.biz_test.rb +13 -0
  77. data/test/answer/parser/whois.cat_test.rb +13 -0
  78. data/test/answer/parser/whois.cira.ca_test.rb +14 -1
  79. data/test/answer/parser/whois.crsnic.net_test.rb +5 -5
  80. data/test/answer/parser/whois.denic.de_test.rb +6 -10
  81. data/test/answer/parser/whois.domain-registry.nl_test.rb +14 -1
  82. data/test/answer/parser/whois.domainregistry.ie_test.rb +13 -0
  83. data/test/answer/parser/whois.dotmobiregistry.net_test.rb +13 -0
  84. data/test/answer/parser/whois.educause.edu_test.rb +13 -0
  85. data/test/answer/parser/whois.eu.org_test.rb +7 -1
  86. data/test/answer/parser/whois.eu_test.rb +8 -1
  87. data/test/answer/parser/whois.iana.org_test.rb +15 -1
  88. data/test/answer/parser/whois.isnic.is_test.rb +13 -0
  89. data/test/answer/parser/whois.museum_test.rb +13 -0
  90. data/test/answer/parser/whois.nic.ac_test.rb +2 -2
  91. data/test/answer/parser/whois.nic.asia_test.rb +14 -1
  92. data/test/answer/parser/whois.nic.cc_test.rb +16 -5
  93. data/test/answer/parser/whois.nic.cd_test.rb +14 -1
  94. data/test/answer/parser/whois.nic.ch_test.rb +15 -2
  95. data/test/answer/parser/whois.nic.coop_test.rb +13 -0
  96. data/test/answer/parser/whois.nic.fr_test.rb +65 -0
  97. data/test/answer/parser/whois.nic.gl_test.rb +15 -2
  98. data/test/answer/parser/whois.nic.gov_test.rb +8 -2
  99. data/test/answer/parser/whois.nic.hu_test.rb +39 -32
  100. data/test/answer/parser/whois.nic.im_test.rb +14 -1
  101. data/test/answer/parser/whois.nic.io_test.rb +7 -1
  102. data/test/answer/parser/whois.nic.it_test.rb +3 -5
  103. data/test/answer/parser/whois.nic.ly_test.rb +15 -2
  104. data/test/answer/parser/whois.nic.mu_test.rb +26 -0
  105. data/test/answer/parser/whois.nic.name_test.rb +7 -1
  106. data/test/answer/parser/whois.nic.tl_test.rb +14 -1
  107. data/test/answer/parser/whois.nic.travel_test.rb +14 -1
  108. data/test/answer/parser/whois.nic.tv_test.rb +2 -4
  109. data/test/answer/parser/whois.nic.uk_test.rb +14 -1
  110. data/test/answer/parser/whois.nic.us_test.rb +14 -1
  111. data/test/answer/parser/whois.nic.ve_test.rb +72 -0
  112. data/test/answer/parser/whois.norid.no_test.rb +1 -1
  113. data/test/answer/parser/whois.publicinterestregistry.net_test.rb +3 -3
  114. data/test/answer/parser/whois.register.bg_test.rb +15 -2
  115. data/test/answer/parser/whois.registro.br_test.rb +7 -1
  116. data/test/answer/parser/whois.ripe.net_test.rb +65 -2
  117. data/test/answer/parser/whois.ripn.net_test.rb +27 -1
  118. data/test/answer/parser/whois.rotld.ro_test.rb +15 -2
  119. data/test/answer/parser/whois.samoanic.ws_test.rb +14 -1
  120. data/test/answer/parser/whois.za.net_test.rb +15 -2
  121. data/test/answer/parser/whois.za.org_test.rb +15 -2
  122. data/test/list_tld +1 -1
  123. data/test/server/adapters/none_test.rb +1 -1
  124. data/test/testcases/responses/whois.crsnic.net/{nameservers_with_nonameserver.txt → nameservers_with_no_nameserver.txt} +0 -0
  125. data/test/testcases/responses/whois.eu/nameservers_with_ip.txt +61 -0
  126. data/test/testcases/responses/whois.nic.ve/available.txt +10 -0
  127. data/test/testcases/responses/whois.nic.ve/registered.txt +48 -0
  128. data/test/testcases/responses/whois.registro.br/registered.txt +1 -1
  129. data/whois.gemspec +5 -5
  130. metadata +10 -3
data/CHANGELOG.rdoc CHANGED
@@ -1,6 +1,29 @@
1
1
  = Changelog
2
2
 
3
3
 
4
+ == Release 1.0.6
5
+
6
+ * ADDED: Added simple .ve TLD parser (whois.nic.ve).
7
+
8
+ * ADDED: Added support for 'nameservers' property for all existing parsers.
9
+
10
+ * FIXED: With some .eu domains, whois.eu parser returns invalid values for nameservers.
11
+
12
+ * CHANGED: jobswhois.verisign-grs.com now correctly raises PropertyNotSupported when a property is not supported.
13
+
14
+ * CHANGED: whois.crsnic.net now correctly raises PropertyNotSupported when a property is not supported.
15
+
16
+ * CHANGED: whois.denic.de now correctly raises PropertyNotSupported when a property is not supported.
17
+
18
+ * CHANGED: whois.nic.cc now correctly raises PropertyNotSupported when a property is not supported.
19
+
20
+ * CHANGED: whois.nic.hu now correctly raises PropertyNotSupported when a property is not supported.
21
+
22
+ * CHANGED: whois.nic.it now correctly raises PropertyNotSupported when a property is not supported.
23
+
24
+ * CHANGED: whois.nic.tv now correctly raises PropertyNotSupported when a property is not supported.
25
+
26
+
4
27
  == Release 1.0.5
5
28
 
6
29
  * SERVER: Sync definitions with Debian whois 5.0.1.
@@ -24,10 +47,10 @@
24
47
 
25
48
  == Release 1.0.4
26
49
 
27
- * FIXED: Normalize 'nameservers' property return value. Always return an Array even if there's no nameserver.
28
-
29
50
  * ADDED: Added Symbol.to_proc core extension to ensure compatibility with Ruby 1.8.6.
30
51
 
52
+ * FIXED: Normalize 'nameservers' property return value. Always return an Array even if there's no nameserver.
53
+
31
54
  * CHANGED: Suppress Japanese output for the .js TLD [axic]
32
55
 
33
56
 
@@ -39,18 +62,18 @@
39
62
 
40
63
  * SERVER: Updated web address for the .co TLD (closes #13)
41
64
 
42
- * FIXED: The whois.nic.it parser extracts the wrong Contact country_code property [axic]
43
-
44
- * FIXED: With some .de domains, whois.denic.de parser returns invalid values for nameservers (closes #14)
45
-
46
- * FIXED: whois.crsnic.net crashes with reserved IANA domains (ex y.com)
47
-
48
65
  * ADDED: Support for 'Contact#zip' property for the whois.nic.it parser [axic]
49
66
 
50
67
  * ADDED: Support for 'nameservers' property for the whois.adamsnames.tc parser.
51
68
 
52
69
  * ADDED: Compatibility with semver.org
53
70
 
71
+ * FIXED: The whois.nic.it parser extracts the wrong Contact country_code property [axic]
72
+
73
+ * FIXED: With some .de domains, whois.denic.de parser returns invalid values for nameservers (closes #14)
74
+
75
+ * FIXED: whois.crsnic.net crashes with reserved IANA domains (ex y.com)
76
+
54
77
 
55
78
  == Release 1.0.2
56
79
 
@@ -80,14 +103,6 @@
80
103
 
81
104
  * SERVER: .dk TLD server requires --show-handles option (closes REDMINE-426)
82
105
 
83
- * FIXED: Whois hosts containing a - are not correctly converted into a Ruby class, ex. whois.domain-registry.nl (closes REDMINE-389)
84
-
85
- * FIXED: In case of exception, the CLI doesn't exit nicely (closes REDMINE-333)
86
-
87
- * FIXED: Some tests are not compatible with Ruby 1.9
88
-
89
- * FIXED: Flagged created_on and expires_on properties as not supported for .de TLD.
90
-
91
106
  * ADDED: Simple .at TLD parser.
92
107
 
93
108
  * ADDED: Simple .be TLD parser.
@@ -180,6 +195,14 @@
180
195
 
181
196
  * ADDED: Whois::WebInterfaceError now exposes #url attribute.
182
197
 
198
+ * FIXED: Whois hosts containing a - are not correctly converted into a Ruby class, ex. whois.domain-registry.nl (closes REDMINE-389)
199
+
200
+ * FIXED: In case of exception, the CLI doesn't exit nicely (closes REDMINE-333)
201
+
202
+ * FIXED: Some tests are not compatible with Ruby 1.9
203
+
204
+ * FIXED: Flagged created_on and expires_on properties as not supported for .de TLD.
205
+
183
206
  * CHANGED: All not supported properties now raise a PropertyNotSupported error instead of returning nil.
184
207
 
185
208
  * CHANGED: Depending on where you ask for a property, the library now returns the most expected value according to property status.
data/Manifest CHANGED
@@ -68,6 +68,7 @@ lib/whois/answer/parser/whois.nic.travel.rb
68
68
  lib/whois/answer/parser/whois.nic.tv.rb
69
69
  lib/whois/answer/parser/whois.nic.uk.rb
70
70
  lib/whois/answer/parser/whois.nic.us.rb
71
+ lib/whois/answer/parser/whois.nic.ve.rb
71
72
  lib/whois/answer/parser/whois.norid.no.rb
72
73
  lib/whois/answer/parser/whois.publicinterestregistry.net.rb
73
74
  lib/whois/answer/parser/whois.register.bg.rb
@@ -149,6 +150,7 @@ test/answer/parser/whois.nic.travel_test.rb
149
150
  test/answer/parser/whois.nic.tv_test.rb
150
151
  test/answer/parser/whois.nic.uk_test.rb
151
152
  test/answer/parser/whois.nic.us_test.rb
153
+ test/answer/parser/whois.nic.ve_test.rb
152
154
  test/answer/parser/whois.norid.no_test.rb
153
155
  test/answer/parser/whois.publicinterestregistry.net_test.rb
154
156
  test/answer/parser/whois.register.bg_test.rb
@@ -221,7 +223,7 @@ test/testcases/responses/whois.cira.ca/available.txt
221
223
  test/testcases/responses/whois.cira.ca/registered.txt
222
224
  test/testcases/responses/whois.crsnic.net/MULTIPLE.txt
223
225
  test/testcases/responses/whois.crsnic.net/available.txt
224
- test/testcases/responses/whois.crsnic.net/nameservers_with_nonameserver.txt
226
+ test/testcases/responses/whois.crsnic.net/nameservers_with_no_nameserver.txt
225
227
  test/testcases/responses/whois.crsnic.net/registered.txt
226
228
  test/testcases/responses/whois.denic.de/1-10-0_available.txt
227
229
  test/testcases/responses/whois.denic.de/1-10-0_registered.txt
@@ -242,6 +244,7 @@ test/testcases/responses/whois.educause.edu/registered.txt
242
244
  test/testcases/responses/whois.eu.org/available.txt
243
245
  test/testcases/responses/whois.eu.org/registered.txt
244
246
  test/testcases/responses/whois.eu/available.txt
247
+ test/testcases/responses/whois.eu/nameservers_with_ip.txt
245
248
  test/testcases/responses/whois.eu/registered.txt
246
249
  test/testcases/responses/whois.iana.org/MULTIPLE.txt
247
250
  test/testcases/responses/whois.iana.org/available.txt
@@ -317,6 +320,8 @@ test/testcases/responses/whois.nic.uk/invalid.txt
317
320
  test/testcases/responses/whois.nic.uk/registered.txt
318
321
  test/testcases/responses/whois.nic.us/available.txt
319
322
  test/testcases/responses/whois.nic.us/registered.txt
323
+ test/testcases/responses/whois.nic.ve/available.txt
324
+ test/testcases/responses/whois.nic.ve/registered.txt
320
325
  test/testcases/responses/whois.norid.no/available.txt
321
326
  test/testcases/responses/whois.norid.no/registered.txt
322
327
  test/testcases/responses/whois.publicinterestregistry.net/available.txt
@@ -26,7 +26,7 @@ module Whois
26
26
  :disclaimer,
27
27
  :domain, :domain_id,
28
28
  :referral_whois, :referral_url,
29
- :status, :registered?, :available?,
29
+ :status, :available?, :registered?,
30
30
  :created_on, :updated_on, :expires_on,
31
31
  :registrar, :registrant, :admin, :technical,
32
32
  :nameservers,
@@ -1,3 +1,12 @@
1
1
  .us == .biz == .travel
2
- .mobi == .info (afilias)
3
- (afilias)
2
+
3
+ == afilias
4
+
5
+ whois.dotmobyregistry.net (.mobi)
6
+ whois.afilias.info (.info)
7
+ whois.afilias-grs.info (.bz, .gi, .hn, .lc, .mn, .sc, .vc)
8
+ whois.aero (.aero)
9
+
10
+
11
+ whois.museum (.museum)
12
+ whois.cat (.cat)
@@ -165,7 +165,7 @@ module Whois
165
165
  raise PropertyNotSupported
166
166
  end
167
167
  end
168
-
168
+
169
169
  # Registers a <tt>property</tt> as <tt>:supported</tt>
170
170
  # and defines a method with the content of the block.
171
171
  #
@@ -39,9 +39,7 @@ module Whois
39
39
  node("Domain Name") { |raw| raw.downcase }
40
40
  end
41
41
 
42
- property_supported :domain_id do
43
- nil
44
- end
42
+ property_not_supported :domain_id
45
43
 
46
44
 
47
45
  property_supported :referral_whois do
@@ -86,6 +84,12 @@ module Whois
86
84
  end
87
85
 
88
86
 
87
+ property_supported :nameservers do
88
+ @nameservers ||= node("Name Server") { |values| [*values].map(&:downcase) }
89
+ @nameservers ||= []
90
+ end
91
+
92
+
89
93
  protected
90
94
 
91
95
  def parse
@@ -63,7 +63,7 @@ module Whois
63
63
  end
64
64
 
65
65
  end
66
-
66
+
67
67
  end
68
68
  end
69
- end
69
+ end
@@ -59,7 +59,7 @@ module Whois
59
59
  end
60
60
 
61
61
  end
62
-
62
+
63
63
  end
64
64
  end
65
- end
65
+ end
@@ -54,21 +54,26 @@ module Whois
54
54
  Time.parse($1)
55
55
  end
56
56
  end
57
-
57
+
58
58
  property_supported :updated_on do
59
59
  @updated_on ||= if content_for_scanner =~ /Updated On:(.*?)\n+/
60
60
  Time.parse($1)
61
61
  end
62
62
  end
63
-
63
+
64
64
  property_supported :expires_on do
65
65
  @expires_on ||= if content_for_scanner =~ /Expires On:(.*?)\n+/
66
66
  Time.parse($1)
67
67
  end
68
68
  end
69
69
 
70
+
71
+ property_supported :nameservers do
72
+ @nameservers ||= content_for_scanner.scan(/Name Server:([^\s]*)\n/).flatten.map(&:downcase)
73
+ end
74
+
70
75
  end
71
-
76
+
72
77
  end
73
78
  end
74
- end
79
+ end
@@ -65,8 +65,13 @@ module Whois
65
65
  end
66
66
  end
67
67
 
68
+
69
+ property_supported :nameservers do
70
+ @nameservers ||= content_for_scanner.scan(/Name Server:([^\s]*)\n/).flatten.map(&:downcase)
71
+ end
72
+
68
73
  end
69
-
74
+
70
75
  end
71
76
  end
72
- end
77
+ end
@@ -67,11 +67,11 @@ module Whois
67
67
 
68
68
 
69
69
  property_supported :nameservers do
70
- @nameservers ||= content_for_scanner.scan(/Name Server:([^ ]*?)\n/).flatten.map(&:downcase)
70
+ @nameservers ||= content_for_scanner.scan(/Name Server:([^\s]*)\n/).flatten.map(&:downcase)
71
71
  end
72
72
 
73
73
  end
74
-
74
+
75
75
  end
76
76
  end
77
- end
77
+ end
@@ -65,8 +65,13 @@ module Whois
65
65
  end
66
66
  end
67
67
 
68
+
69
+ property_supported :nameservers do
70
+ @nameservers ||= content_for_scanner.scan(/Name Server:\s+(.*)\n/).flatten.map(&:downcase)
71
+ end
72
+
68
73
  end
69
-
74
+
70
75
  end
71
76
  end
72
- end
77
+ end
@@ -67,8 +67,18 @@ module Whois
67
67
  end
68
68
  end
69
69
 
70
+ # Nameservers are listed in the following formats:
71
+ #
72
+ # Name Server: dns2.gencat.cat 83.247.132.4
73
+ # Name Server: dns.gencat.net
74
+ #
75
+ # In both cases, always return only the name.
76
+ property_supported :nameservers do
77
+ @nameservers ||= content_for_scanner.scan(/Name Server:\s+(.*)\n/).flatten.map { |value| value.split(" ").first }
78
+ end
79
+
70
80
  end
71
-
81
+
72
82
  end
73
83
  end
74
- end
84
+ end
@@ -57,21 +57,29 @@ module Whois
57
57
  Time.parse($1)
58
58
  end
59
59
  end
60
-
60
+
61
61
  property_supported :updated_on do
62
62
  @updated_on ||= if content_for_scanner =~ /Updated date:\s+(.*?)\n/
63
63
  Time.parse($1)
64
64
  end
65
65
  end
66
-
66
+
67
67
  property_supported :expires_on do
68
68
  @expires_on ||= if content_for_scanner =~ /Renewal date:\s+(.*?)\n/
69
69
  Time.parse($1)
70
70
  end
71
71
  end
72
72
 
73
+
74
+ property_supported :nameservers do
75
+ @nameservers ||= if content_for_scanner =~ /Name servers:\n((?:\s+([^\s]+)\s+([^\s]+)\n)+)/
76
+ $1.split("\n").map { |value| value.split(" ").first }
77
+ end
78
+ @nameservers ||= []
79
+ end
80
+
73
81
  end
74
-
82
+
75
83
  end
76
84
  end
77
- end
85
+ end
@@ -39,9 +39,8 @@ module Whois
39
39
  node("Domain Name") { |raw| raw.downcase }
40
40
  end
41
41
 
42
- property_supported :domain_id do
43
- nil
44
- end
42
+ property_not_supported :domain_id
43
+
45
44
 
46
45
 
47
46
  property_supported :referral_whois do
@@ -79,6 +78,13 @@ module Whois
79
78
  end
80
79
 
81
80
 
81
+ property_supported :registrar do
82
+ # Return nil because when the response contains more than one registrar section
83
+ # the response can be messy. See, for instance, the Verisign response for google.com.
84
+ nil
85
+ end
86
+
87
+
82
88
  property_supported :nameservers do
83
89
  @nameservers ||= node("Name Server") do |values|
84
90
  [*values].map do |value|
@@ -89,13 +95,6 @@ module Whois
89
95
  end
90
96
 
91
97
 
92
- property_supported :registrar do
93
- # Return nil because when the response contains more than one registrar section
94
- # the response can be messy. See, for instance, the Verisign response for google.com.
95
- nil
96
- end
97
-
98
-
99
98
  protected
100
99
 
101
100
  def parse
@@ -32,9 +32,7 @@ module Whois
32
32
  node("Domain")
33
33
  end
34
34
 
35
- property_supported :domain_id do
36
- nil
37
- end
35
+ property_not_supported :domain_id
38
36
 
39
37
 
40
38
  property_supported :status do
@@ -98,7 +96,7 @@ module Whois
98
96
  @nameservers ||= []
99
97
  end
100
98
 
101
-
99
+
102
100
  protected
103
101
 
104
102
  def parse
@@ -69,7 +69,7 @@ module Whois
69
69
  end
70
70
 
71
71
  end
72
-
72
+
73
73
  end
74
74
  end
75
- end
75
+ end
@@ -65,8 +65,16 @@ module Whois
65
65
 
66
66
  property_not_supported :expires_on
67
67
 
68
+
69
+ property_supported :nameservers do
70
+ @nameservers ||= if content_for_scanner =~ /Domain nameservers:\n((.+\n)+)\n/
71
+ $1.split("\n").map(&:strip)
72
+ end
73
+ @nameservers ||= []
74
+ end
75
+
68
76
  end
69
-
77
+
70
78
  end
71
79
  end
72
- end
80
+ end