whois 3.5.0 → 3.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +36 -21
- data/README.md +7 -7
- data/data/ipv4.json +1 -2
- data/lib/whois.rb +7 -6
- data/lib/whois/record/parser.rb +2 -1
- data/lib/whois/record/parser/base_iisse.rb +1 -1
- data/lib/whois/record/parser/base_verisign.rb +1 -1
- data/lib/whois/record/parser/whois.corporatedomains.com.rb +30 -0
- data/lib/whois/record/parser/whois.godaddy.com.rb +18 -18
- data/lib/whois/record/parser/whois.rrpproxy.net.rb +1 -2
- data/lib/whois/record/parser/whois.ua.rb +3 -3
- data/lib/whois/record/parser/whois.verisign-grs.com.rb +5 -0
- data/lib/whois/record/scanners/whois.smallregistry.net.rb +1 -1
- data/lib/whois/version.rb +1 -1
- data/whois.gemspec +9 -5
- metadata +24 -17
- data/lib/whois/core_ext.rb +0 -11
- data/lib/whois/core_ext/array/extract_options.rb +0 -29
- data/lib/whois/core_ext/array/wrap.rb +0 -45
- data/lib/whois/core_ext/class/attribute.rb +0 -115
- data/lib/whois/core_ext/kernel/singleton_class.rb +0 -13
- data/lib/whois/core_ext/module/remove_method.rb +0 -16
- data/lib/whois/core_ext/object/blank.rb +0 -105
- data/lib/whois/core_ext/time/calculations.rb +0 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c415d7d641e725bada5a99bfd790f466542e27f2
|
4
|
+
data.tar.gz: cf9b2dae30082827d33f18f0407ce8faef675e59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbb715d0cd4d30adfc06198dcb5716b0bcbbe9bed08d81f90aaa4e494fe0bc34e38a46ea63f6f337e9101d7c8a766e488bebb3591ba79617d865a30d5dfdb72c
|
7
|
+
data.tar.gz: 615576dc52bf3577b837cacd089efa7cb9ea7bde86ef699ed327aa92b9b232d6acee61ae0491711f2244dece12985b2c00355f78b278ea60253ff560c35b2086
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,22 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
3
|
|
4
|
-
|
4
|
+
#### Release 3.5.1
|
5
|
+
|
6
|
+
- NEW: Added whois.corporatedomains.com parser (GH-311). [Thanks @huyphan]
|
7
|
+
|
8
|
+
- CHANGED: Added ActiveSupport as dependency (GH-317) [Thanks @byroot].
|
9
|
+
|
10
|
+
- FIXED: NameError: wrong constant name when querying IPs (GH-310).
|
11
|
+
|
12
|
+
- FIXED: Updated expiration date parsing for Verisign responses.
|
13
|
+
|
14
|
+
- FIXED: whois.iis.se parser crashes when the response contains a single nameserver.
|
15
|
+
|
16
|
+
- FIXED: whois.ua parser crashes when the status is clientTransferProhibited.
|
17
|
+
|
18
|
+
|
19
|
+
#### Release 3.5.0
|
5
20
|
|
6
21
|
- SERVER: Updated list of latest ASN allocations of 16-bit & 32-bit ASN's from IANA (GH-293). [Thanks @itsbalamurali]
|
7
22
|
|
@@ -18,7 +33,7 @@
|
|
18
33
|
- FIXED: whois.registry.net.za parser crashes with some registrant contact formats.
|
19
34
|
|
20
35
|
|
21
|
-
|
36
|
+
#### Release 3.4.5
|
22
37
|
|
23
38
|
- SERVER: Added new IDN TLDs: .XN--3BST00M, .XN--3DS443G, .XN--55QX5D, .XN--6FRZ82G, .XN--6QQ986B3XL, .XN--FIQ228C5HS, .XN--FIQ64B, .XN--IO0A7I, .XN--CG4BKI, .XN--MGBAB2BD, .XN--55QW42G, .XN--ZFR164B
|
24
39
|
|
@@ -43,7 +58,7 @@
|
|
43
58
|
- CHANGED: Afilias is using a slightly different whois response for some TLDs, including .INFO and .XXX (GH-304)
|
44
59
|
|
45
60
|
|
46
|
-
|
61
|
+
#### Release 3.4.4
|
47
62
|
|
48
63
|
- CHANGED: Updated IBC parser and fixtures (.IO, .AC, .SH and .TM).
|
49
64
|
|
@@ -52,7 +67,7 @@
|
|
52
67
|
- CHANGED: Updated whois.pir.org parser to the new response format (GH-300). [Thanks @muffinista]
|
53
68
|
|
54
69
|
|
55
|
-
|
70
|
+
#### Release 3.4.3
|
56
71
|
|
57
72
|
- SERVER: Updated .COM, .NET, .CC, .WS TLD definitions.
|
58
73
|
|
@@ -75,14 +90,14 @@
|
|
75
90
|
- CHANGED: Updated whois.nic.gl parser to the new response format.
|
76
91
|
|
77
92
|
|
78
|
-
|
93
|
+
#### Release 3.4.2
|
79
94
|
|
80
95
|
- CHANGED: Updated whois.registry.net.za parser to the new response format.
|
81
96
|
|
82
97
|
- CHANGED: Updated whois.ascio.com parser to the new response format (GH-285). [Thanks @takama]
|
83
98
|
|
84
99
|
|
85
|
-
|
100
|
+
#### Release 3.4.1
|
86
101
|
|
87
102
|
- SERVER: Updated .XN--NGBC5AZD IDN TLD definition.
|
88
103
|
|
@@ -105,7 +120,7 @@
|
|
105
120
|
- CHANGED: Updated whois.gandi.net parser to the new response format.
|
106
121
|
|
107
122
|
|
108
|
-
|
123
|
+
#### Release 3.4.0
|
109
124
|
|
110
125
|
- SERVER: Added .XN--MGBX4CD0AB (.ایران, Iran) IDN TLD definition.
|
111
126
|
|
@@ -142,7 +157,7 @@
|
|
142
157
|
- CHANGED: Updated whois.register.com parser to the new response format (GH-273). [Thanks @gromnsk]
|
143
158
|
|
144
159
|
|
145
|
-
|
160
|
+
#### Release 3.3.1
|
146
161
|
|
147
162
|
- SERVER: Updated .KR, .ES (GH-267) TLD definitions.
|
148
163
|
|
@@ -153,7 +168,7 @@
|
|
153
168
|
- CHANGED: Updated whois.enom.com parser to the new response format (GH-269). [Thanks @takama]
|
154
169
|
|
155
170
|
|
156
|
-
|
171
|
+
#### Release 3.3.0
|
157
172
|
|
158
173
|
- SERVER: Added .CF TLD definition.
|
159
174
|
|
@@ -176,7 +191,7 @@
|
|
176
191
|
- FIXED: whois.jprs.jp should support `Registered` status (GH-253). [Thanks @Pietr]
|
177
192
|
|
178
193
|
|
179
|
-
|
194
|
+
#### Release 3.2.1
|
180
195
|
|
181
196
|
- NEW: Added full whois.nic.tr parser.
|
182
197
|
|
@@ -197,7 +212,7 @@
|
|
197
212
|
- CHANGED: Deprecate Whois::Record::Contact::TYPE_ADMIN in favor of Whois::Record::Contact::TYPE_ADMINISTRATIVE
|
198
213
|
|
199
214
|
|
200
|
-
|
215
|
+
#### Release 3.2.0
|
201
216
|
|
202
217
|
- SERVER: Added .JP.NET (GH-240), XN--J1AMH TLD definitions.
|
203
218
|
|
@@ -220,7 +235,7 @@
|
|
220
235
|
- FIXED: Arin adapter is incorrectly passing an Arin flag to referral queries.
|
221
236
|
|
222
237
|
|
223
|
-
|
238
|
+
#### Release 3.1.3
|
224
239
|
|
225
240
|
- SERVER: Updated .GD (GH-227), .TC (GH-228) TLD definitions.
|
226
241
|
|
@@ -237,7 +252,7 @@
|
|
237
252
|
- FIXED: whois.ua is mixing two kinds of responses (GH-235).
|
238
253
|
|
239
254
|
|
240
|
-
|
255
|
+
#### Release 3.1.2
|
241
256
|
|
242
257
|
- NEW: Added full whois.comlaude.com parser (GH-222). [Thanks @delwyn]
|
243
258
|
|
@@ -256,12 +271,12 @@
|
|
256
271
|
- FIXED: whois.nic.fr parser crashes when the contact has no changed attribute (GH-226).
|
257
272
|
|
258
273
|
|
259
|
-
|
274
|
+
#### Release 3.1.1
|
260
275
|
|
261
276
|
- FIXED: Fixed CLI crash (GH-219). [Thanks @linrock]
|
262
277
|
|
263
278
|
|
264
|
-
|
279
|
+
#### Release 3.1.0
|
265
280
|
|
266
281
|
- SERVER: Added .POST (GH-192) TLD definition.
|
267
282
|
|
@@ -292,7 +307,7 @@
|
|
292
307
|
- FIXED: Record#technical_contact raised a NoMethodError (GH-217). [Thanks @yspro]
|
293
308
|
|
294
309
|
|
295
|
-
|
310
|
+
#### Release 3.0.0
|
296
311
|
|
297
312
|
- SERVER: Added .AX TLD definition.
|
298
313
|
|
@@ -434,7 +449,7 @@
|
|
434
449
|
- Whois::PropertyNotAvailable -> Whois::AttributeNotImplemented
|
435
450
|
|
436
451
|
|
437
|
-
|
452
|
+
#### Release 2.7.0
|
438
453
|
|
439
454
|
- SERVER: Added .IQ TLD server (GH-171).
|
440
455
|
|
@@ -473,7 +488,7 @@
|
|
473
488
|
- CHANGED: whois.dns.pl now supports expires_on (GH-185). [Thanks @y3ti]
|
474
489
|
|
475
490
|
|
476
|
-
|
491
|
+
#### Release 2.6.4
|
477
492
|
|
478
493
|
- SERVER: Added .CW TLD server.
|
479
494
|
|
@@ -508,7 +523,7 @@
|
|
508
523
|
- CHANGED: Removed support for .gemtest and removed /spec folder from the packaged gem.
|
509
524
|
|
510
525
|
|
511
|
-
|
526
|
+
#### Release 2.6.3
|
512
527
|
|
513
528
|
- NEW: whois.registrypro.pro is now a full parser.
|
514
529
|
|
@@ -521,7 +536,7 @@
|
|
521
536
|
- CHANGED: Updated whois.registrypro.pro parser to the new response format.
|
522
537
|
|
523
538
|
|
524
|
-
|
539
|
+
#### Release 2.6.2
|
525
540
|
|
526
541
|
- SERVER: Added .SX TLD server (GH-170).
|
527
542
|
|
@@ -532,7 +547,7 @@
|
|
532
547
|
- NEW: whois.ua parser is now a full parser (GH-169). [Thanks @Uko]
|
533
548
|
|
534
549
|
|
535
|
-
|
550
|
+
#### Release 2.6.1
|
536
551
|
|
537
552
|
- Reverted partial commit about .SX definitions included in v2.6.0 by mistake.
|
538
553
|
|
data/README.md
CHANGED
@@ -16,12 +16,12 @@ This library was extracted from [RoboWhois](https://www.robowhois.com/) and [Rob
|
|
16
16
|
|
17
17
|
## Features
|
18
18
|
|
19
|
-
- Ability to
|
20
|
-
- Ability to [parse WHOIS responses](http://
|
21
|
-
- Flexible and extensible interface (e.g. You can define [custom servers](http://
|
19
|
+
- Ability to lookup WHOIS record for [IPv4, IPv6, TLDs, and ICANN new gTLDs](http://ruby-whois.org/manual/usage/#usage-objects)
|
20
|
+
- Ability to [parse WHOIS responses](http://ruby-whois.org/manual/parser/)
|
21
|
+
- Flexible and extensible interface (e.g. You can define [custom servers](http://ruby-whois.org/manual/server/) on the fly)
|
22
22
|
- Object oriented design, featuring 10 different design patterns
|
23
23
|
- Pure Ruby library, without any external dependency other than Ruby itself
|
24
|
-
- Successfully tested against several [Ruby implementations](http://
|
24
|
+
- Successfully tested against several [Ruby implementations](http://ruby-whois.org/manual/interpreters/)
|
25
25
|
|
26
26
|
|
27
27
|
## Requirements
|
@@ -33,14 +33,14 @@ For older versions of Ruby, see the [CHANGELOG](CHANGELOG.md).
|
|
33
33
|
|
34
34
|
## Installation
|
35
35
|
|
36
|
-
The best way to install <tt>Whois</tt> is via [RubyGems](https://rubygems.org/)
|
36
|
+
The best way to install <tt>Whois</tt> is via [RubyGems](https://rubygems.org/). [Learn more](http://ruby-whois.org/manual/installing/).
|
37
37
|
|
38
38
|
$ gem install whois
|
39
39
|
|
40
40
|
|
41
41
|
## Getting Started
|
42
42
|
|
43
|
-
Note. This section covers only the essentials for getting started with the Whois library. The [documentation](http://
|
43
|
+
Note. This section covers only the essentials for getting started with the Whois library. The [documentation](http://ruby-whois.org/documentation/) provides a more accurate explanation including tutorials, more examples and technical details about the client/server/record/parser architecture.
|
44
44
|
|
45
45
|
### Querying a WHOIS
|
46
46
|
|
@@ -166,7 +166,7 @@ Report issues or feature requests to [GitHub Issues](https://github.com/weppos/w
|
|
166
166
|
|
167
167
|
## More Information
|
168
168
|
|
169
|
-
- [Homepage](http://
|
169
|
+
- [Homepage](http://ruby-whois.org/)
|
170
170
|
- [RubyGems](https://rubygems.org/gems/whois)
|
171
171
|
- [Issues](https://github.com/weppos/whois)
|
172
172
|
- [Stack Overflow](http://stackoverflow.com/questions/tagged/whois-ruby)
|
data/data/ipv4.json
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
{
|
2
2
|
"0.0.0.0/8": {
|
3
|
-
"host": null,
|
4
3
|
"adapter": "none"
|
5
4
|
},
|
6
5
|
"1.0.0.0/8": {
|
@@ -628,7 +627,7 @@
|
|
628
627
|
"host": "whois.nic.or.kr"
|
629
628
|
},
|
630
629
|
"211.192.0.0/10": {
|
631
|
-
"host": "whois
|
630
|
+
"host": "whois.nic.or.kr"
|
632
631
|
},
|
633
632
|
"210.0.0.0/7": {
|
634
633
|
"host": "whois.apnic.net"
|
data/lib/whois.rb
CHANGED
@@ -7,7 +7,13 @@
|
|
7
7
|
#++
|
8
8
|
|
9
9
|
|
10
|
-
require '
|
10
|
+
require 'active_support/core_ext/array/extract_options'
|
11
|
+
require 'active_support/core_ext/array/wrap'
|
12
|
+
require 'active_support/core_ext/class/attribute'
|
13
|
+
require 'active_support/core_ext/kernel/singleton_class'
|
14
|
+
require 'active_support/core_ext/object/blank'
|
15
|
+
require 'active_support/core_ext/time/calculations'
|
16
|
+
|
11
17
|
require 'whois/version'
|
12
18
|
require 'whois/errors'
|
13
19
|
require 'whois/client'
|
@@ -17,11 +23,6 @@ require 'whois/record'
|
|
17
23
|
|
18
24
|
module Whois
|
19
25
|
|
20
|
-
NAME = "Whois"
|
21
|
-
GEM = "whois"
|
22
|
-
AUTHORS = ["Simone Carletti <weppos@weppos.net>"]
|
23
|
-
|
24
|
-
|
25
26
|
class << self
|
26
27
|
|
27
28
|
# Queries the WHOIS server for <tt>object</tt> and returns
|
data/lib/whois/record/parser.rb
CHANGED
@@ -113,7 +113,8 @@ module Whois
|
|
113
113
|
def self.host_to_parser(host)
|
114
114
|
host.to_s.downcase.
|
115
115
|
gsub(/[.-]/, '_').
|
116
|
-
gsub(/(?:^|_)(.)/)
|
116
|
+
gsub(/(?:^|_)(.)/) { $1.upcase }.
|
117
|
+
gsub(/\A(\d+)\z/) { "Host#{$1}" }
|
117
118
|
end
|
118
119
|
|
119
120
|
# Requires the file at <tt>whois/record/parser/#{name}</tt>.
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#--
|
2
|
+
# Ruby Whois
|
3
|
+
#
|
4
|
+
# An intelligent pure Ruby WHOIS client and parser.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2009-2014 Simone Carletti <weppos@weppos.net>
|
7
|
+
#++
|
8
|
+
|
9
|
+
|
10
|
+
require 'whois/record/parser/base_icann_compliant'
|
11
|
+
|
12
|
+
|
13
|
+
module Whois
|
14
|
+
class Record
|
15
|
+
class Parser
|
16
|
+
|
17
|
+
# Parser for the whois.markmonitor.com server.
|
18
|
+
#
|
19
|
+
# @see Whois::Record::Parser::Example
|
20
|
+
# The Example parser for the list of all available methods.
|
21
|
+
#
|
22
|
+
class WhoisCorporatedomainsCom < BaseIcannCompliant
|
23
|
+
self.scanner = Scanners::BaseIcannCompliant, {
|
24
|
+
pattern_available: /^No match for/
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -33,29 +33,29 @@ module Whois
|
|
33
33
|
end
|
34
34
|
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
36
|
+
property_supported :created_on do
|
37
|
+
if content_for_scanner =~ /Creation Date: (.+)\n/
|
38
|
+
Time.parse($1)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
property_supported :updated_on do
|
43
|
+
if content_for_scanner =~ /Updated* Date: (.+)\n/
|
44
|
+
Time.parse($1)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
property_supported :expires_on do
|
49
|
+
if content_for_scanner =~ /Expiration Date: (.+)\n/
|
50
|
+
Time.parse($1)
|
51
|
+
end
|
52
|
+
end
|
53
53
|
|
54
54
|
|
55
55
|
property_supported :registrar do
|
56
56
|
Record::Registrar.new(
|
57
57
|
name: content_for_scanner[/Registrar: (.+)\n/, 1],
|
58
|
-
url:
|
58
|
+
url: content_for_scanner[/Registrar URL: (.+)\n/, 1],
|
59
59
|
)
|
60
60
|
end
|
61
61
|
|
@@ -17,7 +17,7 @@ module Whois
|
|
17
17
|
# Parser for the whois.ua server.
|
18
18
|
class WhoisUa < Base
|
19
19
|
|
20
|
-
class
|
20
|
+
class Uaepp
|
21
21
|
attr_reader :parent, :content
|
22
22
|
|
23
23
|
def initialize(parent, content)
|
@@ -28,7 +28,7 @@ module Whois
|
|
28
28
|
def status
|
29
29
|
if content =~ /status:\s+(.+?)\n/
|
30
30
|
case (s = $1.downcase)
|
31
|
-
when "ok", "clienthold", "autorenewgraceperiod"
|
31
|
+
when "ok", "clienthold", "autorenewgraceperiod", "clienttransferprohibited"
|
32
32
|
:registered
|
33
33
|
when "redemptionperiod", "pendingdelete"
|
34
34
|
:redemption
|
@@ -230,7 +230,7 @@ module Whois
|
|
230
230
|
if source == "UANIC"
|
231
231
|
Uanic.new(self, content_for_scanner)
|
232
232
|
else
|
233
|
-
|
233
|
+
Uaepp.new(self, content_for_scanner)
|
234
234
|
end
|
235
235
|
end
|
236
236
|
end
|
@@ -21,6 +21,11 @@ module Whois
|
|
21
21
|
#
|
22
22
|
class WhoisVerisignGrsCom < BaseVerisign
|
23
23
|
|
24
|
+
property_supported :expires_on do
|
25
|
+
node("Expiration Date") { |value| Time.parse(value) }
|
26
|
+
end
|
27
|
+
|
28
|
+
|
24
29
|
property_supported :registrar do
|
25
30
|
node("Registrar") do |value|
|
26
31
|
Whois::Record::Registrar.new(
|
data/lib/whois/version.rb
CHANGED
data/whois.gemspec
CHANGED
@@ -1,40 +1,44 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
# stub: whois 3.5.0 ruby lib
|
2
3
|
|
3
4
|
Gem::Specification.new do |s|
|
4
5
|
s.name = "whois"
|
5
|
-
s.version = "3.
|
6
|
+
s.version = "3.5.0"
|
6
7
|
|
7
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
|
+
s.require_paths = ["lib"]
|
8
10
|
s.authors = ["Simone Carletti"]
|
9
|
-
s.date = "2014-03-
|
11
|
+
s.date = "2014-03-31"
|
10
12
|
s.description = "Whois is an intelligent WHOIS client and parser written in pure Ruby. It can query registry data for IPv4, IPv6 and top level domains, parse and convert responses into easy-to-use Ruby objects."
|
11
13
|
s.email = ["weppos@weppos.net"]
|
12
14
|
s.executables = ["ruby-whois"]
|
13
|
-
s.files = ["LICENSE.txt", ".yardopts", "CHANGELOG.md", "README.md", "whois.gemspec", "bin/ruby-whois", "data/asn16.json", "data/asn32.json", "data/ipv4.json", "data/ipv6.json", "data/tld.json", "lib/whois", "lib/whois/client.rb", "lib/whois/core_ext", "lib/whois/core_ext/array", "lib/whois/core_ext/array/extract_options.rb", "lib/whois/core_ext/array/wrap.rb", "lib/whois/core_ext/class", "lib/whois/core_ext/class/attribute.rb", "lib/whois/core_ext/kernel", "lib/whois/core_ext/kernel/singleton_class.rb", "lib/whois/core_ext/module", "lib/whois/core_ext/module/remove_method.rb", "lib/whois/core_ext/object", "lib/whois/core_ext/object/blank.rb", "lib/whois/core_ext.rb", "lib/whois/errors.rb", "lib/whois/record", "lib/whois/record/contact.rb", "lib/whois/record/nameserver.rb", "lib/whois/record/parser", "lib/whois/record/parser/base.rb", "lib/whois/record/parser/base_afilias.rb", "lib/whois/record/parser/base_afilias2.rb", "lib/whois/record/parser/base_cocca.rb", "lib/whois/record/parser/base_cocca2.rb", "lib/whois/record/parser/base_icann_compliant.rb", "lib/whois/record/parser/base_icb.rb", "lib/whois/record/parser/base_iisse.rb", "lib/whois/record/parser/base_shared1.rb", "lib/whois/record/parser/base_shared2.rb", "lib/whois/record/parser/base_shared3.rb", "lib/whois/record/parser/base_verisign.rb", "lib/whois/record/parser/base_whoisd.rb", "lib/whois/record/parser/blank.rb", "lib/whois/record/parser/ccwhois.verisign-grs.com.rb", "lib/whois/record/parser/example.rb", "lib/whois/record/parser/jobswhois.verisign-grs.com.rb", "lib/whois/record/parser/kero.yachay.pe.rb", "lib/whois/record/parser/whois.1und1.info.rb", "lib/whois/record/parser/whois.adamsnames.tc.rb", "lib/whois/record/parser/whois.aeda.net.ae.rb", "lib/whois/record/parser/whois.aero.rb", "lib/whois/record/parser/whois.afilias-grs.info.rb", "lib/whois/record/parser/whois.afilias.info.rb", "lib/whois/record/parser/whois.ai.rb", "lib/whois/record/parser/whois.arnes.si.rb", "lib/whois/record/parser/whois.ascio.com.rb", "lib/whois/record/parser/whois.ati.tn.rb", "lib/whois/record/parser/whois.audns.net.au.rb", "lib/whois/record/parser/whois.ax.rb", "lib/whois/record/parser/whois.biz.rb", "lib/whois/record/parser/whois.bn.rb", "lib/whois/record/parser/whois.cat.rb", "lib/whois/record/parser/whois.cctld.by.rb", "lib/whois/record/parser/whois.cctld.uz.rb", "lib/whois/record/parser/whois.centralnic.com.rb", "lib/whois/record/parser/whois.cira.ca.rb", "lib/whois/record/parser/whois.cmc.iq.rb", "lib/whois/record/parser/whois.cnnic.cn.rb", "lib/whois/record/parser/whois.co.ca.rb", "lib/whois/record/parser/whois.co.pl.rb", "lib/whois/record/parser/whois.co.ug.rb", "lib/whois/record/parser/whois.comlaude.com.rb", "lib/whois/record/parser/whois.denic.de.rb", "lib/whois/record/parser/whois.dk-hostmaster.dk.rb", "lib/whois/record/parser/whois.dns.be.rb", "lib/whois/record/parser/whois.dns.hr.rb", "lib/whois/record/parser/whois.dns.lu.rb", "lib/whois/record/parser/whois.dns.pl.rb", "lib/whois/record/parser/whois.dns.pt.rb", "lib/whois/record/parser/whois.domain-registry.nl.rb", "lib/whois/record/parser/whois.domain.kg.rb", "lib/whois/record/parser/whois.domainregistry.ie.rb", "lib/whois/record/parser/whois.domainregistry.my.rb", "lib/whois/record/parser/whois.domreg.lt.rb", "lib/whois/record/parser/whois.dot.cf.rb", "lib/whois/record/parser/whois.dot.tk.rb", "lib/whois/record/parser/whois.dotmobiregistry.net.rb", "lib/whois/record/parser/whois.dotpostregistry.net.rb", "lib/whois/record/parser/whois.dreamhost.com.rb", "lib/whois/record/parser/whois.educause.edu.rb", "lib/whois/record/parser/whois.eenet.ee.rb", "lib/whois/record/parser/whois.enom.com.rb", "lib/whois/record/parser/whois.eu.org.rb", "lib/whois/record/parser/whois.eu.rb", "lib/whois/record/parser/whois.fi.rb", "lib/whois/record/parser/whois.gandi.net.rb", "lib/whois/record/parser/whois.gg.rb", "lib/whois/record/parser/whois.godaddy.com.rb", "lib/whois/record/parser/whois.gov.za.rb", "lib/whois/record/parser/whois.hkirc.hk.rb", "lib/whois/record/parser/whois.iam.net.ma.rb", "lib/whois/record/parser/whois.iana.org.rb", "lib/whois/record/parser/whois.iis.nu.rb", "lib/whois/record/parser/whois.iis.se.rb", "lib/whois/record/parser/whois.in.ua.rb", "lib/whois/record/parser/whois.isnic.is.rb", "lib/whois/record/parser/whois.isoc.org.il.rb", "lib/whois/record/parser/whois.ja.net.rb", "lib/whois/record/parser/whois.je.rb", "lib/whois/record/parser/whois.jprs.jp.rb", "lib/whois/record/parser/whois.kenic.or.ke.rb", "lib/whois/record/parser/whois.kr.rb", "lib/whois/record/parser/whois.markmonitor.com.rb", "lib/whois/record/parser/whois.meridiantld.net.rb", "lib/whois/record/parser/whois.monic.mo.rb", "lib/whois/record/parser/whois.museum.rb", "lib/whois/record/parser/whois.na-nic.com.na.rb", "lib/whois/record/parser/whois.nc.rb", "lib/whois/record/parser/whois.netcom.cm.rb", "lib/whois/record/parser/whois.networksolutions.com.rb", "lib/whois/record/parser/whois.nic.ac.rb", "lib/whois/record/parser/whois.nic.af.rb", "lib/whois/record/parser/whois.nic.ag.rb", "lib/whois/record/parser/whois.nic.am.rb", "lib/whois/record/parser/whois.nic.as.rb", "lib/whois/record/parser/whois.nic.asia.rb", "lib/whois/record/parser/whois.nic.at.rb", "lib/whois/record/parser/whois.nic.bj.rb", "lib/whois/record/parser/whois.nic.bo.rb", "lib/whois/record/parser/whois.nic.cd.rb", "lib/whois/record/parser/whois.nic.ch.rb", "lib/whois/record/parser/whois.nic.ci.rb", "lib/whois/record/parser/whois.nic.ck.rb", "lib/whois/record/parser/whois.nic.cl.rb", "lib/whois/record/parser/whois.nic.co.rb", "lib/whois/record/parser/whois.nic.coop.rb", "lib/whois/record/parser/whois.nic.cx.rb", "lib/whois/record/parser/whois.nic.cz.rb", "lib/whois/record/parser/whois.nic.dm.rb", "lib/whois/record/parser/whois.nic.dz.rb", "lib/whois/record/parser/whois.nic.ec.rb", "lib/whois/record/parser/whois.nic.es.rb", "lib/whois/record/parser/whois.nic.fo.rb", "lib/whois/record/parser/whois.nic.fr.rb", "lib/whois/record/parser/whois.nic.gd.rb", "lib/whois/record/parser/whois.nic.gl.rb", "lib/whois/record/parser/whois.nic.gov.rb", "lib/whois/record/parser/whois.nic.gs.rb", "lib/whois/record/parser/whois.nic.hn.rb", "lib/whois/record/parser/whois.nic.ht.rb", "lib/whois/record/parser/whois.nic.hu.rb", "lib/whois/record/parser/whois.nic.im.rb", "lib/whois/record/parser/whois.nic.io.rb", "lib/whois/record/parser/whois.nic.ir.rb", "lib/whois/record/parser/whois.nic.it.rb", "lib/whois/record/parser/whois.nic.ki.rb", "lib/whois/record/parser/whois.nic.kz.rb", "lib/whois/record/parser/whois.nic.la.rb", "lib/whois/record/parser/whois.nic.li.rb", "lib/whois/record/parser/whois.nic.lk.rb", "lib/whois/record/parser/whois.nic.lv.rb", "lib/whois/record/parser/whois.nic.ly.rb", "lib/whois/record/parser/whois.nic.md.rb", "lib/whois/record/parser/whois.nic.me.rb", "lib/whois/record/parser/whois.nic.mg.rb", "lib/whois/record/parser/whois.nic.ms.rb", "lib/whois/record/parser/whois.nic.mu.rb", "lib/whois/record/parser/whois.nic.mx.rb", "lib/whois/record/parser/whois.nic.name.rb", "lib/whois/record/parser/whois.nic.net.ng.rb", "lib/whois/record/parser/whois.nic.net.sa.rb", "lib/whois/record/parser/whois.nic.net.sb.rb", "lib/whois/record/parser/whois.nic.nf.rb", "lib/whois/record/parser/whois.nic.org.uy.rb", "lib/whois/record/parser/whois.nic.pr.rb", "lib/whois/record/parser/whois.nic.priv.at.rb", "lib/whois/record/parser/whois.nic.pw.rb", "lib/whois/record/parser/whois.nic.sh.rb", "lib/whois/record/parser/whois.nic.sl.rb", "lib/whois/record/parser/whois.nic.sm.rb", "lib/whois/record/parser/whois.nic.sn.rb", "lib/whois/record/parser/whois.nic.so.rb", "lib/whois/record/parser/whois.nic.st.rb", "lib/whois/record/parser/whois.nic.tel.rb", "lib/whois/record/parser/whois.nic.tl.rb", "lib/whois/record/parser/whois.nic.tm.rb", "lib/whois/record/parser/whois.nic.tr.rb", "lib/whois/record/parser/whois.nic.travel.rb", "lib/whois/record/parser/whois.nic.tv.rb", "lib/whois/record/parser/whois.nic.uk.rb", "lib/whois/record/parser/whois.nic.us.rb", "lib/whois/record/parser/whois.nic.ve.rb", "lib/whois/record/parser/whois.nic.xxx.rb", "lib/whois/record/parser/whois.norid.no.rb", "lib/whois/record/parser/whois.org.za.rb", "lib/whois/record/parser/whois.pairnic.com.rb", "lib/whois/record/parser/whois.pandi.or.id.rb", "lib/whois/record/parser/whois.pir.org.rb", "lib/whois/record/parser/whois.pnina.ps.rb", "lib/whois/record/parser/whois.register.bg.rb", "lib/whois/record/parser/whois.register.com.rb", "lib/whois/record/parser/whois.registro.br.rb", "lib/whois/record/parser/whois.registry.gy.rb", "lib/whois/record/parser/whois.registry.hm.rb", "lib/whois/record/parser/whois.registry.in.rb", "lib/whois/record/parser/whois.registry.net.za.rb", "lib/whois/record/parser/whois.registry.om.rb", "lib/whois/record/parser/whois.registry.qa.rb", "lib/whois/record/parser/whois.registrypro.pro.rb", "lib/whois/record/parser/whois.ripe.net.rb", "lib/whois/record/parser/whois.rnids.rs.rb", "lib/whois/record/parser/whois.rotld.ro.rb", "lib/whois/record/parser/whois.rrpproxy.net.rb", "lib/whois/record/parser/whois.schlund.info.rb", "lib/whois/record/parser/whois.sgnic.sg.rb", "lib/whois/record/parser/whois.sk-nic.sk.rb", "lib/whois/record/parser/whois.smallregistry.net.rb", "lib/whois/record/parser/whois.srs.net.nz.rb", "lib/whois/record/parser/whois.sx.rb", "lib/whois/record/parser/whois.tcinet.ru.rb", "lib/whois/record/parser/whois.thnic.co.th.rb", "lib/whois/record/parser/whois.tld.ee.rb", "lib/whois/record/parser/whois.tld.sy.rb", "lib/whois/record/parser/whois.tonic.to.rb", "lib/whois/record/parser/whois.tucows.com.rb", "lib/whois/record/parser/whois.twnic.net.tw.rb", "lib/whois/record/parser/whois.tznic.or.tz.rb", "lib/whois/record/parser/whois.ua.rb", "lib/whois/record/parser/whois.udag.net.rb", "lib/whois/record/parser/whois.usp.ac.fj.rb", "lib/whois/record/parser/whois.verisign-grs.com.rb", "lib/whois/record/parser/whois.website.ws.rb", "lib/whois/record/parser/whois.wildwestdomains.com.rb", "lib/whois/record/parser/whois.yoursrs.com.rb", "lib/whois/record/parser/whois.za.net.rb", "lib/whois/record/parser/whois.za.org.rb", "lib/whois/record/parser/whois1.nic.bi.rb", "lib/whois/record/parser.rb", "lib/whois/record/part.rb", "lib/whois/record/registrar.rb", "lib/whois/record/scanners", "lib/whois/record/scanners/base.rb", "lib/whois/record/scanners/base_afilias.rb", "lib/whois/record/scanners/base_cocca2.rb", "lib/whois/record/scanners/base_icann_compliant.rb", "lib/whois/record/scanners/base_iisse.rb", "lib/whois/record/scanners/base_shared1.rb", "lib/whois/record/scanners/base_shared2.rb", "lib/whois/record/scanners/base_shared3.rb", "lib/whois/record/scanners/base_whoisd.rb", "lib/whois/record/scanners/iana.rb", "lib/whois/record/scanners/scannable.rb", "lib/whois/record/scanners/verisign.rb", "lib/whois/record/scanners/whois.ati.tn.rb", "lib/whois/record/scanners/whois.audns.net.au.rb", "lib/whois/record/scanners/whois.cctld.by.rb", "lib/whois/record/scanners/whois.centralnic.com.rb", "lib/whois/record/scanners/whois.cira.ca.rb", "lib/whois/record/scanners/whois.cnnic.cn.rb", "lib/whois/record/scanners/whois.denic.de.rb", "lib/whois/record/scanners/whois.dns.hr.rb", "lib/whois/record/scanners/whois.domainregistry.ie.rb", "lib/whois/record/scanners/whois.fi.rb", "lib/whois/record/scanners/whois.nc.rb", "lib/whois/record/scanners/whois.nic.cz.rb", "lib/whois/record/scanners/whois.nic.it.rb", "lib/whois/record/scanners/whois.pir.org.rb", "lib/whois/record/scanners/whois.registry.net.za.rb", "lib/whois/record/scanners/whois.rnids.rs.rb", "lib/whois/record/scanners/whois.smallregistry.net.rb", "lib/whois/record/scanners/whois.srs.net.nz.rb", "lib/whois/record/scanners/whois.sx.rb", "lib/whois/record/scanners/whois.tucows.com.rb", "lib/whois/record/scanners/whois.yoursrs.com.rb", "lib/whois/record/super_struct.rb", "lib/whois/record.rb", "lib/whois/server", "lib/whois/server/adapters", "lib/whois/server/adapters/afilias.rb", "lib/whois/server/adapters/arin.rb", "lib/whois/server/adapters/arpa.rb", "lib/whois/server/adapters/base.rb", "lib/whois/server/adapters/formatted.rb", "lib/whois/server/adapters/none.rb", "lib/whois/server/adapters/not_implemented.rb", "lib/whois/server/adapters/standard.rb", "lib/whois/server/adapters/verisign.rb", "lib/whois/server/adapters/web.rb", "lib/whois/server/socket_handler.rb", "lib/whois/server.rb", "lib/whois/version.rb", "lib/whois.rb"]
|
15
|
+
s.files = [".yardopts", "CHANGELOG.md", "LICENSE.txt", "README.md", "bin/ruby-whois", "data/asn16.json", "data/asn32.json", "data/ipv4.json", "data/ipv6.json", "data/tld.json", "lib/whois", "lib/whois.rb", "lib/whois/client.rb", "lib/whois/errors.rb", "lib/whois/record", "lib/whois/record.rb", "lib/whois/record/contact.rb", "lib/whois/record/nameserver.rb", "lib/whois/record/parser", "lib/whois/record/parser.rb", "lib/whois/record/parser/base.rb", "lib/whois/record/parser/base_afilias.rb", "lib/whois/record/parser/base_afilias2.rb", "lib/whois/record/parser/base_cocca.rb", "lib/whois/record/parser/base_cocca2.rb", "lib/whois/record/parser/base_icann_compliant.rb", "lib/whois/record/parser/base_icb.rb", "lib/whois/record/parser/base_iisse.rb", "lib/whois/record/parser/base_shared1.rb", "lib/whois/record/parser/base_shared2.rb", "lib/whois/record/parser/base_shared3.rb", "lib/whois/record/parser/base_verisign.rb", "lib/whois/record/parser/base_whoisd.rb", "lib/whois/record/parser/blank.rb", "lib/whois/record/parser/ccwhois.verisign-grs.com.rb", "lib/whois/record/parser/example.rb", "lib/whois/record/parser/jobswhois.verisign-grs.com.rb", "lib/whois/record/parser/kero.yachay.pe.rb", "lib/whois/record/parser/whois.1und1.info.rb", "lib/whois/record/parser/whois.adamsnames.tc.rb", "lib/whois/record/parser/whois.aeda.net.ae.rb", "lib/whois/record/parser/whois.aero.rb", "lib/whois/record/parser/whois.afilias-grs.info.rb", "lib/whois/record/parser/whois.afilias.info.rb", "lib/whois/record/parser/whois.ai.rb", "lib/whois/record/parser/whois.arnes.si.rb", "lib/whois/record/parser/whois.ascio.com.rb", "lib/whois/record/parser/whois.ati.tn.rb", "lib/whois/record/parser/whois.audns.net.au.rb", "lib/whois/record/parser/whois.ax.rb", "lib/whois/record/parser/whois.biz.rb", "lib/whois/record/parser/whois.bn.rb", "lib/whois/record/parser/whois.cat.rb", "lib/whois/record/parser/whois.cctld.by.rb", "lib/whois/record/parser/whois.cctld.uz.rb", "lib/whois/record/parser/whois.centralnic.com.rb", "lib/whois/record/parser/whois.cira.ca.rb", "lib/whois/record/parser/whois.cmc.iq.rb", "lib/whois/record/parser/whois.cnnic.cn.rb", "lib/whois/record/parser/whois.co.ca.rb", "lib/whois/record/parser/whois.co.pl.rb", "lib/whois/record/parser/whois.co.ug.rb", "lib/whois/record/parser/whois.comlaude.com.rb", "lib/whois/record/parser/whois.corporatedomains.com.rb", "lib/whois/record/parser/whois.denic.de.rb", "lib/whois/record/parser/whois.dk-hostmaster.dk.rb", "lib/whois/record/parser/whois.dns.be.rb", "lib/whois/record/parser/whois.dns.hr.rb", "lib/whois/record/parser/whois.dns.lu.rb", "lib/whois/record/parser/whois.dns.pl.rb", "lib/whois/record/parser/whois.dns.pt.rb", "lib/whois/record/parser/whois.domain-registry.nl.rb", "lib/whois/record/parser/whois.domain.kg.rb", "lib/whois/record/parser/whois.domainregistry.ie.rb", "lib/whois/record/parser/whois.domainregistry.my.rb", "lib/whois/record/parser/whois.domreg.lt.rb", "lib/whois/record/parser/whois.donuts.co.rb", "lib/whois/record/parser/whois.dot.cf.rb", "lib/whois/record/parser/whois.dot.tk.rb", "lib/whois/record/parser/whois.dotmobiregistry.net.rb", "lib/whois/record/parser/whois.dotpostregistry.net.rb", "lib/whois/record/parser/whois.dreamhost.com.rb", "lib/whois/record/parser/whois.educause.edu.rb", "lib/whois/record/parser/whois.eenet.ee.rb", "lib/whois/record/parser/whois.enom.com.rb", "lib/whois/record/parser/whois.eu.org.rb", "lib/whois/record/parser/whois.eu.rb", "lib/whois/record/parser/whois.fi.rb", "lib/whois/record/parser/whois.gandi.net.rb", "lib/whois/record/parser/whois.gg.rb", "lib/whois/record/parser/whois.godaddy.com.rb", "lib/whois/record/parser/whois.gov.za.rb", "lib/whois/record/parser/whois.hkirc.hk.rb", "lib/whois/record/parser/whois.iam.net.ma.rb", "lib/whois/record/parser/whois.iana.org.rb", "lib/whois/record/parser/whois.iis.nu.rb", "lib/whois/record/parser/whois.iis.se.rb", "lib/whois/record/parser/whois.in.ua.rb", "lib/whois/record/parser/whois.isnic.is.rb", "lib/whois/record/parser/whois.isoc.org.il.rb", "lib/whois/record/parser/whois.ja.net.rb", "lib/whois/record/parser/whois.je.rb", "lib/whois/record/parser/whois.jprs.jp.rb", "lib/whois/record/parser/whois.kenic.or.ke.rb", "lib/whois/record/parser/whois.kr.rb", "lib/whois/record/parser/whois.markmonitor.com.rb", "lib/whois/record/parser/whois.meridiantld.net.rb", "lib/whois/record/parser/whois.monic.mo.rb", "lib/whois/record/parser/whois.museum.rb", "lib/whois/record/parser/whois.na-nic.com.na.rb", "lib/whois/record/parser/whois.nc.rb", "lib/whois/record/parser/whois.netcom.cm.rb", "lib/whois/record/parser/whois.networksolutions.com.rb", "lib/whois/record/parser/whois.nic.ac.rb", "lib/whois/record/parser/whois.nic.af.rb", "lib/whois/record/parser/whois.nic.ag.rb", "lib/whois/record/parser/whois.nic.am.rb", "lib/whois/record/parser/whois.nic.as.rb", "lib/whois/record/parser/whois.nic.asia.rb", "lib/whois/record/parser/whois.nic.at.rb", "lib/whois/record/parser/whois.nic.bj.rb", "lib/whois/record/parser/whois.nic.bo.rb", "lib/whois/record/parser/whois.nic.cd.rb", "lib/whois/record/parser/whois.nic.ch.rb", "lib/whois/record/parser/whois.nic.ci.rb", "lib/whois/record/parser/whois.nic.ck.rb", "lib/whois/record/parser/whois.nic.cl.rb", "lib/whois/record/parser/whois.nic.co.rb", "lib/whois/record/parser/whois.nic.coop.rb", "lib/whois/record/parser/whois.nic.cx.rb", "lib/whois/record/parser/whois.nic.cz.rb", "lib/whois/record/parser/whois.nic.dm.rb", "lib/whois/record/parser/whois.nic.dz.rb", "lib/whois/record/parser/whois.nic.ec.rb", "lib/whois/record/parser/whois.nic.es.rb", "lib/whois/record/parser/whois.nic.fo.rb", "lib/whois/record/parser/whois.nic.fr.rb", "lib/whois/record/parser/whois.nic.gd.rb", "lib/whois/record/parser/whois.nic.gl.rb", "lib/whois/record/parser/whois.nic.gov.rb", "lib/whois/record/parser/whois.nic.gs.rb", "lib/whois/record/parser/whois.nic.hn.rb", "lib/whois/record/parser/whois.nic.ht.rb", "lib/whois/record/parser/whois.nic.hu.rb", "lib/whois/record/parser/whois.nic.im.rb", "lib/whois/record/parser/whois.nic.io.rb", "lib/whois/record/parser/whois.nic.ir.rb", "lib/whois/record/parser/whois.nic.it.rb", "lib/whois/record/parser/whois.nic.ki.rb", "lib/whois/record/parser/whois.nic.kz.rb", "lib/whois/record/parser/whois.nic.la.rb", "lib/whois/record/parser/whois.nic.li.rb", "lib/whois/record/parser/whois.nic.lk.rb", "lib/whois/record/parser/whois.nic.lv.rb", "lib/whois/record/parser/whois.nic.ly.rb", "lib/whois/record/parser/whois.nic.md.rb", "lib/whois/record/parser/whois.nic.me.rb", "lib/whois/record/parser/whois.nic.mg.rb", "lib/whois/record/parser/whois.nic.ms.rb", "lib/whois/record/parser/whois.nic.mu.rb", "lib/whois/record/parser/whois.nic.mx.rb", "lib/whois/record/parser/whois.nic.name.rb", "lib/whois/record/parser/whois.nic.net.ng.rb", "lib/whois/record/parser/whois.nic.net.sa.rb", "lib/whois/record/parser/whois.nic.net.sb.rb", "lib/whois/record/parser/whois.nic.nf.rb", "lib/whois/record/parser/whois.nic.org.uy.rb", "lib/whois/record/parser/whois.nic.pr.rb", "lib/whois/record/parser/whois.nic.priv.at.rb", "lib/whois/record/parser/whois.nic.pw.rb", "lib/whois/record/parser/whois.nic.sh.rb", "lib/whois/record/parser/whois.nic.sl.rb", "lib/whois/record/parser/whois.nic.sm.rb", "lib/whois/record/parser/whois.nic.sn.rb", "lib/whois/record/parser/whois.nic.so.rb", "lib/whois/record/parser/whois.nic.st.rb", "lib/whois/record/parser/whois.nic.tel.rb", "lib/whois/record/parser/whois.nic.tl.rb", "lib/whois/record/parser/whois.nic.tm.rb", "lib/whois/record/parser/whois.nic.tr.rb", "lib/whois/record/parser/whois.nic.travel.rb", "lib/whois/record/parser/whois.nic.tv.rb", "lib/whois/record/parser/whois.nic.uk.rb", "lib/whois/record/parser/whois.nic.us.rb", "lib/whois/record/parser/whois.nic.ve.rb", "lib/whois/record/parser/whois.nic.xxx.rb", "lib/whois/record/parser/whois.norid.no.rb", "lib/whois/record/parser/whois.org.za.rb", "lib/whois/record/parser/whois.pairnic.com.rb", "lib/whois/record/parser/whois.pandi.or.id.rb", "lib/whois/record/parser/whois.pir.org.rb", "lib/whois/record/parser/whois.pnina.ps.rb", "lib/whois/record/parser/whois.register.bg.rb", "lib/whois/record/parser/whois.register.com.rb", "lib/whois/record/parser/whois.registro.br.rb", "lib/whois/record/parser/whois.registry.gy.rb", "lib/whois/record/parser/whois.registry.hm.rb", "lib/whois/record/parser/whois.registry.in.rb", "lib/whois/record/parser/whois.registry.net.za.rb", "lib/whois/record/parser/whois.registry.om.rb", "lib/whois/record/parser/whois.registry.qa.rb", "lib/whois/record/parser/whois.registrypro.pro.rb", "lib/whois/record/parser/whois.ripe.net.rb", "lib/whois/record/parser/whois.rnids.rs.rb", "lib/whois/record/parser/whois.rotld.ro.rb", "lib/whois/record/parser/whois.rrpproxy.net.rb", "lib/whois/record/parser/whois.schlund.info.rb", "lib/whois/record/parser/whois.sgnic.sg.rb", "lib/whois/record/parser/whois.sk-nic.sk.rb", "lib/whois/record/parser/whois.smallregistry.net.rb", "lib/whois/record/parser/whois.srs.net.nz.rb", "lib/whois/record/parser/whois.sx.rb", "lib/whois/record/parser/whois.tcinet.ru.rb", "lib/whois/record/parser/whois.thnic.co.th.rb", "lib/whois/record/parser/whois.tld.ee.rb", "lib/whois/record/parser/whois.tld.sy.rb", "lib/whois/record/parser/whois.tonic.to.rb", "lib/whois/record/parser/whois.tucows.com.rb", "lib/whois/record/parser/whois.twnic.net.tw.rb", "lib/whois/record/parser/whois.tznic.or.tz.rb", "lib/whois/record/parser/whois.ua.rb", "lib/whois/record/parser/whois.udag.net.rb", "lib/whois/record/parser/whois.uniregistry.net.rb", "lib/whois/record/parser/whois.usp.ac.fj.rb", "lib/whois/record/parser/whois.verisign-grs.com.rb", "lib/whois/record/parser/whois.website.ws.rb", "lib/whois/record/parser/whois.wildwestdomains.com.rb", "lib/whois/record/parser/whois.yoursrs.com.rb", "lib/whois/record/parser/whois.za.net.rb", "lib/whois/record/parser/whois.za.org.rb", "lib/whois/record/parser/whois1.nic.bi.rb", "lib/whois/record/part.rb", "lib/whois/record/registrar.rb", "lib/whois/record/scanners", "lib/whois/record/scanners/base.rb", "lib/whois/record/scanners/base_afilias.rb", "lib/whois/record/scanners/base_cocca2.rb", "lib/whois/record/scanners/base_icann_compliant.rb", "lib/whois/record/scanners/base_iisse.rb", "lib/whois/record/scanners/base_shared1.rb", "lib/whois/record/scanners/base_shared2.rb", "lib/whois/record/scanners/base_shared3.rb", "lib/whois/record/scanners/base_whoisd.rb", "lib/whois/record/scanners/iana.rb", "lib/whois/record/scanners/scannable.rb", "lib/whois/record/scanners/verisign.rb", "lib/whois/record/scanners/whois.ati.tn.rb", "lib/whois/record/scanners/whois.audns.net.au.rb", "lib/whois/record/scanners/whois.cctld.by.rb", "lib/whois/record/scanners/whois.centralnic.com.rb", "lib/whois/record/scanners/whois.cira.ca.rb", "lib/whois/record/scanners/whois.cnnic.cn.rb", "lib/whois/record/scanners/whois.denic.de.rb", "lib/whois/record/scanners/whois.dns.hr.rb", "lib/whois/record/scanners/whois.domainregistry.ie.rb", "lib/whois/record/scanners/whois.fi.rb", "lib/whois/record/scanners/whois.nc.rb", "lib/whois/record/scanners/whois.nic.cz.rb", "lib/whois/record/scanners/whois.nic.it.rb", "lib/whois/record/scanners/whois.pir.org.rb", "lib/whois/record/scanners/whois.registry.net.za.rb", "lib/whois/record/scanners/whois.rnids.rs.rb", "lib/whois/record/scanners/whois.smallregistry.net.rb", "lib/whois/record/scanners/whois.srs.net.nz.rb", "lib/whois/record/scanners/whois.sx.rb", "lib/whois/record/scanners/whois.tucows.com.rb", "lib/whois/record/scanners/whois.yoursrs.com.rb", "lib/whois/record/super_struct.rb", "lib/whois/server", "lib/whois/server.rb", "lib/whois/server/adapters", "lib/whois/server/adapters/afilias.rb", "lib/whois/server/adapters/arin.rb", "lib/whois/server/adapters/arpa.rb", "lib/whois/server/adapters/base.rb", "lib/whois/server/adapters/formatted.rb", "lib/whois/server/adapters/none.rb", "lib/whois/server/adapters/not_implemented.rb", "lib/whois/server/adapters/standard.rb", "lib/whois/server/adapters/verisign.rb", "lib/whois/server/adapters/web.rb", "lib/whois/server/socket_handler.rb", "lib/whois/version.rb", "whois.gemspec"]
|
14
16
|
s.homepage = "http://www.ruby-whois.org/"
|
15
17
|
s.licenses = ["MIT"]
|
16
18
|
s.post_install_message = "********************************************************************************\n\n Thank you for installing the whois gem!\n\n If you like this gem, please support the project.\n http://pledgie.com/campaigns/11383\n\n Does your project or organization use this gem? Add it to the apps wiki.\n https://github.com/weppos/whois/wiki/apps\n\n Are you looking for a quick and convenient way to perform WHOIS queries?\n Check out RoboWhois WHOIS API.\n https://www.robowhois.com/\n\n********************************************************************************\n"
|
17
|
-
s.require_paths = ["lib"]
|
18
19
|
s.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
|
19
20
|
s.rubyforge_project = "whois"
|
20
|
-
s.rubygems_version = "2.
|
21
|
+
s.rubygems_version = "2.2.2"
|
21
22
|
s.summary = "An intelligent pure Ruby WHOIS client and parser."
|
22
23
|
|
23
24
|
if s.respond_to? :specification_version then
|
24
25
|
s.specification_version = 4
|
25
26
|
|
26
27
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
28
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 3"])
|
27
29
|
s.add_development_dependency(%q<rake>, [">= 0"])
|
28
30
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
29
31
|
s.add_development_dependency(%q<mocha>, [">= 0"])
|
30
32
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
31
33
|
else
|
34
|
+
s.add_dependency(%q<activesupport>, [">= 3"])
|
32
35
|
s.add_dependency(%q<rake>, [">= 0"])
|
33
36
|
s.add_dependency(%q<rspec>, [">= 0"])
|
34
37
|
s.add_dependency(%q<mocha>, [">= 0"])
|
35
38
|
s.add_dependency(%q<yard>, [">= 0"])
|
36
39
|
end
|
37
40
|
else
|
41
|
+
s.add_dependency(%q<activesupport>, [">= 3"])
|
38
42
|
s.add_dependency(%q<rake>, [">= 0"])
|
39
43
|
s.add_dependency(%q<rspec>, [">= 0"])
|
40
44
|
s.add_dependency(%q<mocha>, [">= 0"])
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: whois
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.
|
4
|
+
version: 3.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simone Carletti
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rake
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -76,29 +90,23 @@ executables:
|
|
76
90
|
extensions: []
|
77
91
|
extra_rdoc_files: []
|
78
92
|
files:
|
79
|
-
- LICENSE.txt
|
80
93
|
- .yardopts
|
81
94
|
- CHANGELOG.md
|
95
|
+
- LICENSE.txt
|
82
96
|
- README.md
|
83
|
-
- whois.gemspec
|
84
97
|
- bin/ruby-whois
|
85
98
|
- data/asn16.json
|
86
99
|
- data/asn32.json
|
87
100
|
- data/ipv4.json
|
88
101
|
- data/ipv6.json
|
89
102
|
- data/tld.json
|
103
|
+
- lib/whois.rb
|
90
104
|
- lib/whois/client.rb
|
91
|
-
- lib/whois/core_ext/array/extract_options.rb
|
92
|
-
- lib/whois/core_ext/array/wrap.rb
|
93
|
-
- lib/whois/core_ext/class/attribute.rb
|
94
|
-
- lib/whois/core_ext/kernel/singleton_class.rb
|
95
|
-
- lib/whois/core_ext/module/remove_method.rb
|
96
|
-
- lib/whois/core_ext/object/blank.rb
|
97
|
-
- lib/whois/core_ext/time/calculations.rb
|
98
|
-
- lib/whois/core_ext.rb
|
99
105
|
- lib/whois/errors.rb
|
106
|
+
- lib/whois/record.rb
|
100
107
|
- lib/whois/record/contact.rb
|
101
108
|
- lib/whois/record/nameserver.rb
|
109
|
+
- lib/whois/record/parser.rb
|
102
110
|
- lib/whois/record/parser/base.rb
|
103
111
|
- lib/whois/record/parser/base_afilias.rb
|
104
112
|
- lib/whois/record/parser/base_afilias2.rb
|
@@ -142,6 +150,7 @@ files:
|
|
142
150
|
- lib/whois/record/parser/whois.co.pl.rb
|
143
151
|
- lib/whois/record/parser/whois.co.ug.rb
|
144
152
|
- lib/whois/record/parser/whois.comlaude.com.rb
|
153
|
+
- lib/whois/record/parser/whois.corporatedomains.com.rb
|
145
154
|
- lib/whois/record/parser/whois.denic.de.rb
|
146
155
|
- lib/whois/record/parser/whois.dk-hostmaster.dk.rb
|
147
156
|
- lib/whois/record/parser/whois.dns.be.rb
|
@@ -309,7 +318,6 @@ files:
|
|
309
318
|
- lib/whois/record/parser/whois.za.net.rb
|
310
319
|
- lib/whois/record/parser/whois.za.org.rb
|
311
320
|
- lib/whois/record/parser/whois1.nic.bi.rb
|
312
|
-
- lib/whois/record/parser.rb
|
313
321
|
- lib/whois/record/part.rb
|
314
322
|
- lib/whois/record/registrar.rb
|
315
323
|
- lib/whois/record/scanners/base.rb
|
@@ -346,7 +354,7 @@ files:
|
|
346
354
|
- lib/whois/record/scanners/whois.tucows.com.rb
|
347
355
|
- lib/whois/record/scanners/whois.yoursrs.com.rb
|
348
356
|
- lib/whois/record/super_struct.rb
|
349
|
-
- lib/whois/
|
357
|
+
- lib/whois/server.rb
|
350
358
|
- lib/whois/server/adapters/afilias.rb
|
351
359
|
- lib/whois/server/adapters/arin.rb
|
352
360
|
- lib/whois/server/adapters/arpa.rb
|
@@ -358,9 +366,8 @@ files:
|
|
358
366
|
- lib/whois/server/adapters/verisign.rb
|
359
367
|
- lib/whois/server/adapters/web.rb
|
360
368
|
- lib/whois/server/socket_handler.rb
|
361
|
-
- lib/whois/server.rb
|
362
369
|
- lib/whois/version.rb
|
363
|
-
-
|
370
|
+
- whois.gemspec
|
364
371
|
homepage: http://www.ruby-whois.org/
|
365
372
|
licenses:
|
366
373
|
- MIT
|
@@ -396,7 +403,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
396
403
|
version: '0'
|
397
404
|
requirements: []
|
398
405
|
rubyforge_project: whois
|
399
|
-
rubygems_version: 2.
|
406
|
+
rubygems_version: 2.2.2
|
400
407
|
signing_key:
|
401
408
|
specification_version: 4
|
402
409
|
summary: An intelligent pure Ruby WHOIS client and parser.
|
data/lib/whois/core_ext.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
if defined?(ActiveSupport::VERSION) && ActiveSupport::VERSION::MAJOR == 3
|
2
|
-
require 'active_support/core_ext/array/wrap'
|
3
|
-
require 'active_support/core_ext/class/attribute'
|
4
|
-
require 'active_support/core_ext/object/blank'
|
5
|
-
else
|
6
|
-
require 'whois/core_ext/array/wrap'
|
7
|
-
require 'whois/core_ext/class/attribute'
|
8
|
-
require 'whois/core_ext/object/blank'
|
9
|
-
end
|
10
|
-
|
11
|
-
require 'whois/core_ext/time/calculations'
|
@@ -1,29 +0,0 @@
|
|
1
|
-
class Hash
|
2
|
-
# By default, only instances of Hash itself are extractable.
|
3
|
-
# Subclasses of Hash may implement this method and return
|
4
|
-
# true to declare themselves as extractable. If a Hash
|
5
|
-
# is extractable, Array#extract_options! pops it from
|
6
|
-
# the Array when it is the last element of the Array.
|
7
|
-
def extractable_options?
|
8
|
-
instance_of?(Hash)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class Array
|
13
|
-
# Extracts options from a set of arguments. Removes and returns the last
|
14
|
-
# element in the array if it's a hash, otherwise returns a blank hash.
|
15
|
-
#
|
16
|
-
# def options(*args)
|
17
|
-
# args.extract_options!
|
18
|
-
# end
|
19
|
-
#
|
20
|
-
# options(1, 2) # => {}
|
21
|
-
# options(1, 2, a: :b) # => {:a=>:b}
|
22
|
-
def extract_options!
|
23
|
-
if last.is_a?(Hash) && last.extractable_options?
|
24
|
-
pop
|
25
|
-
else
|
26
|
-
{}
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
class Array
|
2
|
-
# Wraps its argument in an array unless it is already an array (or array-like).
|
3
|
-
#
|
4
|
-
# Specifically:
|
5
|
-
#
|
6
|
-
# * If the argument is +nil+ an empty list is returned.
|
7
|
-
# * Otherwise, if the argument responds to +to_ary+ it is invoked, and its result returned.
|
8
|
-
# * Otherwise, returns an array with the argument as its single element.
|
9
|
-
#
|
10
|
-
# Array.wrap(nil) # => []
|
11
|
-
# Array.wrap([1, 2, 3]) # => [1, 2, 3]
|
12
|
-
# Array.wrap(0) # => [0]
|
13
|
-
#
|
14
|
-
# This method is similar in purpose to <tt>Kernel#Array</tt>, but there are some differences:
|
15
|
-
#
|
16
|
-
# * If the argument responds to +to_ary+ the method is invoked. <tt>Kernel#Array</tt>
|
17
|
-
# moves on to try +to_a+ if the returned value is +nil+, but <tt>Array.wrap</tt> returns
|
18
|
-
# +nil+ right away.
|
19
|
-
# * If the returned value from +to_ary+ is neither +nil+ nor an +Array+ object, <tt>Kernel#Array</tt>
|
20
|
-
# raises an exception, while <tt>Array.wrap</tt> does not, it just returns the value.
|
21
|
-
# * It does not call +to_a+ on the argument, but returns an empty array if argument is +nil+.
|
22
|
-
#
|
23
|
-
# The second point is easily explained with some enumerables:
|
24
|
-
#
|
25
|
-
# Array(foo: :bar) # => [[:foo, :bar]]
|
26
|
-
# Array.wrap(foo: :bar) # => [{:foo=>:bar}]
|
27
|
-
#
|
28
|
-
# There's also a related idiom that uses the splat operator:
|
29
|
-
#
|
30
|
-
# [*object]
|
31
|
-
#
|
32
|
-
# which returns <tt>[]</tt> for +nil+, but calls to <tt>Array(object)</tt> otherwise.
|
33
|
-
#
|
34
|
-
# The differences with <tt>Kernel#Array</tt> explained above
|
35
|
-
# apply to the rest of <tt>object</tt>s.
|
36
|
-
def self.wrap(object)
|
37
|
-
if object.nil?
|
38
|
-
[]
|
39
|
-
elsif object.respond_to?(:to_ary)
|
40
|
-
object.to_ary || [object]
|
41
|
-
else
|
42
|
-
[object]
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,115 +0,0 @@
|
|
1
|
-
require 'whois/core_ext/kernel/singleton_class'
|
2
|
-
require 'whois/core_ext/module/remove_method'
|
3
|
-
require 'whois/core_ext/array/extract_options'
|
4
|
-
|
5
|
-
class Class
|
6
|
-
# Declare a class-level attribute whose value is inheritable by subclasses.
|
7
|
-
# Subclasses can change their own value and it will not impact parent class.
|
8
|
-
#
|
9
|
-
# class Base
|
10
|
-
# class_attribute :setting
|
11
|
-
# end
|
12
|
-
#
|
13
|
-
# class Subclass < Base
|
14
|
-
# end
|
15
|
-
#
|
16
|
-
# Base.setting = true
|
17
|
-
# Subclass.setting # => true
|
18
|
-
# Subclass.setting = false
|
19
|
-
# Subclass.setting # => false
|
20
|
-
# Base.setting # => true
|
21
|
-
#
|
22
|
-
# In the above case as long as Subclass does not assign a value to setting
|
23
|
-
# by performing <tt>Subclass.setting = _something_ </tt>, <tt>Subclass.setting</tt>
|
24
|
-
# would read value assigned to parent class. Once Subclass assigns a value then
|
25
|
-
# the value assigned by Subclass would be returned.
|
26
|
-
#
|
27
|
-
# This matches normal Ruby method inheritance: think of writing an attribute
|
28
|
-
# on a subclass as overriding the reader method. However, you need to be aware
|
29
|
-
# when using +class_attribute+ with mutable structures as +Array+ or +Hash+.
|
30
|
-
# In such cases, you don't want to do changes in places but use setters:
|
31
|
-
#
|
32
|
-
# Base.setting = []
|
33
|
-
# Base.setting # => []
|
34
|
-
# Subclass.setting # => []
|
35
|
-
#
|
36
|
-
# # Appending in child changes both parent and child because it is the same object:
|
37
|
-
# Subclass.setting << :foo
|
38
|
-
# Base.setting # => [:foo]
|
39
|
-
# Subclass.setting # => [:foo]
|
40
|
-
#
|
41
|
-
# # Use setters to not propagate changes:
|
42
|
-
# Base.setting = []
|
43
|
-
# Subclass.setting += [:foo]
|
44
|
-
# Base.setting # => []
|
45
|
-
# Subclass.setting # => [:foo]
|
46
|
-
#
|
47
|
-
# For convenience, a query method is defined as well:
|
48
|
-
#
|
49
|
-
# Subclass.setting? # => false
|
50
|
-
#
|
51
|
-
# Instances may overwrite the class value in the same way:
|
52
|
-
#
|
53
|
-
# Base.setting = true
|
54
|
-
# object = Base.new
|
55
|
-
# object.setting # => true
|
56
|
-
# object.setting = false
|
57
|
-
# object.setting # => false
|
58
|
-
# Base.setting # => true
|
59
|
-
#
|
60
|
-
# To opt out of the instance reader method, pass :instance_reader => false.
|
61
|
-
#
|
62
|
-
# object.setting # => NoMethodError
|
63
|
-
# object.setting? # => NoMethodError
|
64
|
-
#
|
65
|
-
# To opt out of the instance writer method, pass :instance_writer => false.
|
66
|
-
#
|
67
|
-
# object.setting = false # => NoMethodError
|
68
|
-
def class_attribute(*attrs)
|
69
|
-
options = attrs.extract_options!
|
70
|
-
instance_reader = options.fetch(:instance_reader, true)
|
71
|
-
instance_writer = options.fetch(:instance_writer, true)
|
72
|
-
|
73
|
-
attrs.each do |name|
|
74
|
-
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
75
|
-
def self.#{name}() nil end
|
76
|
-
def self.#{name}?() !!#{name} end
|
77
|
-
|
78
|
-
def self.#{name}=(val)
|
79
|
-
singleton_class.class_eval do
|
80
|
-
remove_possible_method(:#{name})
|
81
|
-
define_method(:#{name}) { val }
|
82
|
-
end
|
83
|
-
|
84
|
-
if singleton_class?
|
85
|
-
class_eval do
|
86
|
-
remove_possible_method(:#{name})
|
87
|
-
def #{name}
|
88
|
-
defined?(@#{name}) ? @#{name} : singleton_class.#{name}
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
val
|
93
|
-
end
|
94
|
-
|
95
|
-
if instance_reader
|
96
|
-
remove_possible_method :#{name}
|
97
|
-
def #{name}
|
98
|
-
defined?(@#{name}) ? @#{name} : self.class.#{name}
|
99
|
-
end
|
100
|
-
|
101
|
-
def #{name}?
|
102
|
-
!!#{name}
|
103
|
-
end
|
104
|
-
end
|
105
|
-
RUBY
|
106
|
-
|
107
|
-
attr_writer name if instance_writer
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
private
|
112
|
-
def singleton_class?
|
113
|
-
!name || '' == name
|
114
|
-
end
|
115
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
module Kernel
|
2
|
-
# Returns the object's singleton class.
|
3
|
-
def singleton_class
|
4
|
-
class << self
|
5
|
-
self
|
6
|
-
end
|
7
|
-
end unless respond_to?(:singleton_class) # exists in 1.9.2
|
8
|
-
|
9
|
-
# class_eval on an object acts like singleton_class.class_eval.
|
10
|
-
def class_eval(*args, &block)
|
11
|
-
singleton_class.class_eval(*args, &block)
|
12
|
-
end
|
13
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
class Module
|
2
|
-
def remove_possible_method(method)
|
3
|
-
if method_defined?(method) || private_method_defined?(method)
|
4
|
-
remove_method(method)
|
5
|
-
end
|
6
|
-
rescue NameError
|
7
|
-
# If the requested method is defined on a superclass or included module,
|
8
|
-
# method_defined? returns true but remove_method throws a NameError.
|
9
|
-
# Ignore this.
|
10
|
-
end
|
11
|
-
|
12
|
-
def redefine_method(method, &block)
|
13
|
-
remove_possible_method(method)
|
14
|
-
define_method(method, &block)
|
15
|
-
end
|
16
|
-
end
|
@@ -1,105 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
class Object
|
4
|
-
# An object is blank if it's false, empty, or a whitespace string.
|
5
|
-
# For example, '', ' ', +nil+, [], and {} are all blank.
|
6
|
-
#
|
7
|
-
# This simplifies:
|
8
|
-
#
|
9
|
-
# if address.nil? || address.empty?
|
10
|
-
#
|
11
|
-
# ...to:
|
12
|
-
#
|
13
|
-
# if address.blank?
|
14
|
-
def blank?
|
15
|
-
respond_to?(:empty?) ? empty? : !self
|
16
|
-
end
|
17
|
-
|
18
|
-
# An object is present if it's not <tt>blank?</tt>.
|
19
|
-
def present?
|
20
|
-
!blank?
|
21
|
-
end
|
22
|
-
|
23
|
-
# Returns object if it's <tt>present?</tt> otherwise returns +nil+.
|
24
|
-
# <tt>object.presence</tt> is equivalent to <tt>object.present? ? object : nil</tt>.
|
25
|
-
#
|
26
|
-
# This is handy for any representation of objects where blank is the same
|
27
|
-
# as not present at all. For example, this simplifies a common check for
|
28
|
-
# HTTP POST/query parameters:
|
29
|
-
#
|
30
|
-
# state = params[:state] if params[:state].present?
|
31
|
-
# country = params[:country] if params[:country].present?
|
32
|
-
# region = state || country || 'US'
|
33
|
-
#
|
34
|
-
# ...becomes:
|
35
|
-
#
|
36
|
-
# region = params[:state].presence || params[:country].presence || 'US'
|
37
|
-
def presence
|
38
|
-
self if present?
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
class NilClass
|
43
|
-
# +nil+ is blank:
|
44
|
-
#
|
45
|
-
# nil.blank? # => true
|
46
|
-
def blank?
|
47
|
-
true
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
class FalseClass
|
52
|
-
# +false+ is blank:
|
53
|
-
#
|
54
|
-
# false.blank? # => true
|
55
|
-
def blank?
|
56
|
-
true
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
class TrueClass
|
61
|
-
# +true+ is not blank:
|
62
|
-
#
|
63
|
-
# true.blank? # => false
|
64
|
-
def blank?
|
65
|
-
false
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
class Array
|
70
|
-
# An array is blank if it's empty:
|
71
|
-
#
|
72
|
-
# [].blank? # => true
|
73
|
-
# [1,2,3].blank? # => false
|
74
|
-
alias_method :blank?, :empty?
|
75
|
-
end
|
76
|
-
|
77
|
-
class Hash
|
78
|
-
# A hash is blank if it's empty:
|
79
|
-
#
|
80
|
-
# {}.blank? # => true
|
81
|
-
# { key: 'value' }.blank? # => false
|
82
|
-
alias_method :blank?, :empty?
|
83
|
-
end
|
84
|
-
|
85
|
-
class String
|
86
|
-
# A string is blank if it's empty or contains whitespaces only:
|
87
|
-
#
|
88
|
-
# ''.blank? # => true
|
89
|
-
# ' '.blank? # => true
|
90
|
-
# ' '.blank? # => true
|
91
|
-
# ' something here '.blank? # => false
|
92
|
-
def blank?
|
93
|
-
self !~ /[^[:space:]]/
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
class Numeric #:nodoc:
|
98
|
-
# No number is blank:
|
99
|
-
#
|
100
|
-
# 1.blank? # => false
|
101
|
-
# 0.blank? # => false
|
102
|
-
def blank?
|
103
|
-
false
|
104
|
-
end
|
105
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
class Time
|
2
|
-
|
3
|
-
# Returns a new Time where one or more of the elements have been changed according
|
4
|
-
# to the +options+ parameter. The time options (<tt>:hour</tt>, <tt>:min</tt>,
|
5
|
-
# <tt>:sec</tt>, <tt>:usec</tt>) reset cascadingly, so if only the hour is passed,
|
6
|
-
# then minute, sec, and usec is set to 0. If the hour and minute is passed, then
|
7
|
-
# sec and usec is set to 0. The +options+ parameter takes a hash with any of these
|
8
|
-
# keys: <tt>:year</tt>, <tt>:month</tt>, <tt>:day</tt>, <tt>:hour</tt>, <tt>:min</tt>,
|
9
|
-
# <tt>:sec</tt>, <tt>:usec</tt>.
|
10
|
-
#
|
11
|
-
# Time.new(2012, 8, 29, 22, 35, 0).change(day: 1) # => Time.new(2012, 8, 1, 22, 35, 0)
|
12
|
-
# Time.new(2012, 8, 29, 22, 35, 0).change(year: 1981, day: 1) # => Time.new(1981, 8, 1, 22, 35, 0)
|
13
|
-
# Time.new(2012, 8, 29, 22, 35, 0).change(year: 1981, hour: 0) # => Time.new(1981, 8, 29, 0, 0, 0)
|
14
|
-
def change(options)
|
15
|
-
new_year = options.fetch(:year, year)
|
16
|
-
new_month = options.fetch(:month, month)
|
17
|
-
new_day = options.fetch(:day, day)
|
18
|
-
new_hour = options.fetch(:hour, hour)
|
19
|
-
new_min = options.fetch(:min, options[:hour] ? 0 : min)
|
20
|
-
new_sec = options.fetch(:sec, (options[:hour] || options[:min]) ? 0 : sec)
|
21
|
-
new_usec = options.fetch(:usec, (options[:hour] || options[:min] || options[:sec]) ? 0 : Rational(nsec, 1000))
|
22
|
-
|
23
|
-
if utc?
|
24
|
-
::Time.utc(new_year, new_month, new_day, new_hour, new_min, new_sec, new_usec)
|
25
|
-
elsif zone
|
26
|
-
::Time.local(new_year, new_month, new_day, new_hour, new_min, new_sec, new_usec)
|
27
|
-
else
|
28
|
-
::Time.new(new_year, new_month, new_day, new_hour, new_min, new_sec + (new_usec.to_r / 1000000), utc_offset)
|
29
|
-
end
|
30
|
-
end unless method_defined? :change
|
31
|
-
|
32
|
-
end
|