whois 1.3.10 → 1.3.11

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