whois 3.1.3 → 3.2.0

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 (49) hide show
  1. data/CHANGELOG.md +26 -2
  2. data/data/tld.json +8 -2
  3. data/lib/whois/record/parser/base.rb +1 -1
  4. data/lib/whois/record/parser/base_afilias.rb +3 -11
  5. data/lib/whois/record/parser/base_cocca2.rb +4 -3
  6. data/lib/whois/record/parser/base_icb.rb +95 -0
  7. data/lib/whois/record/parser/base_shared1.rb +4 -11
  8. data/lib/whois/record/parser/base_shared2.rb +4 -11
  9. data/lib/whois/record/parser/base_shared3.rb +5 -12
  10. data/lib/whois/record/parser/base_whoisd.rb +4 -13
  11. data/lib/whois/record/parser/jobswhois.verisign-grs.com.rb +8 -11
  12. data/lib/whois/record/parser/whois.ati.tn.rb +6 -15
  13. data/lib/whois/record/parser/whois.audns.net.au.rb +4 -12
  14. data/lib/whois/record/parser/whois.cctld.by.rb +4 -11
  15. data/lib/whois/record/parser/whois.centralnic.com.rb +4 -12
  16. data/lib/whois/record/parser/whois.cira.ca.rb +15 -20
  17. data/lib/whois/record/parser/whois.cnnic.cn.rb +3 -11
  18. data/lib/whois/record/parser/whois.crsnic.net.rb +5 -12
  19. data/lib/whois/record/parser/whois.denic.de.rb +4 -11
  20. data/lib/whois/record/parser/whois.dns.hr.rb +4 -12
  21. data/lib/whois/record/parser/whois.dns.pl.rb +12 -1
  22. data/lib/whois/record/parser/whois.domainregistry.ie.rb +4 -11
  23. data/lib/whois/record/parser/whois.fi.rb +54 -20
  24. data/lib/whois/record/parser/whois.iana.org.rb +4 -11
  25. data/lib/whois/record/parser/whois.jprs.jp.rb +7 -0
  26. data/lib/whois/record/parser/whois.nc.rb +5 -13
  27. data/lib/whois/record/parser/whois.nic.ac.rb +5 -53
  28. data/lib/whois/record/parser/whois.nic.cc.rb +4 -11
  29. data/lib/whois/record/parser/whois.nic.hu.rb +4 -11
  30. data/lib/whois/record/parser/whois.nic.io.rb +5 -53
  31. data/lib/whois/record/parser/whois.nic.it.rb +3 -10
  32. data/lib/whois/record/parser/whois.nic.sh.rb +5 -53
  33. data/lib/whois/record/parser/whois.nic.tv.rb +4 -11
  34. data/lib/whois/record/parser/whois.norid.no.rb +7 -9
  35. data/lib/whois/record/parser/whois.registry.net.za.rb +6 -7
  36. data/lib/whois/record/parser/whois.rnids.rs.rb +4 -12
  37. data/lib/whois/record/parser/whois.smallregistry.net.rb +4 -11
  38. data/lib/whois/record/parser/whois.srs.net.nz.rb +64 -22
  39. data/lib/whois/record/parser/whois.sx.rb +5 -13
  40. data/lib/whois/record/parser/whois1.nic.bi.rb +2 -2
  41. data/lib/whois/record/scanners/{nodable.rb → scannable.rb} +15 -7
  42. data/lib/whois/record/scanners/whois.centralnic.com.rb +0 -2
  43. data/lib/whois/record/scanners/whois.fi.rb +44 -0
  44. data/lib/whois/record/scanners/whois.srs.net.nz.rb +35 -0
  45. data/lib/whois/server/adapters/arin.rb +2 -3
  46. data/lib/whois/version.rb +2 -2
  47. data/whois.gemspec +5 -5
  48. metadata +19 -6
  49. checksums.yaml +0 -15
@@ -20,9 +20,11 @@ module Whois
20
20
  # @see Whois::Record::Parser::Example
21
21
  # The Example parser for the list of all available methods.
22
22
  #
23
- # @since 2.4.0
24
23
  class WhoisNc < Base
25
- include Scanners::Nodable
24
+ include Scanners::Scannable
25
+
26
+ self.scanner = Scanners::WhoisNc
27
+
26
28
 
27
29
  property_not_supported :disclaimer
28
30
 
@@ -104,7 +106,7 @@ module Whois
104
106
 
105
107
  property_supported :nameservers do
106
108
  nameservers = []
107
- index = 1
109
+ index = 1
108
110
  while line = node("Domain server #{index}")
109
111
  nameservers << line
110
112
  index += 1
@@ -115,16 +117,6 @@ module Whois
115
117
  end
116
118
  end
117
119
 
118
-
119
- # Initializes a new {Scanners::WhoisNc} instance
120
- # passing the {#content_for_scanner}
121
- # and calls +parse+ on it.
122
- #
123
- # @return [Hash]
124
- def parse
125
- Scanners::WhoisNc.new(content_for_scanner).parse
126
- end
127
-
128
120
  end
129
121
 
130
122
  end
@@ -7,67 +7,19 @@
7
7
  #++
8
8
 
9
9
 
10
- require 'whois/record/parser/base'
10
+ require 'whois/record/parser/base_icb'
11
11
 
12
12
 
13
13
  module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.nic.ac parser
19
- #
20
17
  # Parser for the whois.nic.ac server.
21
18
  #
22
- class WhoisNicAc < Base
23
-
24
- property_not_supported :disclaimer
25
-
26
-
27
- property_supported :domain do
28
- if content_for_scanner =~ /Domain "(.+?)"/
29
- $1.downcase
30
- end
31
- end
32
-
33
- property_not_supported :domain_id
34
-
35
-
36
- property_supported :status do
37
- if available?
38
- :available
39
- else
40
- :registered
41
- end
42
- end
43
-
44
- property_supported :available? do
45
- !!(content_for_scanner =~ /- Available/)
46
- end
47
-
48
- property_supported :registered? do
49
- !available?
50
- end
51
-
52
-
53
- property_not_supported :created_on
54
-
55
- property_not_supported :updated_on
56
-
57
- property_not_supported :expires_on
58
-
59
-
60
- property_not_supported :registrar
61
-
62
- property_not_supported :registrant_contacts
63
-
64
- property_not_supported :admin_contacts
65
-
66
- property_not_supported :technical_contacts
67
-
68
-
69
- property_not_supported :nameservers
70
-
19
+ # @see Whois::Record::Parser::Example
20
+ # The Example parser for the list of all available methods.
21
+ #
22
+ class WhoisNicAc < BaseIcb
71
23
  end
72
24
 
73
25
  end
@@ -17,7 +17,10 @@ module Whois
17
17
 
18
18
  # Parser for the whois.nic.cc server.
19
19
  class WhoisNicCc < Base
20
- include Scanners::Nodable
20
+ include Scanners::Scannable
21
+
22
+ self.scanner = Scanners::Verisign
23
+
21
24
 
22
25
  property_supported :disclaimer do
23
26
  node("Disclaimer")
@@ -86,16 +89,6 @@ module Whois
86
89
  node("Referral URL")
87
90
  end
88
91
 
89
-
90
- # Initializes a new {Scanners::Verisign} instance
91
- # passing the {#content_for_scanner}
92
- # and calls +parse+ on it.
93
- #
94
- # @return [Hash]
95
- def parse
96
- Scanners::Verisign.new(content_for_scanner).parse
97
- end
98
-
99
92
  end
100
93
 
101
94
  end
@@ -21,7 +21,10 @@ module Whois
21
21
  # @author Gábor Vészi <veszig@done.hu>
22
22
  #
23
23
  class WhoisNicHu < Base
24
- include Scanners::Nodable
24
+ include Scanners::Scannable
25
+
26
+ self.scanner = Scanners::WhoisNicHu
27
+
25
28
 
26
29
  property_supported :disclaimer do
27
30
  node("field:disclaimer")
@@ -126,16 +129,6 @@ module Whois
126
129
  end
127
130
 
128
131
 
129
- # Initializes a new {Scanners::WhoisNicHu} instance
130
- # passing the {#content_for_scanner}
131
- # and calls +parse+ on it.
132
- #
133
- # @return [Hash]
134
- def parse
135
- Scanners::WhoisNicHu.new(content_for_scanner).parse
136
- end
137
-
138
-
139
132
  private
140
133
 
141
134
  def build_contact(element, type)
@@ -7,67 +7,19 @@
7
7
  #++
8
8
 
9
9
 
10
- require 'whois/record/parser/base'
10
+ require 'whois/record/parser/base_icb'
11
11
 
12
12
 
13
13
  module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.nic.io parser
19
- #
20
17
  # Parser for the whois.nic.io server.
21
18
  #
22
- class WhoisNicIo < Base
23
-
24
- property_not_supported :disclaimer
25
-
26
-
27
- property_supported :domain do
28
- if content_for_scanner =~ /Domain "(.+?)"/
29
- $1.downcase
30
- end
31
- end
32
-
33
- property_not_supported :domain_id
34
-
35
-
36
- property_supported :status do
37
- if available?
38
- :available
39
- else
40
- :registered
41
- end
42
- end
43
-
44
- property_supported :available? do
45
- !!(content_for_scanner =~ /- Available/)
46
- end
47
-
48
- property_supported :registered? do
49
- !available?
50
- end
51
-
52
-
53
- property_not_supported :created_on
54
-
55
- property_not_supported :updated_on
56
-
57
- property_not_supported :expires_on
58
-
59
-
60
- property_not_supported :registrar
61
-
62
- property_not_supported :registrant_contacts
63
-
64
- property_not_supported :admin_contacts
65
-
66
- property_not_supported :technical_contacts
67
-
68
-
69
- property_not_supported :nameservers
70
-
19
+ # @see Whois::Record::Parser::Example
20
+ # The Example parser for the list of all available methods.
21
+ #
22
+ class WhoisNicIo < BaseIcb
71
23
  end
72
24
 
73
25
  end
@@ -17,7 +17,9 @@ module Whois
17
17
 
18
18
  # Parser for the whois.nic.it server.
19
19
  class WhoisNicIt < Base
20
- include Scanners::Nodable
20
+ include Scanners::Scannable
21
+
22
+ self.scanner = Scanners::WhoisNicIt
21
23
 
22
24
 
23
25
  property_supported :disclaimer do
@@ -128,15 +130,6 @@ module Whois
128
130
  !!node("response:unavailable")
129
131
  end
130
132
 
131
- # Initializes a new {Scanners::WhoisNicIt} instance
132
- # passing the {#content_for_scanner}
133
- # and calls +parse+ on it.
134
- #
135
- # @return [Hash]
136
- def parse
137
- Scanners::WhoisNicIt.new(content_for_scanner).parse
138
- end
139
-
140
133
 
141
134
  private
142
135
 
@@ -7,67 +7,19 @@
7
7
  #++
8
8
 
9
9
 
10
- require 'whois/record/parser/base'
10
+ require 'whois/record/parser/base_icb'
11
11
 
12
12
 
13
13
  module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.nic.sh parser
19
- #
20
17
  # Parser for the whois.nic.sh server.
21
18
  #
22
- class WhoisNicSh < Base
23
-
24
- property_not_supported :disclaimer
25
-
26
-
27
- property_supported :domain do
28
- if content_for_scanner =~ /Domain "(.+?)"/
29
- $1.downcase
30
- end
31
- end
32
-
33
- property_not_supported :domain_id
34
-
35
-
36
- property_supported :status do
37
- if available?
38
- :available
39
- else
40
- :registered
41
- end
42
- end
43
-
44
- property_supported :available? do
45
- !!(content_for_scanner =~ /- Available/)
46
- end
47
-
48
- property_supported :registered? do
49
- !available?
50
- end
51
-
52
-
53
- property_not_supported :created_on
54
-
55
- property_not_supported :updated_on
56
-
57
- property_not_supported :expires_on
58
-
59
-
60
- property_not_supported :registrar
61
-
62
- property_not_supported :registrant_contacts
63
-
64
- property_not_supported :admin_contacts
65
-
66
- property_not_supported :technical_contacts
67
-
68
-
69
- property_not_supported :nameservers
70
-
19
+ # @see Whois::Record::Parser::Example
20
+ # The Example parser for the list of all available methods.
21
+ #
22
+ class WhoisNicSh < BaseIcb
71
23
  end
72
24
 
73
25
  end
@@ -17,7 +17,10 @@ module Whois
17
17
 
18
18
  # Parser for the whois.nic.tv server.
19
19
  class WhoisNicTv < Base
20
- include Scanners::Nodable
20
+ include Scanners::Scannable
21
+
22
+ self.scanner = Scanners::Verisign
23
+
21
24
 
22
25
  property_supported :disclaimer do
23
26
  node("Disclaimer")
@@ -79,16 +82,6 @@ module Whois
79
82
  node("Referral URL")
80
83
  end
81
84
 
82
-
83
- # Initializes a new {Scanners::Verisign} instance
84
- # passing the {#content_for_scanner}
85
- # and calls +parse+ on it.
86
- #
87
- # @return [Hash]
88
- def parse
89
- Scanners::Verisign.new(content_for_scanner).parse
90
- end
91
-
92
85
  end
93
86
 
94
87
  end
@@ -14,16 +14,14 @@ module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.norid.no parser
19
- #
20
17
  # Parser for the whois.norid.no 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 WhoisNoridNo < Base
29
27
 
@@ -36,7 +34,7 @@ module Whois
36
34
  end
37
35
 
38
36
  property_supported :available? do
39
- !!(content_for_scanner =~ /% no matches/)
37
+ !!(content_for_scanner =~ /^% No match/)
40
38
  end
41
39
 
42
40
  property_supported :registered? do
@@ -25,7 +25,10 @@ module Whois
25
25
  # The Example parser for the list of all available methods.
26
26
  #
27
27
  class WhoisRegistryNetZa < Base
28
- include Scanners::Nodable
28
+ include Scanners::Scannable
29
+
30
+ self.scanner = Scanners::WhoisRegistryNetZa
31
+
29
32
 
30
33
  property_supported :disclaimer do
31
34
  node("node:disclaimer")
@@ -98,12 +101,7 @@ module Whois
98
101
  end
99
102
 
100
103
 
101
- def parse
102
- Scanners::WhoisRegistryNetZa.new(content_for_scanner).parse
103
- end
104
-
105
-
106
- private
104
+ private
107
105
 
108
106
  def build_registrant_contacts
109
107
  Whois::Record::Contact.new(
@@ -127,6 +125,7 @@ module Whois
127
125
  def parse_date(date_string)
128
126
  Time.parse(date_string) if date_string
129
127
  end
128
+
130
129
  end
131
130
 
132
131
  end
@@ -20,9 +20,11 @@ module Whois
20
20
  # @see Whois::Record::Parser::Example
21
21
  # The Example parser for the list of all available methods.
22
22
  #
23
- # @since 2.4.0
24
23
  class WhoisRnidsRs < Base
25
- include Scanners::Nodable
24
+ include Scanners::Scannable
25
+
26
+ self.scanner = Scanners::WhoisRnidsRs
27
+
26
28
 
27
29
  property_not_supported :disclaimer
28
30
 
@@ -105,16 +107,6 @@ module Whois
105
107
  end
106
108
 
107
109
 
108
- # Initializes a new {Scanners::WhoisRnidsRs} instance
109
- # passing the {#content_for_scanner}
110
- # and calls +parse+ on it.
111
- #
112
- # @return [Hash]
113
- def parse
114
- Scanners::WhoisRnidsRs.new(content_for_scanner).parse
115
- end
116
-
117
-
118
110
  private
119
111
 
120
112
  def build_contact(element, type)