whois 3.1.3 → 3.2.0

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