rbs 3.7.0 → 3.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +3 -3
- data/.github/workflows/ruby.yml +7 -7
- data/CHANGELOG.md +68 -0
- data/core/array.rbs +1756 -1591
- data/core/basic_object.rbs +38 -35
- data/core/comparable.rbs +1 -1
- data/core/complex.rbs +166 -94
- data/core/data.rbs +1 -1
- data/core/dir.rbs +1 -17
- data/core/encoding.rbs +12 -32
- data/core/enumerable.rbs +270 -266
- data/core/enumerator.rbs +0 -2
- data/core/env.rbs +1 -1
- data/core/errno.rbs +33 -16
- data/core/errors.rbs +6 -2
- data/core/exception.rbs +235 -169
- data/core/fiber.rbs +3 -2
- data/core/file.rbs +26 -75
- data/core/float.rbs +125 -72
- data/core/gc.rbs +156 -40
- data/core/hash.rbs +122 -143
- data/core/integer.rbs +79 -50
- data/core/io/buffer.rbs +49 -43
- data/core/io.rbs +99 -146
- data/core/kernel.rbs +292 -202
- data/core/match_data.rbs +76 -2
- data/core/math.rbs +0 -36
- data/core/module.rbs +28 -23
- data/core/nil_class.rbs +2 -2
- data/core/numeric.rbs +101 -104
- data/core/object.rbs +0 -4
- data/core/object_space/weak_key_map.rbs +3 -4
- data/core/object_space.rbs +3 -3
- data/core/proc.rbs +80 -12
- data/core/process.rbs +109 -57
- data/core/ractor.rbs +54 -4
- data/core/range.rbs +114 -87
- data/core/rational.rbs +0 -2
- data/core/rbs/unnamed/argf.rbs +234 -33
- data/core/rbs/unnamed/env_class.rbs +35 -53
- data/core/rbs/unnamed/random.rbs +1 -2
- data/core/regexp.rbs +6 -54
- data/core/ruby_vm.rbs +88 -9
- data/core/rubygems/config_file.rbs +3 -0
- data/core/rubygems/errors.rbs +3 -6
- data/core/rubygems/platform.rbs +0 -9
- data/core/rubygems/rubygems.rbs +3 -6
- data/core/rubygems/version.rbs +6 -6
- data/core/set.rbs +3 -15
- data/core/string.rbs +256 -260
- data/core/struct.rbs +6 -18
- data/core/symbol.rbs +14 -21
- data/core/thread.rbs +32 -35
- data/core/time.rbs +131 -50
- data/core/trace_point.rbs +124 -113
- data/core/true_class.rbs +0 -1
- data/core/warning.rbs +9 -2
- data/docs/architecture.md +1 -1
- data/docs/syntax.md +1 -1
- data/ext/rbs_extension/location.c +29 -19
- data/ext/rbs_extension/parser.c +268 -293
- data/ext/rbs_extension/parserstate.c +56 -22
- data/lib/rbs/annotate/annotations.rb +3 -3
- data/lib/rbs/annotate/rdoc_source.rb +2 -2
- data/lib/rbs/cli/diff.rb +3 -3
- data/lib/rbs/cli/validate.rb +1 -1
- data/lib/rbs/cli.rb +13 -13
- data/lib/rbs/collection/config.rb +3 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +3 -3
- data/lib/rbs/environment_loader.rb +1 -1
- data/lib/rbs/namespace.rb +1 -0
- data/lib/rbs/parser_aux.rb +2 -2
- data/lib/rbs/prototype/rb.rb +11 -8
- data/lib/rbs/prototype/rbi.rb +9 -5
- data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
- data/lib/rbs/prototype/runtime.rb +4 -5
- data/lib/rbs/type_name.rb +14 -9
- data/lib/rbs/types.rb +2 -1
- data/lib/rbs/unit_test/type_assertions.rb +2 -2
- data/lib/rbs/validator.rb +3 -1
- data/lib/rbs/version.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +2 -2
- data/rbs.gemspec +4 -0
- data/sig/ancestor_graph.rbs +4 -4
- data/sig/namespace.rbs +2 -3
- data/sig/resolver/constant_resolver.rbs +2 -2
- data/sig/resolver/context.rbs +1 -1
- data/sig/type_alias_regularity.rbs +5 -5
- data/sig/typename.rbs +8 -5
- data/sig/use_map.rbs +1 -1
- data/sig/validator.rbs +2 -2
- data/stdlib/base64/0/base64.rbs +0 -9
- data/stdlib/benchmark/0/benchmark.rbs +11 -2
- data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
- data/stdlib/cgi/0/core.rbs +47 -0
- data/stdlib/coverage/0/coverage.rbs +0 -3
- data/stdlib/csv/0/csv.rbs +18 -58
- data/stdlib/date/0/date.rbs +27 -42
- data/stdlib/did_you_mean/0/did_you_mean.rbs +0 -5
- data/stdlib/digest/0/digest.rbs +25 -2
- data/stdlib/erb/0/erb.rbs +0 -1
- data/stdlib/etc/0/etc.rbs +51 -34
- data/stdlib/fileutils/0/fileutils.rbs +3 -44
- data/stdlib/io-console/0/io-console.rbs +69 -15
- data/stdlib/ipaddr/0/ipaddr.rbs +8 -4
- data/stdlib/json/0/json.rbs +56 -71
- data/stdlib/logger/0/log_device.rbs +1 -1
- data/stdlib/logger/0/logger.rbs +3 -18
- data/stdlib/net-http/0/net-http.rbs +39 -106
- data/stdlib/nkf/0/nkf.rbs +30 -0
- data/stdlib/objspace/0/objspace.rbs +1 -2
- data/stdlib/observable/0/observable.rbs +1 -1
- data/stdlib/open-uri/0/open-uri.rbs +52 -0
- data/stdlib/open3/0/open3.rbs +0 -8
- data/stdlib/openssl/0/openssl.rbs +136 -69
- data/stdlib/optparse/0/optparse.rbs +58 -18
- data/stdlib/pathname/0/pathname.rbs +2 -8
- data/stdlib/pp/0/pp.rbs +3 -1
- data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
- data/stdlib/pstore/0/pstore.rbs +0 -6
- data/stdlib/psych/0/psych.rbs +15 -4
- data/stdlib/pty/0/pty.rbs +46 -4
- data/stdlib/rdoc/0/code_object.rbs +0 -4
- data/stdlib/rdoc/0/markup.rbs +10 -12
- data/stdlib/rdoc/0/rdoc.rbs +13 -8
- data/stdlib/resolv/0/resolv.rbs +13 -4
- data/stdlib/ripper/0/ripper.rbs +0 -2
- data/stdlib/securerandom/0/securerandom.rbs +7 -2
- data/stdlib/shellwords/0/shellwords.rbs +11 -12
- data/stdlib/singleton/0/singleton.rbs +0 -1
- data/stdlib/socket/0/addrinfo.rbs +0 -1
- data/stdlib/socket/0/basic_socket.rbs +0 -5
- data/stdlib/socket/0/socket.rbs +32 -27
- data/stdlib/socket/0/tcp_server.rbs +0 -3
- data/stdlib/socket/0/tcp_socket.rbs +36 -3
- data/stdlib/socket/0/udp_socket.rbs +0 -1
- data/stdlib/socket/0/unix_server.rbs +0 -3
- data/stdlib/strscan/0/string_scanner.rbs +1265 -422
- data/stdlib/tempfile/0/tempfile.rbs +135 -28
- data/stdlib/time/0/time.rbs +48 -35
- data/stdlib/timeout/0/timeout.rbs +11 -8
- data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
- data/stdlib/tsort/0/tsort.rbs +0 -4
- data/stdlib/uri/0/common.rbs +11 -30
- data/stdlib/uri/0/ftp.rbs +1 -1
- data/stdlib/uri/0/generic.rbs +22 -18
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
- data/stdlib/zlib/0/buf_error.rbs +1 -70
- data/stdlib/zlib/0/data_error.rbs +1 -70
- data/stdlib/zlib/0/deflate.rbs +8 -72
- data/stdlib/zlib/0/error.rbs +1 -70
- data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
- data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
- data/stdlib/zlib/0/gzip_file.rbs +1 -71
- data/stdlib/zlib/0/gzip_reader.rbs +3 -74
- data/stdlib/zlib/0/gzip_writer.rbs +1 -70
- data/stdlib/zlib/0/inflate.rbs +4 -71
- data/stdlib/zlib/0/mem_error.rbs +1 -70
- data/stdlib/zlib/0/need_dict.rbs +1 -70
- data/stdlib/zlib/0/stream_end.rbs +1 -70
- data/stdlib/zlib/0/stream_error.rbs +1 -70
- data/stdlib/zlib/0/version_error.rbs +1 -70
- data/stdlib/zlib/0/zlib.rbs +0 -2
- data/stdlib/zlib/0/zstream.rbs +4 -72
- metadata +3 -6
@@ -1,16 +1,58 @@
|
|
1
1
|
# <!-- rdoc-file=lib/tempfile.rb -->
|
2
|
-
# A utility class for managing temporary files.
|
3
|
-
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
#
|
2
|
+
# A utility class for managing temporary files.
|
3
|
+
#
|
4
|
+
# There are two kind of methods of creating a temporary file:
|
5
|
+
#
|
6
|
+
# * Tempfile.create (recommended)
|
7
|
+
# * Tempfile.new and Tempfile.open (mostly for backward compatibility, not
|
8
|
+
# recommended)
|
9
|
+
#
|
10
|
+
# Tempfile.create creates a usual File object. The timing of file deletion is
|
11
|
+
# predictable. Also, it supports open-and-unlink technique which removes the
|
12
|
+
# temporary file immediately after creation.
|
13
|
+
#
|
14
|
+
# Tempfile.new and Tempfile.open creates a Tempfile object. The created file is
|
15
|
+
# removed by the GC (finalizer). The timing of file deletion is not predictable.
|
9
16
|
#
|
10
17
|
# ## Synopsis
|
11
18
|
#
|
12
19
|
# require 'tempfile'
|
13
20
|
#
|
21
|
+
# # Tempfile.create with a block
|
22
|
+
# # The filename are choosen automatically.
|
23
|
+
# # (You can specify the prefix and suffix of the filename by an optional argument.)
|
24
|
+
# Tempfile.create {|f|
|
25
|
+
# f.puts "foo"
|
26
|
+
# f.rewind
|
27
|
+
# f.read # => "foo\n"
|
28
|
+
# } # The file is removed at block exit.
|
29
|
+
#
|
30
|
+
# # Tempfile.create without a block
|
31
|
+
# # You need to unlink the file in non-block form.
|
32
|
+
# f = Tempfile.create
|
33
|
+
# f.puts "foo"
|
34
|
+
# f.close
|
35
|
+
# File.unlink(f.path) # You need to unlink the file.
|
36
|
+
#
|
37
|
+
# # Tempfile.create(anonymous: true) without a block
|
38
|
+
# f = Tempfile.create(anonymous: true)
|
39
|
+
# # The file is already removed because anonymous.
|
40
|
+
# f.path # => "/tmp/" (no filename since no file)
|
41
|
+
# f.puts "foo"
|
42
|
+
# f.rewind
|
43
|
+
# f.read # => "foo\n"
|
44
|
+
# f.close
|
45
|
+
#
|
46
|
+
# # Tempfile.create(anonymous: true) with a block
|
47
|
+
# Tempfile.create(anonymous: true) {|f|
|
48
|
+
# # The file is already removed because anonymous.
|
49
|
+
# f.path # => "/tmp/" (no filename since no file)
|
50
|
+
# f.puts "foo"
|
51
|
+
# f.rewind
|
52
|
+
# f.read # => "foo\n"
|
53
|
+
# }
|
54
|
+
#
|
55
|
+
# # Not recommended: Tempfile.new without a block
|
14
56
|
# file = Tempfile.new('foo')
|
15
57
|
# file.path # => A unique filename in the OS's temp directory,
|
16
58
|
# # e.g.: "/tmp/foo.24722.0"
|
@@ -21,7 +63,27 @@
|
|
21
63
|
# file.close
|
22
64
|
# file.unlink # deletes the temp file
|
23
65
|
#
|
24
|
-
# ##
|
66
|
+
# ## About Tempfile.new and Tempfile.open
|
67
|
+
#
|
68
|
+
# This section does not apply to Tempfile.create because it returns a File
|
69
|
+
# object (not a Tempfile object).
|
70
|
+
#
|
71
|
+
# When you create a Tempfile object, it will create a temporary file with a
|
72
|
+
# unique filename. A Tempfile objects behaves just like a File object, and you
|
73
|
+
# can perform all the usual file operations on it: reading data, writing data,
|
74
|
+
# changing its permissions, etc. So although this class does not explicitly
|
75
|
+
# document all instance methods supported by File, you can in fact call any File
|
76
|
+
# instance method on a Tempfile object.
|
77
|
+
#
|
78
|
+
# A Tempfile object has a finalizer to remove the temporary file. This means
|
79
|
+
# that the temporary file is removed via GC. This can cause several problems:
|
80
|
+
#
|
81
|
+
# * Long GC intervals and conservative GC can accumulate temporary files that
|
82
|
+
# are not removed.
|
83
|
+
# * Temporary files are not removed if Ruby exits abnormally (such as SIGKILL,
|
84
|
+
# SEGV).
|
85
|
+
#
|
86
|
+
# There are legacy good practices for Tempfile.new and Tempfile.open as follows.
|
25
87
|
#
|
26
88
|
# ### Explicit close
|
27
89
|
#
|
@@ -61,12 +123,17 @@
|
|
61
123
|
# this if you do not want any other processes to be able to read from or write
|
62
124
|
# to the Tempfile, and you do not need to know the Tempfile's filename either.
|
63
125
|
#
|
126
|
+
# Also, this guarantees the temporary file is removed even if Ruby exits
|
127
|
+
# abnormally. The OS reclaims the storage for the temporary file when the file
|
128
|
+
# is closed or the Ruby process exits (normally or abnormally).
|
129
|
+
#
|
64
130
|
# For example, a practical use case for unlink-after-creation would be this: you
|
65
131
|
# need a large byte buffer that's too large to comfortably fit in RAM, e.g. when
|
66
132
|
# you're writing a web server and you want to buffer the client's file upload
|
67
133
|
# data.
|
68
134
|
#
|
69
|
-
#
|
135
|
+
# `Tempfile.create(anonymous: true)` supports this behavior. It also works on
|
136
|
+
# Windows.
|
70
137
|
#
|
71
138
|
# ## Minor notes
|
72
139
|
#
|
@@ -80,7 +147,7 @@
|
|
80
147
|
class Tempfile < File
|
81
148
|
# <!--
|
82
149
|
# rdoc-file=lib/tempfile.rb
|
83
|
-
# - create(basename="", tmpdir=nil, mode: 0, **options)
|
150
|
+
# - create(basename="", tmpdir=nil, mode: 0, anonymous: false, **options, &block)
|
84
151
|
# -->
|
85
152
|
# Creates a file in the underlying file system; returns a new File object based
|
86
153
|
# on that file.
|
@@ -94,9 +161,9 @@ class Tempfile < File
|
|
94
161
|
# Permissions](rdoc-ref:File@File+Permissions).
|
95
162
|
# * Mode is `'w+'` (read/write mode, positioned at the end).
|
96
163
|
#
|
97
|
-
#
|
98
|
-
#
|
99
|
-
#
|
164
|
+
# The temporary file removal depends on the keyword argument `anonymous` and
|
165
|
+
# whether a block is given or not. See the description about the `anonymous`
|
166
|
+
# keyword argument later.
|
100
167
|
#
|
101
168
|
# Example:
|
102
169
|
#
|
@@ -104,11 +171,36 @@ class Tempfile < File
|
|
104
171
|
# f.class # => File
|
105
172
|
# f.path # => "/tmp/20220505-9795-17ky6f6"
|
106
173
|
# f.stat.mode.to_s(8) # => "100600"
|
174
|
+
# f.close
|
107
175
|
# File.exist?(f.path) # => true
|
108
176
|
# File.unlink(f.path)
|
109
177
|
# File.exist?(f.path) # => false
|
110
178
|
#
|
111
|
-
#
|
179
|
+
# Tempfile.create {|f|
|
180
|
+
# f.puts "foo"
|
181
|
+
# f.rewind
|
182
|
+
# f.read # => "foo\n"
|
183
|
+
# f.path # => "/tmp/20240524-380207-oma0ny"
|
184
|
+
# File.exist?(f.path) # => true
|
185
|
+
# } # The file is removed at block exit.
|
186
|
+
#
|
187
|
+
# f = Tempfile.create(anonymous: true)
|
188
|
+
# # The file is already removed because anonymous
|
189
|
+
# f.path # => "/tmp/" (no filename since no file)
|
190
|
+
# f.puts "foo"
|
191
|
+
# f.rewind
|
192
|
+
# f.read # => "foo\n"
|
193
|
+
# f.close
|
194
|
+
#
|
195
|
+
# Tempfile.create(anonymous: true) {|f|
|
196
|
+
# # The file is already removed because anonymous
|
197
|
+
# f.path # => "/tmp/" (no filename since no file)
|
198
|
+
# f.puts "foo"
|
199
|
+
# f.rewind
|
200
|
+
# f.read # => "foo\n"
|
201
|
+
# }
|
202
|
+
#
|
203
|
+
# The argument `basename`, if given, may be one of the following:
|
112
204
|
#
|
113
205
|
# * A string: the generated filename begins with `basename`:
|
114
206
|
#
|
@@ -119,31 +211,50 @@ class Tempfile < File
|
|
119
211
|
#
|
120
212
|
# Tempfile.create(%w/foo .jpg/) # => #<File:/tmp/foo20220505-17839-tnjchh.jpg>
|
121
213
|
#
|
122
|
-
#
|
123
|
-
# With arguments `basename` and `tmpdir`, the file is created in directory
|
214
|
+
# With arguments `basename` and `tmpdir`, the file is created in the directory
|
124
215
|
# `tmpdir`:
|
125
216
|
#
|
126
217
|
# Tempfile.create('foo', '.') # => #<File:./foo20220505-9795-1emu6g8>
|
127
218
|
#
|
128
|
-
# Keyword arguments `mode` and `options` are passed directly to method
|
219
|
+
# Keyword arguments `mode` and `options` are passed directly to the method
|
129
220
|
# [File.open](rdoc-ref:File.open):
|
130
221
|
#
|
131
|
-
# * The value given
|
132
|
-
#
|
222
|
+
# * The value given for `mode` must be an integer and may be expressed as the
|
223
|
+
# logical OR of constants defined in
|
133
224
|
# [File::Constants](rdoc-ref:File::Constants).
|
134
225
|
# * For `options`, see [Open Options](rdoc-ref:IO@Open+Options).
|
135
226
|
#
|
227
|
+
# The keyword argument `anonymous` specifies when the file is removed.
|
228
|
+
#
|
229
|
+
# * `anonymous=false` (default) without a block: the file is not removed.
|
230
|
+
# * `anonymous=false` (default) with a block: the file is removed after the
|
231
|
+
# block exits.
|
232
|
+
# * `anonymous=true` without a block: the file is removed before returning.
|
233
|
+
# * `anonymous=true` with a block: the file is removed before the block is
|
234
|
+
# called.
|
235
|
+
#
|
236
|
+
# In the first case (`anonymous=false` without a block), the file is not removed
|
237
|
+
# automatically. It should be explicitly closed. It can be used to rename to the
|
238
|
+
# desired filename. If the file is not needed, it should be explicitly removed.
|
136
239
|
#
|
137
|
-
#
|
138
|
-
#
|
139
|
-
#
|
240
|
+
# The File#path method of the created file object returns the temporary
|
241
|
+
# directory with a trailing slash when `anonymous` is true.
|
242
|
+
#
|
243
|
+
# When a block is given, it creates the file as described above, passes it to
|
244
|
+
# the block, and returns the block's value. Before the returning, the file
|
245
|
+
# object is closed and the underlying file is removed:
|
140
246
|
#
|
141
247
|
# Tempfile.create {|file| file.path } # => "/tmp/20220505-9795-rkists"
|
142
248
|
#
|
249
|
+
# Implementation note:
|
250
|
+
#
|
251
|
+
# The keyword argument +anonymous=true+ is implemented using FILE_SHARE_DELETE
|
252
|
+
# on Windows. O_TMPFILE is used on Linux.
|
253
|
+
#
|
143
254
|
# Related: Tempfile.new.
|
144
255
|
#
|
145
|
-
def self.create: (?String | [ String, String ] basename, ?String? tmpdir, ?mode: Integer, **untyped) -> File
|
146
|
-
| [A] (?String | [ String, String ] basename, ?String? tmpdir, ?mode: Integer, **untyped) { (File) -> A } -> A
|
256
|
+
def self.create: (?String | [ String, String ] basename, ?String? tmpdir, ?mode: Integer, ?anonymous: bool, **untyped) -> File
|
257
|
+
| [A] (?String | [ String, String ] basename, ?String? tmpdir, ?mode: Integer, ?anonymous: bool, **untyped) { (File) -> A } -> A
|
147
258
|
|
148
259
|
# <!--
|
149
260
|
# rdoc-file=lib/tempfile.rb
|
@@ -315,7 +426,6 @@ class Tempfile < File
|
|
315
426
|
# * Does not rely on a finalizer to close and unlink the file, which can be
|
316
427
|
# unreliable.
|
317
428
|
#
|
318
|
-
#
|
319
429
|
# Creates and returns file whose:
|
320
430
|
#
|
321
431
|
# * Class is Tempfile (not File, as in Tempfile.create).
|
@@ -325,7 +435,6 @@ class Tempfile < File
|
|
325
435
|
# Permissions](rdoc-ref:File@File+Permissions).
|
326
436
|
# * Mode is `'w+'` (read/write mode, positioned at the end).
|
327
437
|
#
|
328
|
-
#
|
329
438
|
# The underlying file is removed when the Tempfile object dies and is reclaimed
|
330
439
|
# by the garbage collector.
|
331
440
|
#
|
@@ -350,7 +459,6 @@ class Tempfile < File
|
|
350
459
|
#
|
351
460
|
# Tempfile.new(%w/foo .jpg/) # => #<Tempfile:/tmp/foo20220505-17839-58xtfi.jpg>
|
352
461
|
#
|
353
|
-
#
|
354
462
|
# With arguments `basename` and `tmpdir`, the file is created in directory
|
355
463
|
# `tmpdir`:
|
356
464
|
#
|
@@ -364,7 +472,6 @@ class Tempfile < File
|
|
364
472
|
# [File::Constants](rdoc-ref:File::Constants).
|
365
473
|
# * For `options`, see [Open Options](rdoc-ref:IO@Open+Options).
|
366
474
|
#
|
367
|
-
#
|
368
475
|
# Related: Tempfile.create.
|
369
476
|
#
|
370
477
|
def self.new: (?String | [ String, String ] basename, ?String? tmpdir, ?mode: Integer, **untyped) -> instance
|
data/stdlib/time/0/time.rbs
CHANGED
@@ -43,7 +43,7 @@ class Time
|
|
43
43
|
#
|
44
44
|
# This method **does not** function as a validator. If the input string does
|
45
45
|
# not match valid formats strictly, you may get a cryptic result. Should
|
46
|
-
# consider to use
|
46
|
+
# consider to use Time.strptime instead of this method as possible.
|
47
47
|
#
|
48
48
|
# require 'time'
|
49
49
|
#
|
@@ -147,6 +147,8 @@ class Time
|
|
147
147
|
# the format of the input string, you provide a second argument that describes
|
148
148
|
# the format of the string.
|
149
149
|
#
|
150
|
+
# Raises ArgumentError if the date or format is invalid.
|
151
|
+
#
|
150
152
|
# If a block is given, the year described in `date` is converted by the block.
|
151
153
|
# For example:
|
152
154
|
#
|
@@ -156,95 +158,139 @@ class Time
|
|
156
158
|
#
|
157
159
|
# %a
|
158
160
|
# : The abbreviated weekday name ("Sun")
|
161
|
+
#
|
159
162
|
# %A
|
160
163
|
# : The full weekday name ("Sunday")
|
164
|
+
#
|
161
165
|
# %b
|
162
166
|
# : The abbreviated month name ("Jan")
|
167
|
+
#
|
163
168
|
# %B
|
164
169
|
# : The full month name ("January")
|
170
|
+
#
|
165
171
|
# %c
|
166
172
|
# : The preferred local date and time representation
|
173
|
+
#
|
167
174
|
# %C
|
168
175
|
# : Century (20 in 2009)
|
176
|
+
#
|
169
177
|
# %d
|
170
178
|
# : Day of the month (01..31)
|
179
|
+
#
|
171
180
|
# %D
|
172
181
|
# : Date (%m/%d/%y)
|
182
|
+
#
|
173
183
|
# %e
|
174
184
|
# : Day of the month, blank-padded ( 1..31)
|
185
|
+
#
|
175
186
|
# %F
|
176
187
|
# : Equivalent to %Y-%m-%d (the ISO 8601 date format)
|
188
|
+
#
|
177
189
|
# %g
|
178
190
|
# : The last two digits of the commercial year
|
191
|
+
#
|
179
192
|
# %G
|
180
193
|
# : The week-based year according to ISO-8601 (week 1 starts on Monday and
|
181
194
|
# includes January 4)
|
195
|
+
#
|
182
196
|
# %h
|
183
197
|
# : Equivalent to %b
|
198
|
+
#
|
184
199
|
# %H
|
185
200
|
# : Hour of the day, 24-hour clock (00..23)
|
201
|
+
#
|
186
202
|
# %I
|
187
203
|
# : Hour of the day, 12-hour clock (01..12)
|
204
|
+
#
|
188
205
|
# %j
|
189
206
|
# : Day of the year (001..366)
|
207
|
+
#
|
190
208
|
# %k
|
191
209
|
# : hour, 24-hour clock, blank-padded ( 0..23)
|
210
|
+
#
|
192
211
|
# %l
|
193
212
|
# : hour, 12-hour clock, blank-padded ( 0..12)
|
213
|
+
#
|
194
214
|
# %L
|
195
215
|
# : Millisecond of the second (000..999)
|
216
|
+
#
|
196
217
|
# %m
|
197
218
|
# : Month of the year (01..12)
|
219
|
+
#
|
198
220
|
# %M
|
199
221
|
# : Minute of the hour (00..59)
|
222
|
+
#
|
200
223
|
# %n
|
201
224
|
# : Newline (n)
|
225
|
+
#
|
202
226
|
# %N
|
203
227
|
# : Fractional seconds digits
|
228
|
+
#
|
204
229
|
# %p
|
205
230
|
# : Meridian indicator ("AM" or "PM")
|
231
|
+
#
|
206
232
|
# %P
|
207
233
|
# : Meridian indicator ("am" or "pm")
|
234
|
+
#
|
208
235
|
# %r
|
209
236
|
# : time, 12-hour (same as %I:%M:%S %p)
|
237
|
+
#
|
210
238
|
# %R
|
211
239
|
# : time, 24-hour (%H:%M)
|
240
|
+
#
|
212
241
|
# %s
|
213
242
|
# : Number of seconds since 1970-01-01 00:00:00 UTC.
|
243
|
+
#
|
214
244
|
# %S
|
215
245
|
# : Second of the minute (00..60)
|
246
|
+
#
|
216
247
|
# %t
|
217
248
|
# : Tab character (t)
|
249
|
+
#
|
218
250
|
# %T
|
219
251
|
# : time, 24-hour (%H:%M:%S)
|
252
|
+
#
|
220
253
|
# %u
|
221
254
|
# : Day of the week as a decimal, Monday being 1. (1..7)
|
255
|
+
#
|
222
256
|
# %U
|
223
257
|
# : Week number of the current year, starting with the first Sunday as the
|
224
258
|
# first day of the first week (00..53)
|
259
|
+
#
|
225
260
|
# %v
|
226
261
|
# : VMS date (%e-%b-%Y)
|
262
|
+
#
|
227
263
|
# %V
|
228
264
|
# : Week number of year according to ISO 8601 (01..53)
|
265
|
+
#
|
229
266
|
# %W
|
230
267
|
# : Week number of the current year, starting with the first Monday as the
|
231
268
|
# first day of the first week (00..53)
|
269
|
+
#
|
232
270
|
# %w
|
233
271
|
# : Day of the week (Sunday is 0, 0..6)
|
272
|
+
#
|
234
273
|
# %x
|
235
274
|
# : Preferred representation for the date alone, no time
|
275
|
+
#
|
236
276
|
# %X
|
237
277
|
# : Preferred representation for the time alone, no date
|
278
|
+
#
|
238
279
|
# %y
|
239
280
|
# : Year without a century (00..99)
|
281
|
+
#
|
240
282
|
# %Y
|
241
283
|
# : Year which may include century, if provided
|
284
|
+
#
|
242
285
|
# %z
|
243
|
-
# : Time zone as
|
286
|
+
# : Time zone as hour offset from UTC (e.g. +0900)
|
287
|
+
#
|
244
288
|
# %Z
|
245
289
|
# : Time zone name
|
290
|
+
#
|
246
291
|
# %%
|
247
292
|
# : Literal "%" character
|
293
|
+
#
|
248
294
|
# %+
|
249
295
|
# : date(1) (%a %b %e %H:%M:%S %Z %Y)
|
250
296
|
#
|
@@ -383,37 +429,4 @@ class Time
|
|
383
429
|
# You must require 'time' to use this method.
|
384
430
|
#
|
385
431
|
def httpdate: () -> String
|
386
|
-
|
387
|
-
# <!--
|
388
|
-
# rdoc-file=lib/time.rb
|
389
|
-
# - xmlschema(fraction_digits=0)
|
390
|
-
# -->
|
391
|
-
# Returns a string which represents the time as a dateTime defined by XML
|
392
|
-
# Schema:
|
393
|
-
#
|
394
|
-
# CCYY-MM-DDThh:mm:ssTZD
|
395
|
-
# CCYY-MM-DDThh:mm:ss.sssTZD
|
396
|
-
#
|
397
|
-
# where TZD is Z or [+-]hh:mm.
|
398
|
-
#
|
399
|
-
# If self is a UTC time, Z is used as TZD. [+-]hh:mm is used otherwise.
|
400
|
-
#
|
401
|
-
# `fraction_digits` specifies a number of digits to use for fractional seconds.
|
402
|
-
# Its default value is 0.
|
403
|
-
#
|
404
|
-
# require 'time'
|
405
|
-
#
|
406
|
-
# t = Time.now
|
407
|
-
# t.iso8601 # => "2011-10-05T22:26:12-04:00"
|
408
|
-
#
|
409
|
-
# You must require 'time' to use this method.
|
410
|
-
#
|
411
|
-
def xmlschema: (?Integer fraction_digits) -> String
|
412
|
-
|
413
|
-
# <!--
|
414
|
-
# rdoc-file=lib/time.rb
|
415
|
-
# - iso8601(fraction_digits=0)
|
416
|
-
# -->
|
417
|
-
#
|
418
|
-
alias iso8601 xmlschema
|
419
432
|
end
|
@@ -4,7 +4,7 @@
|
|
4
4
|
# ## Synopsis
|
5
5
|
#
|
6
6
|
# require 'timeout'
|
7
|
-
# status = Timeout
|
7
|
+
# status = Timeout.timeout(5) {
|
8
8
|
# # Something that should be interrupted if it takes more than 5 seconds...
|
9
9
|
# }
|
10
10
|
#
|
@@ -13,14 +13,11 @@
|
|
13
13
|
# Timeout provides a way to auto-terminate a potentially long-running operation
|
14
14
|
# if it hasn't finished in a fixed amount of time.
|
15
15
|
#
|
16
|
-
# Previous versions didn't use a module for namespacing, however #timeout is
|
17
|
-
# provided for backwards compatibility. You should prefer Timeout.timeout
|
18
|
-
# instead.
|
19
|
-
#
|
20
16
|
# ## Copyright
|
21
17
|
#
|
22
18
|
# Copyright
|
23
19
|
# : (C) 2000 Network Applied Communication Laboratory, Inc.
|
20
|
+
#
|
24
21
|
# Copyright
|
25
22
|
# : (C) 2000 Information-technology Promotion Agency, Japan
|
26
23
|
#
|
@@ -33,12 +30,15 @@ module Timeout
|
|
33
30
|
# `sec` seconds to complete.
|
34
31
|
#
|
35
32
|
# `sec`
|
36
|
-
# : Number of seconds to wait for the block to terminate. Any
|
37
|
-
# used, including Floats to specify fractional seconds.
|
38
|
-
# `nil` will execute the block without any timeout.
|
33
|
+
# : Number of seconds to wait for the block to terminate. Any non-negative
|
34
|
+
# number or nil may be used, including Floats to specify fractional seconds.
|
35
|
+
# A value of 0 or `nil` will execute the block without any timeout. Any
|
36
|
+
# negative number will raise an ArgumentError.
|
37
|
+
#
|
39
38
|
# `klass`
|
40
39
|
# : Exception Class to raise if the block fails to terminate in `sec` seconds.
|
41
40
|
# Omitting will use the default, Timeout::Error
|
41
|
+
#
|
42
42
|
# `message`
|
43
43
|
# : Error message to raise with Exception Class. Omitting will use the
|
44
44
|
# default, "execution expired"
|
@@ -75,4 +75,7 @@ class Timeout::Error < RuntimeError
|
|
75
75
|
attr_reader thread: Thread?
|
76
76
|
end
|
77
77
|
|
78
|
+
# <!-- rdoc-file=lib/timeout.rb -->
|
79
|
+
# The version
|
80
|
+
#
|
78
81
|
Timeout::VERSION: String
|
data/stdlib/tmpdir/0/tmpdir.rbs
CHANGED
@@ -6,6 +6,9 @@ class Dir
|
|
6
6
|
# -->
|
7
7
|
# Returns the operating system's temporary file path.
|
8
8
|
#
|
9
|
+
# require 'tmpdir'
|
10
|
+
# Dir.tmpdir # => "/tmp"
|
11
|
+
#
|
9
12
|
def self.tmpdir: () -> String
|
10
13
|
|
11
14
|
# <!--
|
@@ -14,6 +17,11 @@ class Dir
|
|
14
17
|
# -->
|
15
18
|
# Dir.mktmpdir creates a temporary directory.
|
16
19
|
#
|
20
|
+
# require 'tmpdir'
|
21
|
+
# Dir.mktmpdir {|dir|
|
22
|
+
# # use the directory
|
23
|
+
# }
|
24
|
+
#
|
17
25
|
# The directory is created with 0700 permission. Application should not change
|
18
26
|
# the permission to make the temporary directory accessible from other users.
|
19
27
|
#
|
@@ -25,7 +33,6 @@ class Dir
|
|
25
33
|
# * If it is an array, first element is used as the prefix and second element
|
26
34
|
# is used as a suffix.
|
27
35
|
#
|
28
|
-
#
|
29
36
|
# Dir.mktmpdir {|dir| dir is ".../d..." }
|
30
37
|
# Dir.mktmpdir("foo") {|dir| dir is ".../foo..." }
|
31
38
|
# Dir.mktmpdir(["foo", "bar"]) {|dir| dir is ".../foo...bar" }
|
@@ -57,6 +64,6 @@ class Dir
|
|
57
64
|
# FileUtils.remove_entry dir
|
58
65
|
# end
|
59
66
|
#
|
60
|
-
def self.mktmpdir: (?
|
61
|
-
| [X] (?
|
67
|
+
def self.mktmpdir: (?string | [ string, string ] | nil, ?path?, ?max_try: Integer?) -> String
|
68
|
+
| [X] (?string | [string, string ] | nil, ?path?, ?max_try: Integer?) { (String) -> X } -> X
|
62
69
|
end
|
data/stdlib/tsort/0/tsort.rbs
CHANGED
@@ -11,7 +11,6 @@
|
|
11
11
|
# * tsort_each_node is used to iterate for all nodes over a graph.
|
12
12
|
# * tsort_each_child is used to iterate for child nodes of a given node.
|
13
13
|
#
|
14
|
-
#
|
15
14
|
# The equality of nodes are defined by eql? and hash since TSort uses Hash
|
16
15
|
# internally.
|
17
16
|
#
|
@@ -109,12 +108,9 @@
|
|
109
108
|
# strongly connected components. Although 'strongly_connected_components.rb'
|
110
109
|
# is correct but too long.
|
111
110
|
#
|
112
|
-
#
|
113
111
|
# ## References
|
114
112
|
#
|
115
113
|
# 1. Tarjan, "Depth First Search and Linear Graph Algorithms",
|
116
|
-
#
|
117
|
-
#
|
118
114
|
# *SIAM Journal on Computing*, Vol. 1, No. 2, pp. 146-160, June 1972.
|
119
115
|
#
|
120
116
|
module TSort[Node] : TSort::_Sortable[Node]
|