whois 3.5.0 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|