whois 1.3.10 → 1.3.11

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 (85) hide show
  1. data/CHANGELOG.rdoc +48 -0
  2. data/lib/whois/answer/parser/base.rb +2 -0
  3. data/lib/whois/answer/parser/jobswhois.verisign-grs.com.rb +2 -2
  4. data/lib/whois/answer/parser/whois.adamsnames.tc.rb +2 -2
  5. data/lib/whois/answer/parser/whois.aeda.net.ae.rb +11 -3
  6. data/lib/whois/answer/parser/whois.aero.rb +13 -7
  7. data/lib/whois/answer/parser/whois.afilias-grs.info.rb +2 -2
  8. data/lib/whois/answer/parser/whois.afilias.info.rb +3 -3
  9. data/lib/whois/answer/parser/whois.ai.rb +3 -3
  10. data/lib/whois/answer/parser/whois.audns.net.au.rb +10 -4
  11. data/lib/whois/answer/parser/whois.biz.rb +2 -2
  12. data/lib/whois/answer/parser/whois.cat.rb +8 -2
  13. data/lib/whois/answer/parser/whois.cctld.uz.rb +8 -2
  14. data/lib/whois/answer/parser/whois.cnnic.cn.rb +2 -2
  15. data/lib/whois/answer/parser/whois.co.ug.rb +9 -1
  16. data/lib/whois/answer/parser/whois.crsnic.net.rb +3 -3
  17. data/lib/whois/answer/parser/whois.denic.de.rb +15 -1
  18. data/lib/whois/answer/parser/whois.dk-hostmaster.dk.rb +10 -4
  19. data/lib/whois/answer/parser/whois.dns.be.rb +10 -3
  20. data/lib/whois/answer/parser/whois.dns.lu.rb +8 -2
  21. data/lib/whois/answer/parser/whois.dns.pt.rb +8 -2
  22. data/lib/whois/answer/parser/whois.domainregistry.ie.rb +6 -2
  23. data/lib/whois/answer/parser/whois.dot.tk.rb +2 -2
  24. data/lib/whois/answer/parser/whois.dotmobiregistry.net.rb +2 -2
  25. data/lib/whois/answer/parser/whois.educause.edu.rb +3 -3
  26. data/lib/whois/answer/parser/whois.eu.org.rb +3 -3
  27. data/lib/whois/answer/parser/whois.eu.rb +3 -3
  28. data/lib/whois/answer/parser/whois.ficora.fi.rb +2 -2
  29. data/lib/whois/answer/parser/whois.gg.rb +2 -2
  30. data/lib/whois/answer/parser/whois.hkirc.hk.rb +2 -2
  31. data/lib/whois/answer/parser/whois.in.ua.rb +8 -2
  32. data/lib/whois/answer/parser/whois.isnic.is.rb +3 -3
  33. data/lib/whois/answer/parser/whois.je.rb +2 -2
  34. data/lib/whois/answer/parser/whois.jprs.jp.rb +11 -4
  35. data/lib/whois/answer/parser/whois.museum.rb +2 -2
  36. data/lib/whois/answer/parser/whois.net.ua.rb +8 -2
  37. data/lib/whois/answer/parser/whois.nic-se.se.rb +11 -5
  38. data/lib/whois/answer/parser/whois.nic.ac.rb +4 -2
  39. data/lib/whois/answer/parser/whois.nic.ag.rb +2 -2
  40. data/lib/whois/answer/parser/whois.nic.am.rb +10 -4
  41. data/lib/whois/answer/parser/whois.nic.as.rb +2 -2
  42. data/lib/whois/answer/parser/whois.nic.asia.rb +10 -4
  43. data/lib/whois/answer/parser/whois.nic.at.rb +2 -2
  44. data/lib/whois/answer/parser/whois.nic.cc.rb +4 -4
  45. data/lib/whois/answer/parser/whois.nic.cd.rb +3 -3
  46. data/lib/whois/answer/parser/whois.nic.coop.rb +10 -4
  47. data/lib/whois/answer/parser/whois.nic.dz.rb +2 -2
  48. data/lib/whois/answer/parser/whois.nic.fr.rb +8 -4
  49. data/lib/whois/answer/parser/whois.nic.gs.rb +1 -1
  50. data/lib/whois/answer/parser/whois.nic.ht.rb +10 -3
  51. data/lib/whois/answer/parser/whois.nic.hu.rb +2 -0
  52. data/lib/whois/answer/parser/whois.nic.im.rb +2 -2
  53. data/lib/whois/answer/parser/whois.nic.io.rb +2 -2
  54. data/lib/whois/answer/parser/whois.nic.kz.rb +7 -1
  55. data/lib/whois/answer/parser/whois.nic.la.rb +8 -2
  56. data/lib/whois/answer/parser/whois.nic.ly.rb +3 -3
  57. data/lib/whois/answer/parser/whois.nic.mu.rb +8 -6
  58. data/lib/whois/answer/parser/whois.nic.nu.rb +9 -3
  59. data/lib/whois/answer/parser/whois.nic.org.uy.rb +8 -2
  60. data/lib/whois/answer/parser/whois.nic.sn.rb +2 -1
  61. data/lib/whois/answer/parser/whois.nic.st.rb +2 -2
  62. data/lib/whois/answer/parser/whois.nic.tel.rb +2 -2
  63. data/lib/whois/answer/parser/whois.nic.tl.rb +2 -2
  64. data/lib/whois/answer/parser/whois.nic.travel.rb +11 -3
  65. data/lib/whois/answer/parser/whois.nic.tv.rb +2 -2
  66. data/lib/whois/answer/parser/whois.nic.uk.rb +20 -6
  67. data/lib/whois/answer/parser/whois.nic.us.rb +2 -2
  68. data/lib/whois/answer/parser/whois.nic.ve.rb +8 -2
  69. data/lib/whois/answer/parser/whois.norid.no.rb +3 -3
  70. data/lib/whois/answer/parser/whois.publicinterestregistry.net.rb +5 -2
  71. data/lib/whois/answer/parser/whois.register.bg.rb +10 -4
  72. data/lib/whois/answer/parser/whois.registry.in.rb +11 -3
  73. data/lib/whois/answer/parser/whois.registrypro.pro.rb +2 -2
  74. data/lib/whois/answer/parser/whois.ripe.net.rb +2 -2
  75. data/lib/whois/answer/parser/whois.ripn.net.rb +3 -3
  76. data/lib/whois/answer/parser/whois.rotld.ro.rb +10 -4
  77. data/lib/whois/answer/parser/whois.samoanic.ws.rb +2 -2
  78. data/lib/whois/answer/parser/whois.srs.net.nz.rb +13 -6
  79. data/lib/whois/answer/parser/whois.tonic.to.rb +8 -6
  80. data/lib/whois/answer/parser/whois.usp.ac.fj.rb +2 -2
  81. data/lib/whois/answer/parser/whois.za.net.rb +3 -3
  82. data/lib/whois/answer/parser/whois.za.org.rb +4 -4
  83. data/lib/whois/version.rb +1 -1
  84. data/whois.gemspec +3 -3
  85. metadata +4 -4
@@ -1,5 +1,53 @@
1
1
  = Changelog
2
2
 
3
+ == Release 1.3.11
4
+
5
+ * CHANGED: Standardized #status property for the following parsers (#5)
6
+ * whois.aero
7
+ * whois.aeda.net.ae
8
+ * whois.audns.net.au
9
+ * whois.cat
10
+ * whois.cctld.uz
11
+ * whois.co.ug
12
+ * whois.denic.de
13
+ * whois.dk-hostmaster.dk
14
+ * whois.dns.be
15
+ * whois.dns.lu
16
+ * whois.dns.pt
17
+ * whois.domainregistry.ie
18
+ * whois.in.ua
19
+ * whois.jprs.jp
20
+ * whois.net.ua
21
+ * whois.nic-se.se
22
+ * whois.nic.am
23
+ * whois.nic.asia
24
+ * whois.nic.at
25
+ * whois.nic.coop
26
+ * whois.nic.fr
27
+ * whois.nic.ht
28
+ * whois.nic.kz
29
+ * whois.nic.la
30
+ * whois.nic.mu
31
+ * whois.nic.nu
32
+ * whois.nic.org.uy
33
+ * whois.nic.travel
34
+ * whois.nic.uk
35
+ * whois.nic.ve
36
+ * whois.norid.no
37
+ * whois.register.bg
38
+ * whois.registry.in
39
+ * whois.rotld.ro
40
+ * whois.srs.net.nz
41
+
42
+ * FIXED: Property cache is missing for some parsers (#18)
43
+
44
+ * FIXED: In some circumstances the whois.jprs.js parser may raise
45
+ an Argument out of range error trying to parse the #updated_on property.
46
+
47
+ * FIXED: The whois.nic.uk parser fails to parse #nameservers when
48
+ the domain is suspended.
49
+
50
+
3
51
  == Release 1.3.10
4
52
 
5
53
  * SERVER: Removed the .fed.us TLD definition.
@@ -233,6 +233,8 @@ module Whois
233
233
  contacts.compact
234
234
  end
235
235
 
236
+ # NEWPROPERTY
237
+ #
236
238
  # Checks whether this is a throttle response.
237
239
  # The default implementation always returns false.
238
240
  #
@@ -58,11 +58,11 @@ module Whois
58
58
  end
59
59
 
60
60
  property_supported :available? do
61
- node("Registrar").nil?
61
+ @available ||= node("Registrar").nil?
62
62
  end
63
63
 
64
64
  property_supported :registered? do
65
- !available?
65
+ @registered ||= !available?
66
66
  end
67
67
 
68
68
 
@@ -43,11 +43,11 @@ module Whois
43
43
  end
44
44
 
45
45
  property_supported :available? do
46
- @available ||= !!(content_for_scanner =~ /is not registered/)
46
+ @available ||= !!(content_for_scanner =~ /is not registered/)
47
47
  end
48
48
 
49
49
  property_supported :registered? do
50
- !available?
50
+ @registered ||= !available?
51
51
  end
52
52
 
53
53
 
@@ -35,15 +35,23 @@ module Whois
35
35
  class WhoisAedaNetAe < Base
36
36
 
37
37
  property_supported :status do
38
- @status ||= content_for_scanner.scan(/Status:\s+(.*?)\n/).flatten
38
+ @status ||= if content_for_scanner =~ /Status:\s+(.+?)\n/
39
+ case $1.downcase
40
+ when "ok" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
46
+ end
39
47
  end
40
48
 
41
49
  property_supported :available? do
42
- @available ||= content_for_scanner.strip == "No Data Found"
50
+ @available ||= content_for_scanner.strip == "No Data Found"
43
51
  end
44
52
 
45
53
  property_supported :registered? do
46
- !available?
54
+ @registered ||= !available?
47
55
  end
48
56
 
49
57
 
@@ -35,34 +35,40 @@ module Whois
35
35
  class WhoisAero < Base
36
36
 
37
37
  property_supported :status do
38
- @status ||= if content_for_scanner =~ /Domain Status:(.*?)\n/
39
- $1
38
+ @status ||= if content_for_scanner =~ /Domain Status:(.+?)\n/
39
+ case $1.downcase
40
+ when "ok" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
40
46
  end
41
47
  end
42
48
 
43
49
  property_supported :available? do
44
- @available ||= (content_for_scanner.strip == "NOT FOUND")
50
+ @available ||= (content_for_scanner.strip == "NOT FOUND")
45
51
  end
46
52
 
47
53
  property_supported :registered? do
48
- !available?
54
+ @registered ||= !available?
49
55
  end
50
56
 
51
57
 
52
58
  property_supported :created_on do
53
- @created_on ||= if content_for_scanner =~ /Created On:(.*?)\n/
59
+ @created_on ||= if content_for_scanner =~ /Created On:(.+?)\n/
54
60
  Time.parse($1)
55
61
  end
56
62
  end
57
63
 
58
64
  property_supported :updated_on do
59
- @updated_on ||= if content_for_scanner =~ /Updated On:(.*?)\n/
65
+ @updated_on ||= if content_for_scanner =~ /Updated On:(.+?)\n/
60
66
  Time.parse($1)
61
67
  end
62
68
  end
63
69
 
64
70
  property_supported :expires_on do
65
- @expires_on ||= if content_for_scanner =~ /Expires On:(.*?)\n/
71
+ @expires_on ||= if content_for_scanner =~ /Expires On:(.+?)\n/
66
72
  Time.parse($1)
67
73
  end
68
74
  end
@@ -39,11 +39,11 @@ module Whois
39
39
  end
40
40
 
41
41
  property_supported :available? do
42
- @available ||= (content_for_scanner.strip == "NOT FOUND")
42
+ @available ||= (content_for_scanner.strip == "NOT FOUND")
43
43
  end
44
44
 
45
45
  property_supported :registered? do
46
- !available?
46
+ @registered ||= !available?
47
47
  end
48
48
 
49
49
 
@@ -35,15 +35,15 @@ module Whois
35
35
  class WhoisAfiliasInfo < Base
36
36
 
37
37
  property_supported :status do
38
- @status ||= content_for_scanner.scan(/Status:(.*?)\n/).flatten
38
+ @status ||= content_for_scanner.scan(/Status:(.+?)\n/).flatten
39
39
  end
40
40
 
41
41
  property_supported :available? do
42
- @available ||= (content_for_scanner.strip == "NOT FOUND")
42
+ @available ||= (content_for_scanner.strip == "NOT FOUND")
43
43
  end
44
44
 
45
45
  property_supported :registered? do
46
- !available?
46
+ @registered ||= !available?
47
47
  end
48
48
 
49
49
 
@@ -35,7 +35,7 @@ module Whois
35
35
  class WhoisAi < Base
36
36
 
37
37
  property_supported :status do
38
- if available?
38
+ @status ||= if available?
39
39
  :available
40
40
  else
41
41
  :registered
@@ -43,11 +43,11 @@ module Whois
43
43
  end
44
44
 
45
45
  property_supported :available? do
46
- @available ||= !!(content_for_scanner =~ /Domain (.+?) not registred/)
46
+ @available ||= !!(content_for_scanner =~ /Domain (.+?) not registred/)
47
47
  end
48
48
 
49
49
  property_supported :registered? do
50
- !available?
50
+ @registered ||= !available?
51
51
  end
52
52
 
53
53
 
@@ -35,17 +35,23 @@ module Whois
35
35
  class WhoisAudnsNetAu < Base
36
36
 
37
37
  property_supported :status do
38
- @status ||= if content_for_scanner =~ /Status:\s+(.*)\n/
39
- $1
38
+ @status ||= if content_for_scanner =~ /Status:\s+(.+?)\n/
39
+ case $1.downcase
40
+ when "ok" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
40
46
  end
41
47
  end
42
48
 
43
49
  property_supported :available? do
44
- @available ||= (content_for_scanner.strip == "No Data Found")
50
+ @available ||= (content_for_scanner.strip == "No Data Found")
45
51
  end
46
52
 
47
53
  property_supported :registered? do
48
- !available?
54
+ @registered ||= !available?
49
55
  end
50
56
 
51
57
 
@@ -39,11 +39,11 @@ module Whois
39
39
  end
40
40
 
41
41
  property_supported :available? do
42
- @available ||= !!(content_for_scanner =~ /Not found:/)
42
+ @available ||= !!(content_for_scanner =~ /Not found:/)
43
43
  end
44
44
 
45
45
  property_supported :registered? do
46
- !available?
46
+ @registered ||= !available?
47
47
  end
48
48
 
49
49
 
@@ -35,8 +35,14 @@ module Whois
35
35
  class WhoisCat < Base
36
36
 
37
37
  property_supported :status do
38
- @status ||= if content_for_scanner =~ /Status:\s+(.*)\n/
39
- $1.downcase.to_sym
38
+ @status ||= if content_for_scanner =~ /Status:\s+(.+?)\n/
39
+ case $1.downcase
40
+ when "ok" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
40
46
  end
41
47
  end
42
48
 
@@ -35,8 +35,14 @@ module Whois
35
35
  class WhoisCctldUz < Base
36
36
 
37
37
  property_supported :status do
38
- @status ||= if content_for_scanner =~ /^Status: (.*)\n/
39
- $1
38
+ @status ||= if content_for_scanner =~ /^Status: (.+?)\n/
39
+ case $1.downcase
40
+ when "active" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
40
46
  end
41
47
  end
42
48
 
@@ -39,11 +39,11 @@ module Whois
39
39
  end
40
40
 
41
41
  property_supported :available? do
42
- @available ||= (content_for_scanner.strip == "no matching record")
42
+ @available ||= (content_for_scanner.strip == "no matching record")
43
43
  end
44
44
 
45
45
  property_supported :registered? do
46
- !available?
46
+ @registered ||= !available?
47
47
  end
48
48
 
49
49
 
@@ -35,7 +35,15 @@ module Whois
35
35
  class WhoisCoUg < Base
36
36
 
37
37
  property_supported :status do
38
- @status ||= content_for_scanner[/^Status:\s+(.+)$/, 1]
38
+ @status ||= if content_for_scanner =~ /^Status:\s+(.+?)\n/
39
+ case $1.downcase
40
+ when "active" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
46
+ end
39
47
  end
40
48
 
41
49
  property_supported :available? do
@@ -55,15 +55,15 @@ module Whois
55
55
 
56
56
 
57
57
  property_supported :status do
58
- node("Status")
58
+ @status ||= node("Status")
59
59
  end
60
60
 
61
61
  property_supported :available? do
62
- node("Registrar").nil?
62
+ @available ||= node("Registrar").nil?
63
63
  end
64
64
 
65
65
  property_supported :registered? do
66
- !available?
66
+ @registered ||= !available?
67
67
  end
68
68
 
69
69
 
@@ -42,7 +42,21 @@ module Whois
42
42
 
43
43
 
44
44
  property_supported :status do
45
- @status ||= node("Status")
45
+ @status ||= if node("Status")
46
+ case node("Status")
47
+ when "connect" then :registered
48
+ when "free" then :available
49
+ when "invalid" then :invalid
50
+ else
51
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
52
+ end
53
+ else
54
+ if version < "2.0"
55
+ :available
56
+ else
57
+ Whois.bug!(ParserError, "Unable to parse status.")
58
+ end
59
+ end
46
60
  end
47
61
 
48
62
  property_supported :available? do
@@ -35,17 +35,23 @@ module Whois
35
35
  class WhoisDkHostmasterDk < Base
36
36
 
37
37
  property_supported :status do
38
- @status ||= if content_for_scanner =~ /Status:\s+(.*)\n/
39
- $1.downcase.to_sym
38
+ @status ||= if content_for_scanner =~ /Status:\s+(.+?)\n/
39
+ case $1.downcase
40
+ when "active" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
40
46
  end
41
47
  end
42
48
 
43
49
  property_supported :available? do
44
- @available ||= !!(content_for_scanner =~ /No entries found for the selected source/)
50
+ @available ||= !!(content_for_scanner =~ /No entries found for the selected source/)
45
51
  end
46
52
 
47
53
  property_supported :registered? do
48
- !available?
54
+ @registered ||= !available?
49
55
  end
50
56
 
51
57
 
@@ -35,13 +35,20 @@ module Whois
35
35
  class WhoisDnsBe < Base
36
36
 
37
37
  property_supported :status do
38
- @status ||= if content_for_scanner =~ /Status:\s+(.+)\n/
39
- $1
38
+ @status ||= if content_for_scanner =~ /Status:\s+(.+?)\n/
39
+ case $1.downcase
40
+ when "registered" then :registered
41
+ when "free" then :available
42
+ else
43
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
44
+ end
45
+ else
46
+ Whois.bug!(ParserError, "Unable to parse status.")
40
47
  end
41
48
  end
42
49
 
43
50
  property_supported :available? do
44
- @available ||= (status == "FREE")
51
+ @available ||= (status == :available)
45
52
  end
46
53
 
47
54
  property_supported :registered? do
@@ -35,8 +35,14 @@ module Whois
35
35
  class WhoisDnsLu < Base
36
36
 
37
37
  property_supported :status do
38
- @status ||= if content_for_scanner =~ /domaintype:\s+(.*)\n/
39
- $1
38
+ @status ||= if content_for_scanner =~ /domaintype:\s+(.+)\n/
39
+ case $1.downcase
40
+ when "active" then :registered
41
+ else
42
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
43
+ end
44
+ else
45
+ :available
40
46
  end
41
47
  end
42
48