rbs 4.0.0.dev.4 → 4.1.0.pre.2
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/.clang-format +1 -0
- data/.github/dependabot.yml +16 -14
- data/.github/workflows/bundle-update.yml +63 -0
- data/.github/workflows/c-check.yml +21 -11
- data/.github/workflows/comments.yml +5 -3
- data/.github/workflows/dependabot.yml +2 -2
- data/.github/workflows/jruby.yml +67 -0
- data/.github/workflows/milestone.yml +83 -0
- data/.github/workflows/ruby.yml +63 -24
- data/.github/workflows/rust.yml +184 -0
- data/.github/workflows/truffleruby.yml +54 -0
- data/.github/workflows/typecheck.yml +5 -2
- data/.github/workflows/wasm.yml +53 -0
- data/.github/workflows/windows.yml +8 -2
- data/.gitignore +11 -0
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +357 -0
- data/README.md +4 -4
- data/Rakefile +365 -33
- data/Steepfile +8 -0
- data/config.yml +450 -24
- data/core/array.rbs +443 -363
- data/core/basic_object.rbs +9 -8
- data/core/binding.rbs +0 -2
- data/core/builtin.rbs +9 -8
- data/core/class.rbs +11 -8
- data/core/comparable.rbs +55 -34
- data/core/complex.rbs +104 -78
- data/core/dir.rbs +61 -49
- data/core/encoding.rbs +12 -15
- data/core/enumerable.rbs +288 -196
- data/core/enumerator/arithmetic_sequence.rbs +70 -0
- data/core/enumerator/product.rbs +5 -5
- data/core/enumerator.rbs +91 -28
- data/core/errno.rbs +11 -2
- data/core/errors.rbs +58 -29
- data/core/exception.rbs +13 -13
- data/core/fiber.rbs +74 -54
- data/core/file.rbs +260 -1151
- data/core/file_constants.rbs +463 -0
- data/core/file_stat.rbs +534 -0
- data/core/file_test.rbs +3 -3
- data/core/float.rbs +257 -92
- data/core/gc.rbs +425 -281
- data/core/hash.rbs +1151 -829
- data/core/integer.rbs +156 -195
- data/core/io/buffer.rbs +53 -42
- data/core/io/wait.rbs +13 -35
- data/core/io.rbs +216 -150
- data/core/kernel.rbs +239 -163
- data/core/marshal.rbs +4 -4
- data/core/match_data.rbs +15 -13
- data/core/math.rbs +107 -66
- data/core/method.rbs +69 -33
- data/core/module.rbs +302 -150
- data/core/nil_class.rbs +7 -6
- data/core/numeric.rbs +77 -63
- data/core/object.rbs +9 -11
- data/core/object_space/weak_key_map.rbs +7 -7
- data/core/object_space.rbs +30 -23
- data/core/pathname.rbs +1322 -0
- data/core/proc.rbs +95 -58
- data/core/process.rbs +222 -202
- data/core/ractor.rbs +371 -515
- data/core/random.rbs +21 -3
- data/core/range.rbs +181 -79
- data/core/rational.rbs +60 -89
- data/core/rbs/ops.rbs +154 -0
- data/core/rbs/unnamed/argf.rbs +63 -56
- data/core/rbs/unnamed/env_class.rbs +19 -14
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +11 -118
- data/core/regexp.rbs +258 -214
- data/core/ruby.rbs +53 -0
- data/core/ruby_vm.rbs +78 -34
- data/core/rubygems/config_file.rbs +5 -5
- data/core/rubygems/errors.rbs +4 -71
- data/core/rubygems/requirement.rbs +5 -5
- data/core/rubygems/rubygems.rbs +16 -82
- data/core/rubygems/version.rbs +2 -3
- data/core/set.rbs +493 -363
- data/core/signal.rbs +26 -16
- data/core/string.rbs +3234 -1285
- data/core/struct.rbs +43 -42
- data/core/symbol.rbs +41 -34
- data/core/thread.rbs +141 -73
- data/core/time.rbs +81 -50
- data/core/trace_point.rbs +41 -35
- data/core/true_class.rbs +2 -2
- data/core/unbound_method.rbs +24 -16
- data/core/warning.rbs +7 -7
- data/docs/CONTRIBUTING.md +2 -1
- data/docs/aliases.md +79 -0
- data/docs/collection.md +3 -3
- data/docs/config.md +171 -0
- data/docs/encoding.md +56 -0
- data/docs/gem.md +0 -1
- data/docs/inline.md +634 -0
- data/docs/rbs_by_example.md +20 -20
- data/docs/rust.md +96 -0
- data/docs/sigs.md +3 -3
- data/docs/syntax.md +48 -18
- data/docs/type_fingerprint.md +21 -0
- data/docs/wasm_serialization.md +80 -0
- data/exe/rbs +1 -1
- data/ext/rbs_extension/ast_translation.c +1441 -671
- data/ext/rbs_extension/ast_translation.h +7 -0
- data/ext/rbs_extension/class_constants.c +18 -2
- data/ext/rbs_extension/class_constants.h +9 -0
- data/ext/rbs_extension/extconf.rb +6 -1
- data/ext/rbs_extension/legacy_location.c +33 -56
- data/ext/rbs_extension/legacy_location.h +37 -0
- data/ext/rbs_extension/main.c +183 -39
- data/include/rbs/ast.h +597 -297
- data/include/rbs/defines.h +40 -0
- data/include/rbs/lexer.h +31 -11
- data/include/rbs/location.h +25 -44
- data/include/rbs/parser.h +6 -6
- data/include/rbs/serialize.h +39 -0
- data/include/rbs/string.h +0 -2
- data/include/rbs/util/rbs_allocator.h +34 -13
- data/include/rbs/util/rbs_assert.h +12 -1
- data/include/rbs/util/rbs_constant_pool.h +0 -3
- data/include/rbs/util/rbs_encoding.h +2 -0
- data/include/rbs/util/rbs_unescape.h +2 -1
- data/include/rbs.h +8 -0
- data/lib/rbs/annotate/rdoc_annotator.rb +27 -31
- data/lib/rbs/ast/annotation.rb +1 -1
- data/lib/rbs/ast/comment.rb +1 -1
- data/lib/rbs/ast/declarations.rb +10 -10
- data/lib/rbs/ast/members.rb +14 -14
- data/lib/rbs/ast/ruby/annotations.rb +335 -3
- data/lib/rbs/ast/ruby/comment_block.rb +30 -4
- data/lib/rbs/ast/ruby/declarations.rb +209 -4
- data/lib/rbs/ast/ruby/helpers/constant_helper.rb +4 -0
- data/lib/rbs/ast/ruby/helpers/location_helper.rb +1 -1
- data/lib/rbs/ast/ruby/members.rb +571 -22
- data/lib/rbs/ast/type_param.rb +24 -4
- data/lib/rbs/buffer.rb +66 -24
- data/lib/rbs/cli/diff.rb +16 -15
- data/lib/rbs/cli/validate.rb +38 -106
- data/lib/rbs/cli.rb +55 -24
- data/lib/rbs/collection/config/lockfile_generator.rb +28 -3
- data/lib/rbs/collection/sources/git.rb +7 -0
- data/lib/rbs/definition.rb +1 -1
- data/lib/rbs/definition_builder/ancestor_builder.rb +62 -9
- data/lib/rbs/definition_builder/method_builder.rb +32 -6
- data/lib/rbs/definition_builder.rb +147 -25
- data/lib/rbs/diff.rb +7 -1
- data/lib/rbs/environment.rb +235 -75
- data/lib/rbs/environment_loader.rb +0 -6
- data/lib/rbs/errors.rb +27 -18
- data/lib/rbs/inline_parser.rb +377 -15
- data/lib/rbs/location_aux.rb +1 -1
- data/lib/rbs/locator.rb +5 -1
- data/lib/rbs/method_type.rb +5 -3
- data/lib/rbs/namespace.rb +47 -11
- data/lib/rbs/parser_aux.rb +20 -7
- data/lib/rbs/prototype/helpers.rb +57 -0
- data/lib/rbs/prototype/rb.rb +3 -28
- data/lib/rbs/prototype/rbi.rb +3 -20
- data/lib/rbs/prototype/runtime.rb +10 -0
- data/lib/rbs/resolver/constant_resolver.rb +2 -2
- data/lib/rbs/resolver/type_name_resolver.rb +120 -44
- data/lib/rbs/rewriter.rb +70 -0
- data/lib/rbs/subtractor.rb +3 -1
- data/lib/rbs/test/type_check.rb +25 -3
- data/lib/rbs/type_name.rb +34 -14
- data/lib/rbs/types.rb +88 -78
- data/lib/rbs/unit_test/type_assertions.rb +44 -8
- data/lib/rbs/validator.rb +2 -2
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/wasm/deserializer.rb +213 -0
- data/lib/rbs/wasm/location.rb +61 -0
- data/lib/rbs/wasm/parser.rb +137 -0
- data/lib/rbs/wasm/runtime.rb +217 -0
- data/lib/rbs/wasm/serialization_schema.rb +110 -0
- data/lib/rbs.rb +13 -2
- data/lib/rdoc/discover.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +1 -1
- data/rbs.gemspec +24 -6
- data/schema/typeParam.json +17 -1
- data/sig/annotate/rdoc_annotater.rbs +12 -9
- data/sig/ast/ruby/annotations.rbs +364 -4
- data/sig/ast/ruby/comment_block.rbs +8 -0
- data/sig/ast/ruby/declarations.rbs +102 -4
- data/sig/ast/ruby/members.rbs +128 -2
- data/sig/buffer.rbs +19 -1
- data/sig/cli/diff.rbs +5 -11
- data/sig/cli/validate.rbs +12 -8
- data/sig/cli.rbs +18 -18
- data/sig/collection/config/lockfile_generator.rbs +2 -0
- data/sig/definition.rbs +6 -1
- data/sig/definition_builder.rbs +2 -0
- data/sig/environment.rbs +70 -12
- data/sig/errors.rbs +13 -14
- data/sig/inline_parser.rbs +41 -2
- data/sig/locator.rbs +0 -2
- data/sig/manifest.yaml +0 -2
- data/sig/method_builder.rbs +3 -1
- data/sig/namespace.rbs +20 -0
- data/sig/parser.rbs +41 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/resolver/type_name_resolver.rbs +36 -10
- data/sig/rewriter.rbs +45 -0
- data/sig/source.rbs +3 -3
- data/sig/type_param.rbs +13 -8
- data/sig/typename.rbs +15 -0
- data/sig/types.rbs +6 -7
- data/sig/unit_test/spy.rbs +0 -8
- data/sig/unit_test/type_assertions.rbs +15 -0
- data/sig/wasm/deserializer.rbs +66 -0
- data/sig/wasm/serialization_schema.rbs +13 -0
- data/src/ast.c +443 -162
- data/src/lexer.c +1415 -1313
- data/src/lexer.re +4 -0
- data/src/lexstate.c +63 -37
- data/src/location.c +7 -47
- data/src/parser.c +1032 -521
- data/src/serialize.c +958 -0
- data/src/string.c +0 -48
- data/src/util/rbs_allocator.c +89 -74
- data/src/util/rbs_assert.c +1 -1
- data/src/util/rbs_buffer.c +2 -2
- data/src/util/rbs_constant_pool.c +10 -14
- data/src/util/rbs_encoding.c +4 -8
- data/src/util/rbs_unescape.c +56 -20
- data/stdlib/abbrev/0/array.rbs +1 -1
- data/stdlib/bigdecimal/0/big_decimal.rbs +116 -98
- data/stdlib/bigdecimal-math/0/big_math.rbs +169 -8
- data/stdlib/cgi/0/core.rbs +9 -393
- data/stdlib/cgi/0/manifest.yaml +1 -0
- data/stdlib/cgi-escape/0/escape.rbs +171 -0
- data/stdlib/coverage/0/coverage.rbs +7 -4
- data/stdlib/csv/0/csv.rbs +5 -5
- data/stdlib/date/0/date.rbs +92 -79
- data/stdlib/date/0/date_time.rbs +25 -24
- data/stdlib/delegate/0/delegator.rbs +10 -7
- data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
- data/stdlib/digest/0/digest.rbs +111 -1
- data/stdlib/erb/0/erb.rbs +748 -347
- data/stdlib/etc/0/etc.rbs +73 -54
- data/stdlib/fileutils/0/fileutils.rbs +179 -160
- data/stdlib/forwardable/0/forwardable.rbs +13 -10
- data/stdlib/io-console/0/io-console.rbs +2 -2
- data/stdlib/json/0/json.rbs +223 -142
- data/stdlib/monitor/0/monitor.rbs +3 -3
- data/stdlib/net-http/0/net-http.rbs +162 -134
- data/stdlib/objspace/0/objspace.rbs +17 -34
- data/stdlib/open-uri/0/open-uri.rbs +48 -8
- data/stdlib/open3/0/open3.rbs +469 -10
- data/stdlib/openssl/0/openssl.rbs +482 -364
- data/stdlib/optparse/0/optparse.rbs +26 -17
- data/stdlib/pathname/0/pathname.rbs +11 -1381
- data/stdlib/pp/0/pp.rbs +9 -8
- data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
- data/stdlib/pstore/0/pstore.rbs +35 -30
- data/stdlib/psych/0/psych.rbs +65 -12
- data/stdlib/psych/0/store.rbs +2 -4
- data/stdlib/pty/0/pty.rbs +9 -6
- data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
- data/stdlib/rdoc/0/code_object.rbs +2 -1
- data/stdlib/rdoc/0/parser.rbs +1 -1
- data/stdlib/rdoc/0/rdoc.rbs +1 -1
- data/stdlib/rdoc/0/store.rbs +1 -1
- data/stdlib/resolv/0/resolv.rbs +26 -69
- data/stdlib/ripper/0/ripper.rbs +22 -19
- data/stdlib/securerandom/0/manifest.yaml +2 -0
- data/stdlib/securerandom/0/securerandom.rbs +7 -20
- data/stdlib/shellwords/0/shellwords.rbs +3 -3
- data/stdlib/singleton/0/singleton.rbs +3 -0
- data/stdlib/socket/0/addrinfo.rbs +7 -7
- data/stdlib/socket/0/basic_socket.rbs +3 -3
- data/stdlib/socket/0/ip_socket.rbs +10 -8
- data/stdlib/socket/0/socket.rbs +23 -10
- data/stdlib/socket/0/tcp_server.rbs +1 -1
- data/stdlib/socket/0/tcp_socket.rbs +11 -3
- data/stdlib/socket/0/udp_socket.rbs +1 -1
- data/stdlib/socket/0/unix_server.rbs +1 -1
- data/stdlib/stringio/0/stringio.rbs +1209 -95
- data/stdlib/strscan/0/string_scanner.rbs +101 -80
- data/stdlib/tempfile/0/tempfile.rbs +25 -21
- data/stdlib/time/0/time.rbs +8 -6
- data/stdlib/timeout/0/timeout.rbs +63 -7
- data/stdlib/tsort/0/cyclic.rbs +4 -1
- data/stdlib/tsort/0/interfaces.rbs +8 -8
- data/stdlib/tsort/0/tsort.rbs +16 -15
- data/stdlib/uri/0/common.rbs +42 -20
- data/stdlib/uri/0/file.rbs +3 -3
- data/stdlib/uri/0/generic.rbs +26 -18
- data/stdlib/uri/0/http.rbs +2 -2
- data/stdlib/uri/0/ldap.rbs +2 -2
- data/stdlib/uri/0/mailto.rbs +3 -3
- data/stdlib/uri/0/rfc2396_parser.rbs +12 -12
- data/stdlib/zlib/0/deflate.rbs +4 -3
- data/stdlib/zlib/0/gzip_reader.rbs +8 -8
- data/stdlib/zlib/0/gzip_writer.rbs +14 -12
- data/stdlib/zlib/0/inflate.rbs +1 -1
- data/stdlib/zlib/0/need_dict.rbs +1 -1
- data/stdlib/zlib/0/zstream.rbs +1 -0
- data/wasm/README.md +59 -0
- data/wasm/rbs_wasm.c +411 -0
- metadata +56 -8
- data/.vscode/extensions.json +0 -5
- data/.vscode/settings.json +0 -19
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# <!-- rdoc-file=ext/strscan/strscan.c -->
|
|
2
2
|
# Class `StringScanner` supports processing a stored string as a stream;
|
|
3
|
-
# this code creates a new `StringScanner` object with string
|
|
3
|
+
# this code creates a new `StringScanner` object with string
|
|
4
|
+
# <code>'foobarbaz'</code>:
|
|
4
5
|
# require 'strscan'
|
|
5
6
|
# scanner = StringScanner.new('foobarbaz')
|
|
6
7
|
#
|
|
@@ -19,16 +20,16 @@
|
|
|
19
20
|
# ENGLISH_TEXT = 'Hello'
|
|
20
21
|
#
|
|
21
22
|
# Some examples here assume that certain helper methods are defined:
|
|
22
|
-
# *
|
|
23
|
+
# * <code>put_situation(scanner)</code>:
|
|
23
24
|
# Displays the values of the scanner's
|
|
24
25
|
# methods #pos, #charpos, #rest, and #rest_size.
|
|
25
|
-
# *
|
|
26
|
+
# * <code>put_match_values(scanner)</code>:
|
|
26
27
|
# Displays the scanner's [match
|
|
27
28
|
# values](rdoc-ref:StringScanner@Match+Values).
|
|
28
|
-
# *
|
|
29
|
+
# * <code>match_values_cleared?(scanner)</code>:
|
|
29
30
|
# Returns whether the scanner's [match
|
|
30
31
|
# values](rdoc-ref:StringScanner@Match+Values) are cleared.
|
|
31
|
-
# See examples [
|
|
32
|
+
# See examples at [helper methods](helper_methods.md).
|
|
32
33
|
# ## The `StringScanner` Object
|
|
33
34
|
# This code creates a `StringScanner` object
|
|
34
35
|
# (we'll call it simply a *scanner*),
|
|
@@ -45,7 +46,7 @@
|
|
|
45
46
|
# The scanner has:
|
|
46
47
|
# * A *stored string*, which is:
|
|
47
48
|
# * Initially set by StringScanner.new(string) to the given `string`
|
|
48
|
-
# (
|
|
49
|
+
# (<code>'foobarbaz'</code> in the example above).
|
|
49
50
|
# * Modifiable by methods #string=(new_string) and #concat(more_string).
|
|
50
51
|
# * Returned by method #string.
|
|
51
52
|
# More at [Stored String](rdoc-ref:StringScanner@Stored+String) below.
|
|
@@ -63,7 +64,7 @@
|
|
|
63
64
|
# which is a trailing substring of the stored string;
|
|
64
65
|
# it extends from the current position to the end of the stored string:
|
|
65
66
|
# * Initially set by StringScanner.new(string) to the given `string`
|
|
66
|
-
# (
|
|
67
|
+
# (<code>'foobarbaz'</code> in the example above).
|
|
67
68
|
# * Returned by method #rest.
|
|
68
69
|
# * Modified by any modification to either the stored string or the
|
|
69
70
|
# position.
|
|
@@ -85,10 +86,10 @@
|
|
|
85
86
|
# and a zero-based *character position*.
|
|
86
87
|
# Each of these methods explicitly sets positions:
|
|
87
88
|
# Method | Effect
|
|
88
|
-
#
|
|
89
|
-
# #reset |Sets both positions to zero (
|
|
89
|
+
# ------------------------|---------------------------------------------------------
|
|
90
|
+
# #reset |Sets both positions to zero (beginning of stored string).
|
|
90
91
|
# #terminate | Sets both positions to the end of the stored string.
|
|
91
|
-
# #pos=(new_byte_position)|
|
|
92
|
+
# #pos=(new_byte_position)| Sets byte position; adjusts character position.
|
|
92
93
|
# ### Byte Position (Position)
|
|
93
94
|
# The byte position (or simply *position*)
|
|
94
95
|
# is a zero-based index into the bytes in the scanner's stored string;
|
|
@@ -96,7 +97,7 @@
|
|
|
96
97
|
# When the byte position is:
|
|
97
98
|
# * Zero (at the beginning), the target substring is the entire stored string.
|
|
98
99
|
# * Equal to the size of the stored string (at the end),
|
|
99
|
-
# the target substring is the empty string
|
|
100
|
+
# the target substring is the empty string <code>''</code>.
|
|
100
101
|
# To get or set the byte position:
|
|
101
102
|
# * #pos: returns the byte position.
|
|
102
103
|
# * #pos=(new_pos): sets the byte position.
|
|
@@ -120,7 +121,7 @@
|
|
|
120
121
|
# * #charpos: the [character
|
|
121
122
|
# position](rdoc-ref:StringScanner@Character+Position).
|
|
122
123
|
# * #rest: the [target substring](rdoc-ref:StringScanner@Target+Substring).
|
|
123
|
-
# * #rest_size:
|
|
124
|
+
# * #rest_size: <code>rest.size</code>.
|
|
124
125
|
# ### Character Position
|
|
125
126
|
# The character position is a zero-based index into the *characters*
|
|
126
127
|
# in the stored string;
|
|
@@ -159,7 +160,7 @@
|
|
|
159
160
|
# # rest_size: 12
|
|
160
161
|
#
|
|
161
162
|
# ## Target Substring
|
|
162
|
-
# The target substring is the
|
|
163
|
+
# The target substring is the part of the [stored
|
|
163
164
|
# string](rdoc-ref:StringScanner@Stored+String)
|
|
164
165
|
# that extends from the current [byte
|
|
165
166
|
# position](rdoc-ref:StringScanner@Byte+Position+-28Position-29) to the end of
|
|
@@ -290,7 +291,7 @@
|
|
|
290
291
|
# generally contain the results of the most recent attempted match.
|
|
291
292
|
# Each match value may be thought of as:
|
|
292
293
|
# * *Clear*: Initially, or after an unsuccessful match attempt:
|
|
293
|
-
# usually, `false`, `nil`, or
|
|
294
|
+
# usually, `false`, `nil`, or <code>{}</code>.
|
|
294
295
|
# * *Set*: After a successful match attempt:
|
|
295
296
|
# `true`, string, array, or hash.
|
|
296
297
|
# Each of these methods clears match values:
|
|
@@ -327,10 +328,10 @@
|
|
|
327
328
|
# Method | Return After Match |Return After No Match
|
|
328
329
|
# ---------------|---------------------------------------|---------------------
|
|
329
330
|
# #size | Count of captured substrings. | +nil+.
|
|
330
|
-
# #[](n) |
|
|
331
|
+
# #[](n) | `n`th captured substring. | +nil+.
|
|
331
332
|
# #captures | Array of all captured substrings. | +nil+.
|
|
332
333
|
# #values_at(*n) |Array of specified captured substrings.| +nil+.
|
|
333
|
-
# #named_captures| Hash of named captures. |
|
|
334
|
+
# #named_captures| Hash of named captures. | <code>{}</code>.
|
|
334
335
|
#
|
|
335
336
|
# See examples below.
|
|
336
337
|
# #### Match Values Examples
|
|
@@ -401,7 +402,7 @@
|
|
|
401
402
|
# ## Fixed-Anchor Property
|
|
402
403
|
# Pattern matching in `StringScanner` is the same as in Ruby's,
|
|
403
404
|
# except for its fixed-anchor property,
|
|
404
|
-
# which determines the meaning of
|
|
405
|
+
# which determines the meaning of <code>'\A'</code>:
|
|
405
406
|
# * `false` (the default): matches the current byte position.
|
|
406
407
|
# scanner = StringScanner.new('foobar')
|
|
407
408
|
# scanner.scan(/\A./) # => "f"
|
|
@@ -486,18 +487,18 @@ class StringScanner
|
|
|
486
487
|
# scanner[:day] # => "12"
|
|
487
488
|
# scanner[:nope] # => nil
|
|
488
489
|
#
|
|
489
|
-
# When there are no captures, only
|
|
490
|
+
# When there are no captures, only <code>[0]</code> returns non-`nil`:
|
|
490
491
|
# scanner = StringScanner.new('foobarbaz')
|
|
491
492
|
# scanner.exist?(/bar/)
|
|
492
493
|
# scanner[0] # => "bar"
|
|
493
494
|
# scanner[1] # => nil
|
|
494
495
|
#
|
|
495
|
-
# For a failed match, even
|
|
496
|
+
# For a failed match, even <code>[0]</code> returns `nil`:
|
|
496
497
|
# scanner.scan(/nope/) # => nil
|
|
497
498
|
# scanner[0] # => nil
|
|
498
499
|
# scanner[1] # => nil
|
|
499
500
|
#
|
|
500
|
-
def []: (Integer) -> String?
|
|
501
|
+
def []: (Integer | String | Symbol) -> String?
|
|
501
502
|
|
|
502
503
|
# <!--
|
|
503
504
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -539,7 +540,8 @@ class StringScanner
|
|
|
539
540
|
# - captures -> substring_array or nil
|
|
540
541
|
# -->
|
|
541
542
|
# Returns the array of [captured match
|
|
542
|
-
# values](rdoc-ref:StringScanner@Captured+Match+Values) at indexes
|
|
543
|
+
# values](rdoc-ref:StringScanner@Captured+Match+Values) at indexes
|
|
544
|
+
# <code>(1..)</code>
|
|
543
545
|
# if the most recent match attempt succeeded, or `nil` otherwise:
|
|
544
546
|
# scanner = StringScanner.new('Fri Dec 12 1975 14:39')
|
|
545
547
|
# scanner.captures # => nil
|
|
@@ -623,7 +625,7 @@ class StringScanner
|
|
|
623
625
|
# scanner.check(/nope/) # => nil
|
|
624
626
|
# match_values_cleared?(scanner) # => true
|
|
625
627
|
#
|
|
626
|
-
def check: (Regexp) -> String?
|
|
628
|
+
def check: (Regexp | String) -> String?
|
|
627
629
|
|
|
628
630
|
# <!--
|
|
629
631
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -671,15 +673,7 @@ class StringScanner
|
|
|
671
673
|
# scanner.check_until(/nope/) # => nil
|
|
672
674
|
# match_values_cleared?(scanner) # => true
|
|
673
675
|
#
|
|
674
|
-
def check_until: (Regexp) -> String
|
|
675
|
-
|
|
676
|
-
# <!--
|
|
677
|
-
# rdoc-file=ext/strscan/strscan.c
|
|
678
|
-
# - clear()
|
|
679
|
-
# -->
|
|
680
|
-
# Equivalent to #terminate. This method is obsolete; use #terminate instead.
|
|
681
|
-
#
|
|
682
|
-
def clear: () -> void
|
|
676
|
+
def check_until: (Regexp | String) -> String?
|
|
683
677
|
|
|
684
678
|
# <!--
|
|
685
679
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -704,14 +698,6 @@ class StringScanner
|
|
|
704
698
|
#
|
|
705
699
|
alias concat <<
|
|
706
700
|
|
|
707
|
-
# <!--
|
|
708
|
-
# rdoc-file=ext/strscan/strscan.c
|
|
709
|
-
# - empty?()
|
|
710
|
-
# -->
|
|
711
|
-
# Equivalent to #eos?. This method is obsolete, use #eos? instead.
|
|
712
|
-
#
|
|
713
|
-
def empty?: () -> bool
|
|
714
|
-
|
|
715
701
|
# <!--
|
|
716
702
|
# rdoc-file=ext/strscan/strscan.c
|
|
717
703
|
# - eos? -> true or false
|
|
@@ -774,7 +760,7 @@ class StringScanner
|
|
|
774
760
|
# scanner.exist?(/nope/) # => nil
|
|
775
761
|
# match_values_cleared?(scanner) # => true
|
|
776
762
|
#
|
|
777
|
-
def exist?: (Regexp) -> Integer?
|
|
763
|
+
def exist?: (Regexp | String) -> Integer?
|
|
778
764
|
|
|
779
765
|
# <!--
|
|
780
766
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -816,14 +802,6 @@ class StringScanner
|
|
|
816
802
|
#
|
|
817
803
|
def get_byte: () -> String?
|
|
818
804
|
|
|
819
|
-
# <!--
|
|
820
|
-
# rdoc-file=ext/strscan/strscan.c
|
|
821
|
-
# - getbyte()
|
|
822
|
-
# -->
|
|
823
|
-
# Equivalent to #get_byte. This method is obsolete; use #get_byte instead.
|
|
824
|
-
#
|
|
825
|
-
def getbyte: () -> String?
|
|
826
|
-
|
|
827
805
|
# <!--
|
|
828
806
|
# rdoc-file=ext/strscan/strscan.c
|
|
829
807
|
# - getch()
|
|
@@ -935,7 +913,7 @@ class StringScanner
|
|
|
935
913
|
# scanner.match?(/nope/) # => nil
|
|
936
914
|
# match_values_cleared?(scanner) # => true
|
|
937
915
|
#
|
|
938
|
-
def match?: (Regexp) -> Integer?
|
|
916
|
+
def match?: (Regexp | String) -> Integer?
|
|
939
917
|
|
|
940
918
|
# <!--
|
|
941
919
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -995,11 +973,34 @@ class StringScanner
|
|
|
995
973
|
#
|
|
996
974
|
def matched_size: () -> Integer?
|
|
997
975
|
|
|
976
|
+
# <!--
|
|
977
|
+
# rdoc-file=ext/strscan/strscan.c
|
|
978
|
+
# - named_captures -> hash
|
|
979
|
+
# -->
|
|
980
|
+
# Returns the array of captured match values at indexes (1..)
|
|
981
|
+
# if the most recent match attempt succeeded, or nil otherwise;
|
|
982
|
+
# see [Captured Match Values](rdoc-ref:StringScanner@Captured+Match+Values):
|
|
983
|
+
# scanner = StringScanner.new('Fri Dec 12 1975 14:39')
|
|
984
|
+
# scanner.named_captures # => {}
|
|
985
|
+
#
|
|
986
|
+
# pattern = /(?<wday>\w+) (?<month>\w+) (?<day>\d+) /
|
|
987
|
+
# scanner.match?(pattern)
|
|
988
|
+
# scanner.named_captures # => {"wday"=>"Fri", "month"=>"Dec", "day"=>"12"}
|
|
989
|
+
#
|
|
990
|
+
# scanner.string = 'nope'
|
|
991
|
+
# scanner.match?(pattern)
|
|
992
|
+
# scanner.named_captures # => {"wday"=>nil, "month"=>nil, "day"=>nil}
|
|
993
|
+
#
|
|
994
|
+
# scanner.match?(/nosuch/)
|
|
995
|
+
# scanner.named_captures # => {}
|
|
996
|
+
#
|
|
997
|
+
def named_captures: () -> Hash[String, String?]
|
|
998
|
+
|
|
998
999
|
# <!--
|
|
999
1000
|
# rdoc-file=ext/strscan/strscan.c
|
|
1000
1001
|
# - peek(length) -> substring
|
|
1001
1002
|
# -->
|
|
1002
|
-
# Returns the substring
|
|
1003
|
+
# Returns the substring <code>string[pos, length]</code>;
|
|
1003
1004
|
# does not update [match values](rdoc-ref:StringScanner@Match+Values) or
|
|
1004
1005
|
# [positions](rdoc-ref:StringScanner@Positions):
|
|
1005
1006
|
# scanner = StringScanner.new('foobarbaz')
|
|
@@ -1012,11 +1013,14 @@ class StringScanner
|
|
|
1012
1013
|
|
|
1013
1014
|
# <!--
|
|
1014
1015
|
# rdoc-file=ext/strscan/strscan.c
|
|
1015
|
-
# -
|
|
1016
|
+
# - peek_byte()
|
|
1016
1017
|
# -->
|
|
1017
|
-
#
|
|
1018
|
+
# Peeks at the current byte and returns it as an integer.
|
|
1019
|
+
#
|
|
1020
|
+
# s = StringScanner.new('ab')
|
|
1021
|
+
# s.peek_byte # => 97
|
|
1018
1022
|
#
|
|
1019
|
-
def
|
|
1023
|
+
def peek_byte: () -> Integer?
|
|
1020
1024
|
|
|
1021
1025
|
# <!-- rdoc-file=ext/strscan/strscan.c -->
|
|
1022
1026
|
# call-seq:
|
|
@@ -1122,7 +1126,7 @@ class StringScanner
|
|
|
1122
1126
|
# scanner.match?(/nope/) # => nil
|
|
1123
1127
|
# scanner.post_match # => nil
|
|
1124
1128
|
#
|
|
1125
|
-
def post_match: () -> String
|
|
1129
|
+
def post_match: () -> String?
|
|
1126
1130
|
|
|
1127
1131
|
# <!--
|
|
1128
1132
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -1142,7 +1146,7 @@ class StringScanner
|
|
|
1142
1146
|
# scanner.exist?(/nope/) # => nil
|
|
1143
1147
|
# scanner.pre_match # => nil
|
|
1144
1148
|
#
|
|
1145
|
-
def pre_match: () -> String
|
|
1149
|
+
def pre_match: () -> String?
|
|
1146
1150
|
|
|
1147
1151
|
# <!--
|
|
1148
1152
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -1151,7 +1155,7 @@ class StringScanner
|
|
|
1151
1155
|
# Sets both [byte position](rdoc-ref:StringScanner@Byte+Position+-28Position-29)
|
|
1152
1156
|
# and [character position](rdoc-ref:StringScanner@Character+Position) to zero,
|
|
1153
1157
|
# and clears [match values](rdoc-ref:StringScanner@Match+Values);
|
|
1154
|
-
# returns
|
|
1158
|
+
# returns +self+:
|
|
1155
1159
|
# scanner = StringScanner.new('foobarbaz')
|
|
1156
1160
|
# scanner.exist?(/bar/) # => 6
|
|
1157
1161
|
# scanner.reset # => #<StringScanner 0/9 @ "fooba...">
|
|
@@ -1164,7 +1168,7 @@ class StringScanner
|
|
|
1164
1168
|
# # => nil
|
|
1165
1169
|
# match_values_cleared?(scanner) # => true
|
|
1166
1170
|
#
|
|
1167
|
-
def reset: () ->
|
|
1171
|
+
def reset: () -> self
|
|
1168
1172
|
|
|
1169
1173
|
# <!--
|
|
1170
1174
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -1215,15 +1219,6 @@ class StringScanner
|
|
|
1215
1219
|
#
|
|
1216
1220
|
def rest_size: () -> Integer
|
|
1217
1221
|
|
|
1218
|
-
# <!--
|
|
1219
|
-
# rdoc-file=ext/strscan/strscan.c
|
|
1220
|
-
# - restsize()
|
|
1221
|
-
# -->
|
|
1222
|
-
# `s.restsize` is equivalent to `s.rest_size`. This method is obsolete; use
|
|
1223
|
-
# #rest_size instead.
|
|
1224
|
-
#
|
|
1225
|
-
def restsize: () -> Integer
|
|
1226
|
-
|
|
1227
1222
|
# <!--
|
|
1228
1223
|
# rdoc-file=ext/strscan/strscan.c
|
|
1229
1224
|
# - scan(p1)
|
|
@@ -1237,7 +1232,7 @@ class StringScanner
|
|
|
1237
1232
|
# * Returns the matched substring.
|
|
1238
1233
|
# * Increments the [byte
|
|
1239
1234
|
# position](rdoc-ref:StringScanner@Byte+Position+-28Position-29) by
|
|
1240
|
-
#
|
|
1235
|
+
# <code>substring.bytesize</code>,
|
|
1241
1236
|
# and may increment the [character
|
|
1242
1237
|
# position](rdoc-ref:StringScanner@Character+Position).
|
|
1243
1238
|
# * Sets [match values](rdoc-ref:StringScanner@Match+Values).
|
|
@@ -1274,7 +1269,16 @@ class StringScanner
|
|
|
1274
1269
|
# scanner.scan(/nope/) # => nil
|
|
1275
1270
|
# match_values_cleared?(scanner) # => true
|
|
1276
1271
|
#
|
|
1277
|
-
def scan: (Regexp) -> String?
|
|
1272
|
+
def scan: (Regexp | String) -> String?
|
|
1273
|
+
|
|
1274
|
+
# <!--
|
|
1275
|
+
# rdoc-file=ext/strscan/strscan.c
|
|
1276
|
+
# - scan_byte -> integer_byte
|
|
1277
|
+
# -->
|
|
1278
|
+
# Scans one byte and returns it as an integer. This method is not multibyte
|
|
1279
|
+
# character sensitive. See also: #getch.
|
|
1280
|
+
#
|
|
1281
|
+
def scan_byte: () -> Integer?
|
|
1278
1282
|
|
|
1279
1283
|
# <!--
|
|
1280
1284
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -1286,7 +1290,23 @@ class StringScanner
|
|
|
1286
1290
|
#
|
|
1287
1291
|
# "full" means "#scan with full parameters".
|
|
1288
1292
|
#
|
|
1289
|
-
def scan_full: (Regexp pattern, bool advance_pointer_p,
|
|
1293
|
+
def scan_full: (Regexp | String pattern, bool advance_pointer_p, true return_string_p) -> String?
|
|
1294
|
+
| (Regexp | String pattern, bool advance_pointer_p, false return_string_p) -> Integer?
|
|
1295
|
+
|
|
1296
|
+
# <!--
|
|
1297
|
+
# rdoc-file=ext/strscan/lib/strscan/strscan.rb
|
|
1298
|
+
# - scan_integer(base: 10)
|
|
1299
|
+
# -->
|
|
1300
|
+
# If `base` isn't provided or is `10`, then it is equivalent to calling
|
|
1301
|
+
# <code>#scan</code> with a `[+-]?d+` pattern, and returns an Integer or nil.
|
|
1302
|
+
#
|
|
1303
|
+
# If `base` is `16`, then it is equivalent to calling <code>#scan</code> with a
|
|
1304
|
+
# `[+-]?(0x)?[0-9a-fA-F]+` pattern, and returns an Integer or nil.
|
|
1305
|
+
#
|
|
1306
|
+
# The scanned string must be encoded with an ASCII compatible encoding,
|
|
1307
|
+
# otherwise Encoding::CompatibilityError will be raised.
|
|
1308
|
+
#
|
|
1309
|
+
def scan_integer: (?base: Integer) -> Integer?
|
|
1290
1310
|
|
|
1291
1311
|
# <!--
|
|
1292
1312
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -1339,7 +1359,7 @@ class StringScanner
|
|
|
1339
1359
|
# scanner.scan_until(/nope/) # => nil
|
|
1340
1360
|
# match_values_cleared?(scanner) # => true
|
|
1341
1361
|
#
|
|
1342
|
-
def scan_until: (Regexp) -> String?
|
|
1362
|
+
def scan_until: (Regexp | String) -> String?
|
|
1343
1363
|
|
|
1344
1364
|
# <!--
|
|
1345
1365
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -1350,7 +1370,8 @@ class StringScanner
|
|
|
1350
1370
|
# `return_string_p` is true, otherwise returns the number of bytes advanced.
|
|
1351
1371
|
# This method does affect the match register.
|
|
1352
1372
|
#
|
|
1353
|
-
def search_full: (Regexp pattern, bool advance_pointer_p,
|
|
1373
|
+
def search_full: (Regexp | String pattern, bool advance_pointer_p, true return_string_p) -> String?
|
|
1374
|
+
| (Regexp | String pattern, bool advance_pointer_p, false return_string_p) -> Integer?
|
|
1354
1375
|
|
|
1355
1376
|
# <!--
|
|
1356
1377
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -1370,7 +1391,7 @@ class StringScanner
|
|
|
1370
1391
|
# scanner.match?(/nope/) # => nil
|
|
1371
1392
|
# scanner.size # => nil
|
|
1372
1393
|
#
|
|
1373
|
-
def size: () -> Integer
|
|
1394
|
+
def size: () -> Integer?
|
|
1374
1395
|
|
|
1375
1396
|
# <!--
|
|
1376
1397
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -1418,7 +1439,7 @@ class StringScanner
|
|
|
1418
1439
|
# scanner.skip(/nope/) # => nil
|
|
1419
1440
|
# match_values_cleared?(scanner) # => true
|
|
1420
1441
|
#
|
|
1421
|
-
def skip: (Regexp) -> Integer?
|
|
1442
|
+
def skip: (Regexp | String) -> Integer?
|
|
1422
1443
|
|
|
1423
1444
|
# <!--
|
|
1424
1445
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -1466,7 +1487,7 @@ class StringScanner
|
|
|
1466
1487
|
# scanner.skip_until(/nope/) # => nil
|
|
1467
1488
|
# match_values_cleared?(scanner) # => true
|
|
1468
1489
|
#
|
|
1469
|
-
def skip_until: (Regexp) -> Integer?
|
|
1490
|
+
def skip_until: (Regexp | String) -> Integer?
|
|
1470
1491
|
|
|
1471
1492
|
# <!--
|
|
1472
1493
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -1517,7 +1538,7 @@ class StringScanner
|
|
|
1517
1538
|
# call-seq:
|
|
1518
1539
|
# terminate -> self
|
|
1519
1540
|
# Sets the scanner to end-of-string;
|
|
1520
|
-
# returns
|
|
1541
|
+
# returns +self+:
|
|
1521
1542
|
# * Sets both [positions](rdoc-ref:StringScanner@Positions) to end-of-stream.
|
|
1522
1543
|
# * Clears [match values](rdoc-ref:StringScanner@Match+Values).
|
|
1523
1544
|
# scanner = StringScanner.new(HIRAGANA_TEXT)
|
|
@@ -1540,7 +1561,7 @@ class StringScanner
|
|
|
1540
1561
|
# # rest_size: 0
|
|
1541
1562
|
# match_values_cleared?(scanner) # => true
|
|
1542
1563
|
#
|
|
1543
|
-
def terminate: () ->
|
|
1564
|
+
def terminate: () -> self
|
|
1544
1565
|
|
|
1545
1566
|
# <!--
|
|
1546
1567
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -1571,14 +1592,14 @@ class StringScanner
|
|
|
1571
1592
|
# match_values_cleared?(scanner) # => true
|
|
1572
1593
|
# scanner.unscan # Raises StringScanner::Error.
|
|
1573
1594
|
#
|
|
1574
|
-
def unscan: () ->
|
|
1595
|
+
def unscan: () -> self
|
|
1575
1596
|
|
|
1576
1597
|
# <!--
|
|
1577
1598
|
# rdoc-file=ext/strscan/strscan.c
|
|
1578
1599
|
# - values_at(*specifiers) -> array_of_captures or nil
|
|
1579
1600
|
# -->
|
|
1580
1601
|
# Returns an array of captured substrings, or `nil` of none.
|
|
1581
|
-
# For each `specifier`, the returned substring is
|
|
1602
|
+
# For each `specifier`, the returned substring is <code>[specifier]</code>;
|
|
1582
1603
|
# see #[].
|
|
1583
1604
|
# scanner = StringScanner.new('Fri Dec 12 1975 14:39')
|
|
1584
1605
|
# pattern = /(?<wday>\w+) (?<month>\w+) (?<day>\d+) /
|
|
@@ -1586,7 +1607,7 @@ class StringScanner
|
|
|
1586
1607
|
# scanner.values_at(*0..3) # => ["Fri Dec 12 ", "Fri", "Dec", "12"]
|
|
1587
1608
|
# scanner.values_at(*%i[wday month day]) # => ["Fri", "Dec", "12"]
|
|
1588
1609
|
#
|
|
1589
|
-
def values_at: (*Integer) -> Array[String]?
|
|
1610
|
+
def values_at: (*Integer | String | Symbol) -> Array[String]?
|
|
1590
1611
|
|
|
1591
1612
|
private
|
|
1592
1613
|
|
|
@@ -1609,7 +1630,7 @@ class StringScanner
|
|
|
1609
1630
|
# # rest: "foobarbaz"
|
|
1610
1631
|
# # rest_size: 9
|
|
1611
1632
|
#
|
|
1612
|
-
def initialize: (String, ?
|
|
1633
|
+
def initialize: (String, ?fixed_anchor: bool) -> void
|
|
1613
1634
|
|
|
1614
1635
|
# <!--
|
|
1615
1636
|
# rdoc-file=ext/strscan/strscan.c
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
# require 'tempfile'
|
|
20
20
|
#
|
|
21
21
|
# # Tempfile.create with a block
|
|
22
|
-
# # The filename are
|
|
22
|
+
# # The filename are chosen automatically.
|
|
23
23
|
# # (You can specify the prefix and suffix of the filename by an optional argument.)
|
|
24
24
|
# Tempfile.create {|f|
|
|
25
25
|
# f.puts "foo"
|
|
@@ -159,7 +159,7 @@ class Tempfile < File
|
|
|
159
159
|
# * Generated filename is unique in that directory.
|
|
160
160
|
# * Permissions are `0600`; see [File
|
|
161
161
|
# Permissions](rdoc-ref:File@File+Permissions).
|
|
162
|
-
# * Mode is
|
|
162
|
+
# * Mode is <code>'w+'</code> (read/write mode, positioned at the end).
|
|
163
163
|
#
|
|
164
164
|
# The temporary file removal depends on the keyword argument `anonymous` and
|
|
165
165
|
# whether a block is given or not. See the description about the `anonymous`
|
|
@@ -206,8 +206,8 @@ class Tempfile < File
|
|
|
206
206
|
#
|
|
207
207
|
# Tempfile.create('foo') # => #<File:/tmp/foo20220505-9795-1gok8l9>
|
|
208
208
|
#
|
|
209
|
-
# * An array of two strings
|
|
210
|
-
# with `prefix` and ends with `suffix`:
|
|
209
|
+
# * An array of two strings <code>[prefix, suffix]</code>: the generated
|
|
210
|
+
# filename begins with `prefix` and ends with `suffix`:
|
|
211
211
|
#
|
|
212
212
|
# Tempfile.create(%w/foo .jpg/) # => #<File:/tmp/foo20220505-17839-tnjchh.jpg>
|
|
213
213
|
#
|
|
@@ -226,16 +226,19 @@ class Tempfile < File
|
|
|
226
226
|
#
|
|
227
227
|
# The keyword argument `anonymous` specifies when the file is removed.
|
|
228
228
|
#
|
|
229
|
-
# *
|
|
230
|
-
#
|
|
231
|
-
#
|
|
232
|
-
#
|
|
233
|
-
# *
|
|
234
|
-
#
|
|
229
|
+
# * <code>anonymous=false</code> (default) without a block: the file is not
|
|
230
|
+
# removed.
|
|
231
|
+
# * <code>anonymous=false</code> (default) with a block: the file is removed
|
|
232
|
+
# after the block exits.
|
|
233
|
+
# * <code>anonymous=true</code> without a block: the file is removed before
|
|
234
|
+
# returning.
|
|
235
|
+
# * <code>anonymous=true</code> with a block: the file is removed before the
|
|
236
|
+
# block is called.
|
|
235
237
|
#
|
|
236
|
-
# In the first case (
|
|
237
|
-
# automatically. It should be explicitly closed. It can be used to
|
|
238
|
-
# desired filename. If the file is not needed, it should be
|
|
238
|
+
# In the first case (<code>anonymous=false</code> without a block), the file is
|
|
239
|
+
# not removed automatically. It should be explicitly closed. It can be used to
|
|
240
|
+
# rename to the desired filename. If the file is not needed, it should be
|
|
241
|
+
# explicitly removed.
|
|
239
242
|
#
|
|
240
243
|
# The File#path method of the created file object returns the temporary
|
|
241
244
|
# directory with a trailing slash when `anonymous` is true.
|
|
@@ -248,8 +251,8 @@ class Tempfile < File
|
|
|
248
251
|
#
|
|
249
252
|
# Implementation note:
|
|
250
253
|
#
|
|
251
|
-
# The keyword argument
|
|
252
|
-
# on Windows. O_TMPFILE is used on Linux.
|
|
254
|
+
# The keyword argument <code>anonymous=true</code> is implemented using
|
|
255
|
+
# `FILE_SHARE_DELETE` on Windows. `O_TMPFILE` is used on Linux.
|
|
253
256
|
#
|
|
254
257
|
# Related: Tempfile.new.
|
|
255
258
|
#
|
|
@@ -283,7 +286,8 @@ class Tempfile < File
|
|
|
283
286
|
#
|
|
284
287
|
# The call returns the value of the block.
|
|
285
288
|
#
|
|
286
|
-
# In any case, all arguments (
|
|
289
|
+
# In any case, all arguments (<code>*args</code>) will be passed to
|
|
290
|
+
# Tempfile.new.
|
|
287
291
|
#
|
|
288
292
|
# Tempfile.open('foo', '/home/temp') do |f|
|
|
289
293
|
# # ... do something with f ...
|
|
@@ -318,7 +322,7 @@ class Tempfile < File
|
|
|
318
322
|
# - close!()
|
|
319
323
|
# -->
|
|
320
324
|
# Closes and unlinks (deletes) the file. Has the same effect as called
|
|
321
|
-
#
|
|
325
|
+
# <code>close(true)</code>.
|
|
322
326
|
#
|
|
323
327
|
def close!: () -> void
|
|
324
328
|
|
|
@@ -422,7 +426,7 @@ class Tempfile < File
|
|
|
422
426
|
# If possible, consider instead using Tempfile.create, which:
|
|
423
427
|
#
|
|
424
428
|
# * Avoids the performance cost of delegation, incurred when Tempfile.new
|
|
425
|
-
# calls its superclass
|
|
429
|
+
# calls its superclass <code>DelegateClass(File)</code>.
|
|
426
430
|
# * Does not rely on a finalizer to close and unlink the file, which can be
|
|
427
431
|
# unreliable.
|
|
428
432
|
#
|
|
@@ -433,7 +437,7 @@ class Tempfile < File
|
|
|
433
437
|
# * Generated filename is unique in that directory.
|
|
434
438
|
# * Permissions are `0600`; see [File
|
|
435
439
|
# Permissions](rdoc-ref:File@File+Permissions).
|
|
436
|
-
# * Mode is
|
|
440
|
+
# * Mode is <code>'w+'</code> (read/write mode, positioned at the end).
|
|
437
441
|
#
|
|
438
442
|
# The underlying file is removed when the Tempfile object dies and is reclaimed
|
|
439
443
|
# by the garbage collector.
|
|
@@ -454,8 +458,8 @@ class Tempfile < File
|
|
|
454
458
|
#
|
|
455
459
|
# Tempfile.new('foo') # => #<Tempfile:/tmp/foo20220505-17839-1whk2f>
|
|
456
460
|
#
|
|
457
|
-
# * An array of two strings
|
|
458
|
-
# with `prefix` and ends with `suffix`:
|
|
461
|
+
# * An array of two strings <code>[prefix, suffix]</code>: the generated
|
|
462
|
+
# filename begins with `prefix` and ends with `suffix`:
|
|
459
463
|
#
|
|
460
464
|
# Tempfile.new(%w/foo .jpg/) # => #<Tempfile:/tmp/foo20220505-17839-58xtfi.jpg>
|
|
461
465
|
#
|
data/stdlib/time/0/time.rbs
CHANGED
|
@@ -10,12 +10,13 @@ class Time
|
|
|
10
10
|
|
|
11
11
|
# <!--
|
|
12
12
|
# rdoc-file=lib/time.rb
|
|
13
|
-
# - zone_offset(zone, year=
|
|
13
|
+
# - zone_offset(zone, year=nil)
|
|
14
14
|
# -->
|
|
15
15
|
# Return the number of seconds the specified time zone differs from UTC.
|
|
16
16
|
#
|
|
17
|
-
# Numeric time zones that include minutes, such as
|
|
18
|
-
# work, as will simpler hour-only time zones like
|
|
17
|
+
# Numeric time zones that include minutes, such as <code>-10:00</code> or
|
|
18
|
+
# <code>+1330</code> will work, as will simpler hour-only time zones like
|
|
19
|
+
# <code>-10</code> or <code>+13</code>.
|
|
19
20
|
#
|
|
20
21
|
# Textual time zones listed in ZoneOffset are also supported.
|
|
21
22
|
#
|
|
@@ -120,9 +121,10 @@ class Time
|
|
|
120
121
|
# Based on this fact, this method only understands the time zone abbreviations
|
|
121
122
|
# described in RFC 822 and the system time zone, in the order named. (i.e. a
|
|
122
123
|
# definition in RFC 822 overrides the system time zone definition.) The system
|
|
123
|
-
# time zone is taken from
|
|
124
|
-
# 1).zone
|
|
125
|
-
# it is ignored and the given time is
|
|
124
|
+
# time zone is taken from <code>Time.local(year, 1, 1).zone</code> and
|
|
125
|
+
# <code>Time.local(year, 7, 1).zone</code>. If the extracted time zone
|
|
126
|
+
# abbreviation does not match any of them, it is ignored and the given time is
|
|
127
|
+
# regarded as a local time.
|
|
126
128
|
#
|
|
127
129
|
# ArgumentError is raised if Date._parse cannot extract information from `date`
|
|
128
130
|
# or if the Time class cannot represent specified date.
|