whois 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
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