whois 3.2.0 → 3.2.1

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