whois 3.2.0 → 3.2.1

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 (67) hide show
  1. data/CHANGELOG.md +20 -0
  2. data/lib/whois/core_ext.rb +3 -1
  3. data/lib/whois/core_ext/array/extract_options.rb +2 -2
  4. data/lib/whois/core_ext/array/wrap.rb +13 -16
  5. data/lib/whois/core_ext/object/blank.rb +105 -0
  6. data/lib/whois/record/contact.rb +14 -3
  7. data/lib/whois/record/parser/base_afilias.rb +3 -4
  8. data/lib/whois/record/parser/base_cocca.rb +14 -13
  9. data/lib/whois/record/parser/base_cocca2.rb +25 -32
  10. data/lib/whois/record/parser/base_shared2.rb +1 -1
  11. data/lib/whois/record/parser/base_shared3.rb +1 -1
  12. data/lib/whois/record/parser/base_whoisd.rb +5 -6
  13. data/lib/whois/record/parser/whois.aeda.net.ae.rb +6 -8
  14. data/lib/whois/record/parser/whois.ai.rb +6 -8
  15. data/lib/whois/record/parser/whois.ati.tn.rb +1 -1
  16. data/lib/whois/record/parser/whois.cctld.by.rb +0 -1
  17. data/lib/whois/record/parser/whois.centralnic.com.rb +2 -1
  18. data/lib/whois/record/parser/whois.cira.ca.rb +1 -1
  19. data/lib/whois/record/parser/whois.cnnic.cn.rb +1 -1
  20. data/lib/whois/record/parser/whois.comlaude.com.rb +1 -1
  21. data/lib/whois/record/parser/whois.denic.de.rb +1 -1
  22. data/lib/whois/record/parser/whois.domainregistry.ie.rb +1 -1
  23. data/lib/whois/record/parser/whois.dreamhost.com.rb +1 -1
  24. data/lib/whois/record/parser/whois.educause.edu.rb +1 -1
  25. data/lib/whois/record/parser/whois.enom.com.rb +1 -1
  26. data/lib/whois/record/parser/whois.gg.rb +4 -58
  27. data/lib/whois/record/parser/whois.godaddy.com.rb +1 -1
  28. data/lib/whois/record/parser/whois.iana.org.rb +1 -1
  29. data/lib/whois/record/parser/whois.ja.net.rb +6 -8
  30. data/lib/whois/record/parser/whois.je.rb +4 -58
  31. data/lib/whois/record/parser/whois.markmonitor.com.rb +1 -1
  32. data/lib/whois/record/parser/whois.networksolutions.com.rb +1 -1
  33. data/lib/whois/record/parser/whois.nic.am.rb +10 -11
  34. data/lib/whois/record/parser/whois.nic.as.rb +4 -44
  35. data/lib/whois/record/parser/whois.nic.asia.rb +1 -1
  36. data/lib/whois/record/parser/whois.nic.bo.rb +6 -8
  37. data/lib/whois/record/parser/whois.nic.cd.rb +4 -47
  38. data/lib/whois/record/parser/whois.nic.cz.rb +4 -4
  39. data/lib/whois/record/parser/whois.nic.fr.rb +1 -1
  40. data/lib/whois/record/parser/whois.nic.hn.rb +2 -3
  41. data/lib/whois/record/parser/whois.nic.hu.rb +1 -1
  42. data/lib/whois/record/parser/whois.nic.it.rb +1 -1
  43. data/lib/whois/record/parser/whois.nic.mg.rb +4 -64
  44. data/lib/whois/record/parser/whois.nic.sn.rb +1 -1
  45. data/lib/whois/record/parser/whois.nic.tr.rb +75 -8
  46. data/lib/whois/record/parser/whois.pnina.ps.rb +10 -58
  47. data/lib/whois/record/parser/whois.register.bg.rb +6 -8
  48. data/lib/whois/record/parser/whois.register.com.rb +1 -1
  49. data/lib/whois/record/parser/whois.rnids.rs.rb +1 -1
  50. data/lib/whois/record/parser/whois.smallregistry.net.rb +1 -1
  51. data/lib/whois/record/parser/whois.srs.net.nz.rb +1 -1
  52. data/lib/whois/record/parser/whois.sx.rb +1 -1
  53. data/lib/whois/record/parser/whois.tcinet.ru.rb +1 -1
  54. data/lib/whois/record/parser/whois.ua.rb +2 -2
  55. data/lib/whois/record/parser/whois.usp.ac.fj.rb +6 -8
  56. data/lib/whois/record/scanners/base_cocca2.rb +52 -0
  57. data/lib/whois/record/scanners/whois.ati.tn.rb +0 -2
  58. data/lib/whois/record/scanners/whois.audns.net.au.rb +0 -2
  59. data/lib/whois/record/scanners/whois.cctld.by.rb +5 -6
  60. data/lib/whois/record/scanners/whois.cira.ca.rb +0 -2
  61. data/lib/whois/record/scanners/whois.dns.hr.rb +0 -2
  62. data/lib/whois/record/scanners/whois.nc.rb +0 -2
  63. data/lib/whois/record/scanners/whois.registry.net.za.rb +20 -20
  64. data/lib/whois/record/scanners/whois.rnids.rs.rb +0 -2
  65. data/lib/whois/version.rb +1 -1
  66. data/whois.gemspec +3 -3
  67. metadata +4 -2
@@ -14,16 +14,14 @@ module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.aeda.net.ae parser
19
- #
20
17
  # Parser for the whois.aeda.net.ae server.
21
18
  #
22
- # NOTE: This parser is just a stub and provides only a few basic methods
23
- # to check for domain availability and get domain status.
24
- # Please consider to contribute implementing missing methods.
25
- # See WhoisNicIt parser for an explanation of all available methods
26
- # and examples.
19
+ # @note This parser is just a stub and provides only a few basic methods
20
+ # to check for domain availability and get domain status.
21
+ # Please consider to contribute implementing missing methods.
22
+ #
23
+ # @see Whois::Record::Parser::Example
24
+ # The Example parser for the list of all available methods.
27
25
  #
28
26
  class WhoisAedaNetAe < Base
29
27
 
@@ -14,16 +14,14 @@ module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.ai parser
19
- #
20
17
  # Parser for the whois.ai server.
21
18
  #
22
- # NOTE: This parser is just a stub and provides only a few basic methods
23
- # to check for domain availability and get domain status.
24
- # Please consider to contribute implementing missing methods.
25
- # See WhoisNicIt parser for an explanation of all available methods
26
- # and examples.
19
+ # @note This parser is just a stub and provides only a few basic methods
20
+ # to check for domain availability and get domain status.
21
+ # Please consider to contribute implementing missing methods.
22
+ #
23
+ # @see Whois::Record::Parser::Example
24
+ # The Example parser for the list of all available methods.
27
25
  #
28
26
  class WhoisAi < Base
29
27
 
@@ -78,7 +78,7 @@ module Whois
78
78
  end
79
79
 
80
80
  property_supported :admin_contacts do
81
- build_contact("Admin.", Whois::Record::Contact::TYPE_ADMIN)
81
+ build_contact("Admin.", Whois::Record::Contact::TYPE_ADMINISTRATIVE)
82
82
  end
83
83
 
84
84
  property_supported :technical_contacts do
@@ -21,7 +21,6 @@ module Whois
21
21
  # The Example parser for the list of all available methods.
22
22
  #
23
23
  # @author Aliaksei Kliuchnikau <aliaksei.kliuchnikau@gmail.com>
24
- # @since 2.5.0
25
24
  class WhoisCctldBy < Base
26
25
  include Scanners::Scannable
27
26
 
@@ -37,6 +37,7 @@ module Whois
37
37
 
38
38
 
39
39
  property_supported :status do
40
+ # OK, RENEW PERIOD, ...
40
41
  Array.wrap(node("Status"))
41
42
  end
42
43
 
@@ -78,7 +79,7 @@ module Whois
78
79
  end
79
80
 
80
81
  property_supported :admin_contacts do
81
- build_contact("Admin", Whois::Record::Contact::TYPE_ADMIN)
82
+ build_contact("Admin", Whois::Record::Contact::TYPE_ADMINISTRATIVE)
82
83
  end
83
84
 
84
85
  property_supported :technical_contacts do
@@ -99,7 +99,7 @@ module Whois
99
99
  end
100
100
 
101
101
  property_supported :admin_contacts do
102
- build_contact("Administrative contact", Whois::Record::Contact::TYPE_ADMIN)
102
+ build_contact("Administrative contact", Whois::Record::Contact::TYPE_ADMINISTRATIVE)
103
103
  end
104
104
 
105
105
  property_supported :technical_contacts do
@@ -77,7 +77,7 @@ module Whois
77
77
  end
78
78
 
79
79
  property_supported :admin_contacts do
80
- build_contact("Administrative", Whois::Record::Contact::TYPE_ADMIN)
80
+ build_contact("Administrative", Whois::Record::Contact::TYPE_ADMINISTRATIVE)
81
81
  end
82
82
 
83
83
  property_not_supported :technical_contacts
@@ -59,7 +59,7 @@ module Whois
59
59
  end
60
60
 
61
61
  property_supported :admin_contacts do
62
- build_contact('Admin Contact:', Record::Contact::TYPE_ADMIN)
62
+ build_contact('Admin Contact:', Record::Contact::TYPE_ADMINISTRATIVE)
63
63
  end
64
64
 
65
65
  property_supported :technical_contacts do
@@ -93,7 +93,7 @@ module Whois
93
93
  end
94
94
 
95
95
  property_supported :admin_contacts do
96
- build_contact("Admin-C", Whois::Record::Contact::TYPE_ADMIN)
96
+ build_contact("Admin-C", Whois::Record::Contact::TYPE_ADMINISTRATIVE)
97
97
  end
98
98
 
99
99
  property_supported :technical_contacts do
@@ -87,7 +87,7 @@ module Whois
87
87
  end
88
88
 
89
89
  property_supported :admin_contacts do
90
- build_contact("admin-c", Whois::Record::Contact::TYPE_ADMIN)
90
+ build_contact("admin-c", Whois::Record::Contact::TYPE_ADMINISTRATIVE)
91
91
  end
92
92
 
93
93
  property_supported :technical_contacts do
@@ -62,7 +62,7 @@ module Whois
62
62
  end
63
63
 
64
64
  property_supported :admin_contacts do
65
- build_contact('Administrative Contact:', Record::Contact::TYPE_ADMIN)
65
+ build_contact('Administrative Contact:', Record::Contact::TYPE_ADMINISTRATIVE)
66
66
  end
67
67
 
68
68
  property_supported :technical_contacts do
@@ -85,7 +85,7 @@ module Whois
85
85
  end
86
86
 
87
87
  property_supported :admin_contacts do
88
- build_contact("Administrative Contact", Whois::Record::Contact::TYPE_ADMIN)
88
+ build_contact("Administrative Contact", Whois::Record::Contact::TYPE_ADMINISTRATIVE)
89
89
  end
90
90
 
91
91
  property_supported :technical_contacts do
@@ -65,7 +65,7 @@ module Whois
65
65
  end
66
66
 
67
67
  property_supported :admin_contacts do
68
- build_contact("Administrative Contact", Record::Contact::TYPE_ADMIN)
68
+ build_contact("Administrative Contact", Record::Contact::TYPE_ADMINISTRATIVE)
69
69
  end
70
70
 
71
71
  property_supported :technical_contacts do
@@ -7,73 +7,19 @@
7
7
  #++
8
8
 
9
9
 
10
- require 'whois/record/parser/base'
10
+ require 'whois/record/parser/base_cocca'
11
11
 
12
12
 
13
13
  module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.gg parser
19
- #
20
17
  # Parser for the whois.gg server.
21
18
  #
22
- # NOTE: This parser is just a stub and provides only a few basic methods
23
- # to check for domain availability and get domain status.
24
- # Please consider to contribute implementing missing methods.
25
- # See WhoisNicIt parser for an explanation of all available methods
26
- # and examples.
19
+ # @see Whois::Record::Parser::Example
20
+ # The Example parser for the list of all available methods.
27
21
  #
28
- class WhoisGg < Base
29
-
30
- property_supported :status do
31
- if content_for_scanner =~ /Status:\s+(.+?)\n/
32
- case $1.downcase
33
- when "active"
34
- :registered
35
- when "not registered"
36
- :available
37
- else
38
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
39
- end
40
- else
41
- Whois.bug!(ParserError, "Unable to parse status.")
42
- end
43
- end
44
-
45
- property_supported :available? do
46
- (status == :available)
47
- end
48
-
49
- property_supported :registered? do
50
- !available?
51
- end
52
-
53
-
54
- property_supported :created_on do
55
- if content_for_scanner =~ /Created:\s+(.+?)\n/
56
- Time.parse($1)
57
- end
58
- end
59
-
60
- property_supported :updated_on do
61
- if content_for_scanner =~ /Modified:\s+(.+?)\n/
62
- Time.parse($1)
63
- end
64
- end
65
-
66
- property_not_supported :expires_on
67
-
68
-
69
- property_supported :nameservers do
70
- if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
71
- $1.split("\n").map do |name|
72
- Record::Nameserver.new(:name => name.strip)
73
- end
74
- end
75
- end
76
-
22
+ class WhoisGg < BaseCocca
77
23
  end
78
24
 
79
25
  end
@@ -67,7 +67,7 @@ module Whois
67
67
  end
68
68
 
69
69
  property_supported :admin_contacts do
70
- build_contact('Administrative Contact:', Record::Contact::TYPE_ADMIN)
70
+ build_contact('Administrative Contact:', Record::Contact::TYPE_ADMINISTRATIVE)
71
71
  end
72
72
 
73
73
  property_supported :technical_contacts do
@@ -46,7 +46,7 @@ module Whois
46
46
  end
47
47
 
48
48
  property_supported :admin_contacts do
49
- build_contact("administrative", Whois::Record::Contact::TYPE_ADMIN)
49
+ build_contact("administrative", Whois::Record::Contact::TYPE_ADMINISTRATIVE)
50
50
  end
51
51
 
52
52
  property_supported :technical_contacts do
@@ -14,16 +14,14 @@ module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.ja.net parser
19
- #
20
17
  # Parser for the whois.ja.net server.
21
18
  #
22
- # NOTE: This parser is just a stub and provides only a few basic methods
23
- # to check for domain availability and get domain status.
24
- # Please consider to contribute implementing missing methods.
25
- # See WhoisNicIt parser for an explanation of all available methods
26
- # and examples.
19
+ # @note This parser is just a stub and provides only a few basic methods
20
+ # to check for domain availability and get domain status.
21
+ # Please consider to contribute implementing missing methods.
22
+ #
23
+ # @see Whois::Record::Parser::Example
24
+ # The Example parser for the list of all available methods.
27
25
  #
28
26
  class WhoisJaNet < Base
29
27
 
@@ -7,73 +7,19 @@
7
7
  #++
8
8
 
9
9
 
10
- require 'whois/record/parser/base'
10
+ require 'whois/record/parser/base_cocca'
11
11
 
12
12
 
13
13
  module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.je parser
19
- #
20
17
  # Parser for the whois.je server.
21
18
  #
22
- # NOTE: This parser is just a stub and provides only a few basic methods
23
- # to check for domain availability and get domain status.
24
- # Please consider to contribute implementing missing methods.
25
- # See WhoisNicIt parser for an explanation of all available methods
26
- # and examples.
19
+ # @see Whois::Record::Parser::Example
20
+ # The Example parser for the list of all available methods.
27
21
  #
28
- class WhoisJe < Base
29
-
30
- property_supported :status do
31
- if content_for_scanner =~ /Status:\s+(.+?)\n/
32
- case $1.downcase
33
- when "active"
34
- :registered
35
- when "not registered"
36
- :available
37
- else
38
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
39
- end
40
- else
41
- Whois.bug!(ParserError, "Unable to parse status.")
42
- end
43
- end
44
-
45
- property_supported :available? do
46
- (status == :available)
47
- end
48
-
49
- property_supported :registered? do
50
- !available?
51
- end
52
-
53
-
54
- property_supported :created_on do
55
- if content_for_scanner =~ /Created:\s+(.+?)\n/
56
- Time.parse($1)
57
- end
58
- end
59
-
60
- property_supported :updated_on do
61
- if content_for_scanner =~ /Modified:\s+(.+?)\n/
62
- Time.parse($1)
63
- end
64
- end
65
-
66
- property_not_supported :expires_on
67
-
68
-
69
- property_supported :nameservers do
70
- if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
71
- $1.split("\n").map do |name|
72
- Record::Nameserver.new(:name => name.strip)
73
- end
74
- end
75
- end
76
-
22
+ class WhoisJe < BaseCocca
77
23
  end
78
24
 
79
25
  end
@@ -63,7 +63,7 @@ module Whois
63
63
  end
64
64
 
65
65
  property_supported :admin_contacts do
66
- build_contact('Administrative Contact:', Record::Contact::TYPE_ADMIN)
66
+ build_contact('Administrative Contact:', Record::Contact::TYPE_ADMINISTRATIVE)
67
67
  end
68
68
 
69
69
  property_supported :technical_contacts do
@@ -63,7 +63,7 @@ module Whois
63
63
  end
64
64
 
65
65
  property_supported :admin_contacts do
66
- build_contact('Administrative Contact', Record::Contact::TYPE_ADMIN)
66
+ build_contact('Administrative Contact', Record::Contact::TYPE_ADMINISTRATIVE)
67
67
  end
68
68
 
69
69
  property_supported :technical_contacts do
@@ -14,25 +14,24 @@ module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.nic.am parser
19
- #
20
17
  # Parser for the whois.nic.am server.
21
18
  #
22
- # NOTE: This parser is just a stub and provides only a few basic methods
23
- # to check for domain availability and get domain status.
24
- # Please consider to contribute implementing missing methods.
25
- # See WhoisNicIt parser for an explanation of all available methods
26
- # and examples.
19
+ # @note This parser is just a stub and provides only a few basic methods
20
+ # to check for domain availability and get domain status.
21
+ # Please consider to contribute implementing missing methods.
22
+ #
23
+ # @see Whois::Record::Parser::Example
24
+ # The Example parser for the list of all available methods.
27
25
  #
28
26
  class WhoisNicAm < Base
29
27
 
30
28
  property_supported :status do
31
29
  if content_for_scanner =~ /\s+Status:\s+(.+)\n/
32
30
  case $1.downcase
33
- when "active" then :registered
34
- else
35
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
31
+ when "active"
32
+ :registered
33
+ else
34
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
36
35
  end
37
36
  else
38
37
  :available
@@ -7,59 +7,19 @@
7
7
  #++
8
8
 
9
9
 
10
- require 'whois/record/parser/base'
10
+ require 'whois/record/parser/base_cocca'
11
11
 
12
12
 
13
13
  module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.nic.as parser
19
- #
20
17
  # Parser for the whois.nic.as server.
21
18
  #
22
- # NOTE: This parser is just a stub and provides only a few basic methods
23
- # to check for domain availability and get domain status.
24
- # Please consider to contribute implementing missing methods.
25
- # See WhoisNicIt parser for an explanation of all available methods
26
- # and examples.
19
+ # @see Whois::Record::Parser::Example
20
+ # The Example parser for the list of all available methods.
27
21
  #
28
- class WhoisNicAs < Base
29
-
30
- property_supported :status do
31
- if available?
32
- :available
33
- else
34
- :registered
35
- end
36
- end
37
-
38
- property_supported :available? do
39
- !!(content_for_scanner =~ /Domain Not Found/)
40
- end
41
-
42
- property_supported :registered? do
43
- !available?
44
- end
45
-
46
-
47
- property_not_supported :created_on
48
-
49
- property_not_supported :updated_on
50
-
51
- property_not_supported :expires_on
52
-
53
-
54
- property_supported :nameservers do
55
- if content_for_scanner =~ /Nameservers:\s((.+\n)+)\n/
56
- $1.split("\n").reject { |value| value.strip.empty? }.map do |line|
57
- line.strip =~ /(.+) \((.+)\)/
58
- Record::Nameserver.new(:name => $1, :ipv4 => $2)
59
- end
60
- end
61
- end
62
-
22
+ class WhoisNicAs < BaseCocca
63
23
  end
64
24
 
65
25
  end