rbs 4.0.0.dev.4 → 4.0.0
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/.github/dependabot.yml +14 -14
- data/.github/workflows/bundle-update.yml +60 -0
- data/.github/workflows/c-check.yml +18 -11
- data/.github/workflows/comments.yml +5 -3
- data/.github/workflows/dependabot.yml +2 -2
- data/.github/workflows/ruby.yml +27 -34
- data/.github/workflows/rust.yml +95 -0
- data/.github/workflows/typecheck.yml +2 -2
- data/.github/workflows/windows.yml +2 -2
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +323 -0
- data/README.md +1 -1
- data/Rakefile +43 -33
- data/Steepfile +1 -0
- data/config.yml +426 -24
- data/core/array.rbs +307 -227
- data/core/basic_object.rbs +9 -8
- data/core/binding.rbs +0 -2
- data/core/builtin.rbs +2 -2
- data/core/class.rbs +6 -5
- 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 +179 -87
- data/core/enumerator/arithmetic_sequence.rbs +70 -0
- data/core/enumerator.rbs +65 -2
- 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 +280 -177
- data/core/file_test.rbs +3 -3
- data/core/float.rbs +257 -92
- data/core/gc.rbs +425 -281
- data/core/hash.rbs +1045 -739
- data/core/integer.rbs +135 -137
- data/core/io/buffer.rbs +53 -42
- data/core/io/wait.rbs +13 -35
- data/core/io.rbs +192 -144
- data/core/kernel.rbs +216 -155
- 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 +244 -106
- data/core/nil_class.rbs +7 -6
- data/core/numeric.rbs +74 -63
- data/core/object.rbs +9 -11
- 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 +159 -57
- data/core/rational.rbs +60 -89
- data/core/rbs/unnamed/argf.rbs +60 -53
- 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 +38 -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 +490 -360
- data/core/signal.rbs +26 -16
- data/core/string.rbs +3234 -1285
- data/core/struct.rbs +27 -26
- data/core/symbol.rbs +41 -34
- data/core/thread.rbs +135 -67
- 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/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 +576 -0
- data/docs/sigs.md +3 -3
- data/docs/syntax.md +46 -16
- data/docs/type_fingerprint.md +21 -0
- data/exe/rbs +1 -1
- data/ext/rbs_extension/ast_translation.c +544 -116
- data/ext/rbs_extension/ast_translation.h +3 -0
- data/ext/rbs_extension/class_constants.c +16 -2
- data/ext/rbs_extension/class_constants.h +8 -0
- data/ext/rbs_extension/extconf.rb +5 -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 +44 -35
- data/include/rbs/ast.h +448 -173
- data/include/rbs/defines.h +27 -0
- data/include/rbs/lexer.h +30 -11
- data/include/rbs/location.h +25 -44
- data/include/rbs/parser.h +6 -6
- 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/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 +293 -3
- data/lib/rbs/ast/ruby/comment_block.rb +24 -0
- data/lib/rbs/ast/ruby/declarations.rb +198 -3
- data/lib/rbs/ast/ruby/helpers/constant_helper.rb +4 -0
- data/lib/rbs/ast/ruby/members.rb +532 -22
- data/lib/rbs/ast/type_param.rb +24 -4
- data/lib/rbs/buffer.rb +20 -15
- data/lib/rbs/cli/diff.rb +16 -15
- data/lib/rbs/cli/validate.rb +38 -106
- data/lib/rbs/cli.rb +52 -19
- data/lib/rbs/collection/config/lockfile_generator.rb +14 -2
- data/lib/rbs/collection/sources/git.rb +1 -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 +20 -0
- data/lib/rbs/definition_builder.rb +147 -25
- data/lib/rbs/diff.rb +7 -1
- data/lib/rbs/environment.rb +227 -74
- data/lib/rbs/environment_loader.rb +0 -6
- data/lib/rbs/errors.rb +27 -18
- data/lib/rbs/inline_parser.rb +342 -6
- 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/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 +8 -0
- data/lib/rbs/resolver/constant_resolver.rb +2 -2
- data/lib/rbs/resolver/type_name_resolver.rb +116 -38
- data/lib/rbs/subtractor.rb +3 -1
- data/lib/rbs/test/type_check.rb +19 -2
- data/lib/rbs/type_name.rb +1 -1
- data/lib/rbs/types.rb +88 -78
- data/lib/rbs/unit_test/type_assertions.rb +35 -8
- data/lib/rbs/validator.rb +2 -2
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs.rb +1 -2
- data/lib/rdoc/discover.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +1 -1
- data/rbs.gemspec +4 -3
- data/rust/.gitignore +1 -0
- data/rust/Cargo.lock +378 -0
- data/rust/Cargo.toml +7 -0
- data/rust/ruby-rbs/Cargo.toml +22 -0
- data/rust/ruby-rbs/build.rs +764 -0
- data/rust/ruby-rbs/examples/locations.rs +60 -0
- data/rust/ruby-rbs/src/lib.rs +1 -0
- data/rust/ruby-rbs/src/node/mod.rs +742 -0
- data/rust/ruby-rbs/tests/sanity.rs +47 -0
- data/rust/ruby-rbs/vendor/rbs/config.yml +1 -0
- data/rust/ruby-rbs-sys/Cargo.toml +23 -0
- data/rust/ruby-rbs-sys/build.rs +204 -0
- data/rust/ruby-rbs-sys/src/lib.rs +50 -0
- data/rust/ruby-rbs-sys/vendor/rbs/include +1 -0
- data/rust/ruby-rbs-sys/vendor/rbs/src +1 -0
- data/rust/ruby-rbs-sys/wrapper.h +1 -0
- data/schema/typeParam.json +17 -1
- data/sig/ast/ruby/annotations.rbs +315 -4
- data/sig/ast/ruby/comment_block.rbs +8 -0
- data/sig/ast/ruby/declarations.rbs +102 -4
- data/sig/ast/ruby/members.rbs +108 -2
- data/sig/cli/diff.rbs +5 -11
- data/sig/cli/validate.rbs +12 -8
- data/sig/cli.rbs +18 -18
- 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 +39 -2
- data/sig/locator.rbs +0 -2
- data/sig/manifest.yaml +0 -1
- data/sig/method_builder.rbs +3 -1
- data/sig/parser.rbs +31 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/resolver/type_name_resolver.rbs +35 -7
- data/sig/source.rbs +3 -3
- data/sig/type_param.rbs +13 -8
- data/sig/types.rbs +6 -7
- data/sig/unit_test/spy.rbs +0 -8
- data/sig/unit_test/type_assertions.rbs +11 -0
- data/src/ast.c +410 -153
- data/src/lexer.c +1392 -1313
- data/src/lexer.re +3 -0
- data/src/lexstate.c +58 -37
- data/src/location.c +8 -48
- data/src/parser.c +977 -516
- data/src/string.c +0 -48
- data/src/util/rbs_allocator.c +89 -71
- 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/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/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 +110 -0
- data/stdlib/erb/0/erb.rbs +748 -347
- data/stdlib/etc/0/etc.rbs +55 -50
- data/stdlib/fileutils/0/fileutils.rbs +158 -139
- data/stdlib/forwardable/0/forwardable.rbs +13 -10
- data/stdlib/io-console/0/io-console.rbs +2 -2
- data/stdlib/json/0/json.rbs +217 -136
- 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 +475 -357
- 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 +25 -68
- 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 +2 -2
- 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 +1177 -85
- data/stdlib/strscan/0/string_scanner.rbs +27 -25
- 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 +3 -0
- data/stdlib/tsort/0/tsort.rbs +7 -6
- 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 +6 -6
- 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
- metadata +50 -6
data/core/dir.rbs
CHANGED
|
@@ -116,10 +116,12 @@
|
|
|
116
116
|
#
|
|
117
117
|
# * ::[]: Same as ::glob without the ability to pass flags.
|
|
118
118
|
# * ::children: Returns an array of names of the children (both files and
|
|
119
|
-
# directories) of the given directory, but not including
|
|
119
|
+
# directories) of the given directory, but not including <code>.</code> or
|
|
120
|
+
# <code>..</code>.
|
|
120
121
|
# * ::empty?: Returns whether the given path is an empty directory.
|
|
121
122
|
# * ::entries: Returns an array of names of the children (both files and
|
|
122
|
-
# directories) of the given directory, including
|
|
123
|
+
# directories) of the given directory, including <code>.</code> and
|
|
124
|
+
# <code>..</code>.
|
|
123
125
|
# * ::exist?: Returns whether the given path is a directory.
|
|
124
126
|
# * ::getwd (aliased as #pwd): Returns the path to the current working
|
|
125
127
|
# directory.
|
|
@@ -128,7 +130,8 @@
|
|
|
128
130
|
# * ::home: Returns the home directory path for a given user or the current
|
|
129
131
|
# user.
|
|
130
132
|
# * #children: Returns an array of names of the children (both files and
|
|
131
|
-
# directories) of `self`, but not including
|
|
133
|
+
# directories) of `self`, but not including <code>.</code> or
|
|
134
|
+
# <code>..</code>.
|
|
132
135
|
# * #fileno: Returns the integer file descriptor for `self`.
|
|
133
136
|
# * #path (aliased as #to_path): Returns the path used to create `self`.
|
|
134
137
|
# * #tell (aliased as #pos): Returns the integer position in the directory
|
|
@@ -137,13 +140,13 @@
|
|
|
137
140
|
# ### Iterating
|
|
138
141
|
#
|
|
139
142
|
# * ::each_child: Calls the given block with each entry in the given
|
|
140
|
-
# directory, but not including
|
|
143
|
+
# directory, but not including <code>.</code> or <code>..</code>.
|
|
141
144
|
# * ::foreach: Calls the given block with each entry in the given directory,
|
|
142
|
-
# including
|
|
143
|
-
# * #each: Calls the given block with each entry in `self`, including
|
|
144
|
-
#
|
|
145
|
+
# including <code>.</code> and <code>..</code>.
|
|
146
|
+
# * #each: Calls the given block with each entry in `self`, including
|
|
147
|
+
# <code>.</code> and <code>..</code>.
|
|
145
148
|
# * #each_child: Calls the given block with each entry in `self`, but not
|
|
146
|
-
# including
|
|
149
|
+
# including <code>.</code> or <code>..</code>.
|
|
147
150
|
#
|
|
148
151
|
# ### Other
|
|
149
152
|
#
|
|
@@ -171,7 +174,7 @@ class Dir
|
|
|
171
174
|
# system's encoding is used:
|
|
172
175
|
#
|
|
173
176
|
# Dir.new('.').read.encoding # => #<Encoding:UTF-8>
|
|
174
|
-
# Dir.new('.', encoding:
|
|
177
|
+
# Dir.new('.', encoding: Encoding::US_ASCI).read.encoding # => #<Encoding:US-ASCII>
|
|
175
178
|
#
|
|
176
179
|
def initialize: (path dir, ?encoding: encoding?) -> void
|
|
177
180
|
|
|
@@ -255,7 +258,8 @@ class Dir
|
|
|
255
258
|
# - Dir.children(dirpath, encoding: 'UTF-8') -> array
|
|
256
259
|
# -->
|
|
257
260
|
# Returns an array of the entry names in the directory at `dirpath` except for
|
|
258
|
-
#
|
|
261
|
+
# <code>'.'</code> and <code>'..'</code>; sets the given encoding onto each
|
|
262
|
+
# returned entry name:
|
|
259
263
|
#
|
|
260
264
|
# Dir.children('/example') # => ["config.h", "lib", "main.rb"]
|
|
261
265
|
# Dir.children('/example').first.encoding
|
|
@@ -274,8 +278,9 @@ class Dir
|
|
|
274
278
|
# - Dir.chroot(dirpath) -> 0
|
|
275
279
|
# -->
|
|
276
280
|
# Changes the root directory of the calling process to that specified in
|
|
277
|
-
# `dirpath`. The new root directory is used for pathnames beginning with
|
|
278
|
-
# The root directory is inherited by all children of the
|
|
281
|
+
# `dirpath`. The new root directory is used for pathnames beginning with
|
|
282
|
+
# <code>'/'</code>. The root directory is inherited by all children of the
|
|
283
|
+
# calling process.
|
|
279
284
|
#
|
|
280
285
|
# Only a privileged process may call `chroot`.
|
|
281
286
|
#
|
|
@@ -300,7 +305,8 @@ class Dir
|
|
|
300
305
|
# - Dir.each_child(dirpath) {|entry_name| ... } -> nil
|
|
301
306
|
# - Dir.each_child(dirpath, encoding: 'UTF-8') {|entry_name| ... } -> nil
|
|
302
307
|
# -->
|
|
303
|
-
# Like Dir.foreach, except that entries
|
|
308
|
+
# Like Dir.foreach, except that entries <code>'.'</code> and <code>'..'</code>
|
|
309
|
+
# are not included.
|
|
304
310
|
#
|
|
305
311
|
def self.each_child: (path dirname, ?encoding: encoding?) -> Enumerator[String, nil]
|
|
306
312
|
| (path dirname, ?encoding: encoding?) { (String filename) -> void } -> nil
|
|
@@ -477,8 +483,8 @@ class Dir
|
|
|
477
483
|
|
|
478
484
|
# <!--
|
|
479
485
|
# rdoc-file=dir.rb
|
|
480
|
-
# - Dir.glob(
|
|
481
|
-
# - Dir.glob(
|
|
486
|
+
# - Dir.glob(patterns, flags: 0, base: nil, sort: true) -> array
|
|
487
|
+
# - Dir.glob(patterns, flags: 0, base: nil, sort: true) {|entry_name| ... } -> nil
|
|
482
488
|
# -->
|
|
483
489
|
# Forms an array *entry_names* of the entry names selected by the arguments.
|
|
484
490
|
#
|
|
@@ -487,8 +493,8 @@ class Dir
|
|
|
487
493
|
#
|
|
488
494
|
# Notes for the following examples:
|
|
489
495
|
#
|
|
490
|
-
# *
|
|
491
|
-
# with
|
|
496
|
+
# * <code>'*'</code> is the pattern that matches any entry name except those
|
|
497
|
+
# that begin with <code>'.'</code>.
|
|
492
498
|
# * We use method Array#take to shorten returned arrays that otherwise would
|
|
493
499
|
# be very large.
|
|
494
500
|
#
|
|
@@ -513,8 +519,8 @@ class Dir
|
|
|
513
519
|
#
|
|
514
520
|
# If optional keyword argument `base` is given, its value specifies the base
|
|
515
521
|
# directory. Each pattern string specifies entries relative to the base
|
|
516
|
-
# directory; the default is
|
|
517
|
-
# entry names in the result:
|
|
522
|
+
# directory; the default is <code>'.'</code>. The base directory is not
|
|
523
|
+
# prepended to the entry names in the result:
|
|
518
524
|
#
|
|
519
525
|
# Dir.glob(pattern, base: 'lib').take(5)
|
|
520
526
|
# # => ["abbrev.gemspec", "abbrev.rb", "base64.gemspec", "base64.rb", "benchmark.gemspec"]
|
|
@@ -531,60 +537,64 @@ class Dir
|
|
|
531
537
|
# Each pattern string is expanded according to certain metacharacters; examples
|
|
532
538
|
# below use the [Ruby file tree](rdoc-ref:Dir@About+the+Examples):
|
|
533
539
|
#
|
|
534
|
-
# *
|
|
535
|
-
# regexp
|
|
540
|
+
# * <code>'*'</code>: Matches any substring in an entry name, similar in
|
|
541
|
+
# meaning to regexp <code>/.*/mx</code>; may be restricted by other values
|
|
542
|
+
# in the pattern strings:
|
|
536
543
|
#
|
|
537
|
-
# *
|
|
544
|
+
# * <code>'*'</code> matches all entry names:
|
|
538
545
|
#
|
|
539
546
|
# Dir.glob('*').take(3) # => ["BSDL", "CONTRIBUTING.md", "COPYING"]
|
|
540
547
|
#
|
|
541
|
-
# *
|
|
548
|
+
# * <code>'c*'</code> matches entry names beginning with <code>'c'</code>:
|
|
542
549
|
#
|
|
543
550
|
# Dir.glob('c*').take(3) # => ["CONTRIBUTING.md", "COPYING", "COPYING.ja"]
|
|
544
551
|
#
|
|
545
|
-
# *
|
|
552
|
+
# * <code>'*c'</code> matches entry names ending with <code>'c'</code>:
|
|
546
553
|
#
|
|
547
554
|
# Dir.glob('*c').take(3) # => ["addr2line.c", "array.c", "ast.c"]
|
|
548
555
|
#
|
|
549
|
-
# *
|
|
550
|
-
# or end:
|
|
556
|
+
# * <code>'*c*'</code> matches entry names that contain <code>'c'</code>,
|
|
557
|
+
# even at the beginning or end:
|
|
551
558
|
#
|
|
552
559
|
# Dir.glob('*c*').take(3) # => ["CONTRIBUTING.md", "COPYING", "COPYING.ja"]
|
|
553
560
|
#
|
|
554
561
|
# Does not match Unix-like hidden entry names ("dot files"). To include
|
|
555
562
|
# those in the matched entry names, use flag IO::FNM_DOTMATCH or something
|
|
556
|
-
# like
|
|
563
|
+
# like <code>'{*,.*}'</code>.
|
|
557
564
|
#
|
|
558
|
-
# *
|
|
559
|
-
# character
|
|
565
|
+
# * <code>'**'</code>: Matches entry names recursively if followed by the
|
|
566
|
+
# slash character <code>'/'</code>:
|
|
560
567
|
#
|
|
561
568
|
# Dir.glob('**/').take(3) # => ["basictest/", "benchmark/", "benchmark/gc/"]
|
|
562
569
|
#
|
|
563
570
|
# If the string pattern contains other characters or is not followed by a
|
|
564
|
-
# slash character, it is equivalent to
|
|
571
|
+
# slash character, it is equivalent to <code>'*'</code>.
|
|
565
572
|
#
|
|
566
|
-
# *
|
|
573
|
+
# * <code>'?'</code> Matches any single character; similar in meaning to
|
|
574
|
+
# regexp <code>/./</code>:
|
|
567
575
|
#
|
|
568
576
|
# Dir.glob('io.?') # => ["io.c"]
|
|
569
577
|
#
|
|
570
|
-
# *
|
|
571
|
-
# [Regexp character
|
|
572
|
-
#
|
|
578
|
+
# * <code>'[_set_]'</code>: Matches any one character in the string *set*;
|
|
579
|
+
# behaves like a [Regexp character
|
|
580
|
+
# class](rdoc-ref:Regexp@Character+Classes), including set negation
|
|
581
|
+
# (<code>'[^a-z]'</code>):
|
|
573
582
|
#
|
|
574
583
|
# Dir.glob('*.[a-z][a-z]').take(3)
|
|
575
584
|
# # => ["CONTRIBUTING.md", "COPYING.ja", "KNOWNBUGS.rb"]
|
|
576
585
|
#
|
|
577
|
-
# *
|
|
578
|
-
# like [Regexp alternation](rdoc-ref:Regexp@Alternation):
|
|
586
|
+
# * <code>'{_abc_,_xyz_}'</code>: Matches either string *abc* or string *xyz*;
|
|
587
|
+
# behaves like [Regexp alternation](rdoc-ref:Regexp@Alternation):
|
|
579
588
|
#
|
|
580
589
|
# Dir.glob('{LEGAL,BSDL}') # => ["LEGAL", "BSDL"]
|
|
581
590
|
#
|
|
582
591
|
# More than two alternatives may be given.
|
|
583
592
|
#
|
|
584
|
-
# *
|
|
593
|
+
# * <code>\</code>: Escapes the following metacharacter.
|
|
585
594
|
#
|
|
586
595
|
# Note that on Windows, the backslash character may not be used in a string
|
|
587
|
-
# pattern:
|
|
596
|
+
# pattern: <code>Dir['c:\foo*']</code> will not work, use
|
|
597
|
+
# <code>Dir['c:/foo*']</code> instead.
|
|
588
598
|
#
|
|
589
599
|
# More examples (using the [simple file tree](rdoc-ref:Dir@About+the+Examples)):
|
|
590
600
|
#
|
|
@@ -623,26 +633,26 @@ class Dir
|
|
|
623
633
|
#
|
|
624
634
|
# The flags for this method (other constants in File::Constants do not apply):
|
|
625
635
|
#
|
|
626
|
-
# * File::FNM_DOTMATCH: specifies that entry names beginning with
|
|
627
|
-
# be considered for matching:
|
|
636
|
+
# * File::FNM_DOTMATCH: specifies that entry names beginning with
|
|
637
|
+
# <code>'.'</code> should be considered for matching:
|
|
628
638
|
#
|
|
629
639
|
# Dir.glob('*').take(5)
|
|
630
640
|
# # => ["BSDL", "CONTRIBUTING.md", "COPYING", "COPYING.ja", "GPL"]
|
|
631
641
|
# Dir.glob('*', flags: File::FNM_DOTMATCH).take(5)
|
|
632
642
|
# # => [".", ".appveyor.yml", ".cirrus.yml", ".dir-locals.el", ".document"]
|
|
633
643
|
#
|
|
634
|
-
# * File::FNM_EXTGLOB: enables the pattern extension
|
|
635
|
-
# matches pattern *a* and pattern *b*; behaves like a [regexp
|
|
636
|
-
# union](rdoc-ref:Regexp.union) (e.g.,
|
|
644
|
+
# * File::FNM_EXTGLOB: enables the pattern extension <code>'{_a_,_b_}'</code>,
|
|
645
|
+
# which matches pattern *a* and pattern *b*; behaves like a [regexp
|
|
646
|
+
# union](rdoc-ref:Regexp.union) (e.g., <code>'(?:_a_|_b_)'</code>):
|
|
637
647
|
#
|
|
638
648
|
# pattern = '{LEGAL,BSDL}'
|
|
639
649
|
# Dir.glob(pattern) # => ["LEGAL", "BSDL"]
|
|
640
650
|
#
|
|
641
651
|
# * File::FNM_NOESCAPE: specifies that escaping with the backslash character
|
|
642
|
-
#
|
|
652
|
+
# <code>'\'</code> is disabled; the character is not an escape character.
|
|
643
653
|
#
|
|
644
|
-
# * File::FNM_PATHNAME: specifies that metacharacters
|
|
645
|
-
# match directory separators.
|
|
654
|
+
# * File::FNM_PATHNAME: specifies that metacharacters <code>'*'</code> and
|
|
655
|
+
# <code>'?'</code> do not match directory separators.
|
|
646
656
|
#
|
|
647
657
|
# * File::FNM_SHORTNAME: specifies that patterns may match short names if they
|
|
648
658
|
# exist; Windows only.
|
|
@@ -704,7 +714,7 @@ class Dir
|
|
|
704
714
|
# system's encoding is used:
|
|
705
715
|
#
|
|
706
716
|
# Dir.open('.').read.encoding # => #<Encoding:UTF-8>
|
|
707
|
-
# Dir.open('.', encoding:
|
|
717
|
+
# Dir.open('.', encoding: Encoding::US_ASCII).read.encoding # => #<Encoding:US-ASCII>
|
|
708
718
|
#
|
|
709
719
|
def self.open: (path dirname, ?encoding: encoding?) -> instance
|
|
710
720
|
| [U] (path dirname, ?encoding: encoding?) { (instance) -> U } -> U
|
|
@@ -774,7 +784,8 @@ class Dir
|
|
|
774
784
|
# rdoc-file=dir.c
|
|
775
785
|
# - children -> array
|
|
776
786
|
# -->
|
|
777
|
-
# Returns an array of the entry names in `self` except for
|
|
787
|
+
# Returns an array of the entry names in `self` except for <code>'.'</code> and
|
|
788
|
+
# <code>'..'</code>:
|
|
778
789
|
#
|
|
779
790
|
# dir = Dir.new('/example')
|
|
780
791
|
# dir.children # => ["config.h", "lib", "main.rb"]
|
|
@@ -821,7 +832,8 @@ class Dir
|
|
|
821
832
|
# rdoc-file=dir.c
|
|
822
833
|
# - each_child {|entry_name| ... } -> self
|
|
823
834
|
# -->
|
|
824
|
-
# Calls the block with each entry name in `self` except
|
|
835
|
+
# Calls the block with each entry name in `self` except <code>'.'</code> and
|
|
836
|
+
# <code>'..'</code>:
|
|
825
837
|
#
|
|
826
838
|
# dir = Dir.new('/example')
|
|
827
839
|
# dir.each_child {|entry_name| p entry_name }
|
data/core/encoding.rbs
CHANGED
|
@@ -127,7 +127,7 @@ class Encoding
|
|
|
127
127
|
# Sets default external encoding. You should not set Encoding::default_external
|
|
128
128
|
# in ruby code as strings created before changing the value may have a different
|
|
129
129
|
# encoding from strings created after the value was changed., instead you should
|
|
130
|
-
# use
|
|
130
|
+
# use <code>ruby -E</code> to invoke ruby with the correct default_external.
|
|
131
131
|
#
|
|
132
132
|
# See Encoding::default_external for information on how the default external
|
|
133
133
|
# encoding is used.
|
|
@@ -172,8 +172,8 @@ class Encoding
|
|
|
172
172
|
# Sets default internal encoding or removes default internal encoding when
|
|
173
173
|
# passed nil. You should not set Encoding::default_internal in ruby code as
|
|
174
174
|
# strings created before changing the value may have a different encoding from
|
|
175
|
-
# strings created after the change. Instead you should use
|
|
176
|
-
# ruby with the correct default_internal.
|
|
175
|
+
# strings created after the change. Instead you should use <code>ruby -E</code>
|
|
176
|
+
# to invoke ruby with the correct default_internal.
|
|
177
177
|
#
|
|
178
178
|
# See Encoding::default_internal for information on how the default internal
|
|
179
179
|
# encoding is used.
|
|
@@ -207,8 +207,8 @@ class Encoding
|
|
|
207
207
|
#
|
|
208
208
|
#
|
|
209
209
|
# An ArgumentError is raised when no encoding with *name*. Only
|
|
210
|
-
#
|
|
211
|
-
# "internal", in other words, when Ruby has no default internal encoding.
|
|
210
|
+
# <code>Encoding.find("internal")</code> however returns nil when no encoding
|
|
211
|
+
# named "internal", in other words, when Ruby has no default internal encoding.
|
|
212
212
|
#
|
|
213
213
|
def self.find: (encoding enc) -> Encoding?
|
|
214
214
|
|
|
@@ -281,7 +281,7 @@ class Encoding
|
|
|
281
281
|
def inspect: () -> String
|
|
282
282
|
|
|
283
283
|
# <!-- rdoc-file=encoding.c -->
|
|
284
|
-
#
|
|
284
|
+
# The name of the encoding.
|
|
285
285
|
#
|
|
286
286
|
# Encoding::UTF_8.name #=> "UTF-8"
|
|
287
287
|
#
|
|
@@ -297,12 +297,8 @@ class Encoding
|
|
|
297
297
|
#
|
|
298
298
|
def names: () -> Array[String]
|
|
299
299
|
|
|
300
|
-
# <!--
|
|
301
|
-
#
|
|
302
|
-
# - enc.name -> string
|
|
303
|
-
# - enc.to_s -> string
|
|
304
|
-
# -->
|
|
305
|
-
# Returns the name of the encoding.
|
|
300
|
+
# <!-- rdoc-file=encoding.c -->
|
|
301
|
+
# The name of the encoding.
|
|
306
302
|
#
|
|
307
303
|
# Encoding::UTF_8.name #=> "UTF-8"
|
|
308
304
|
#
|
|
@@ -785,7 +781,7 @@ class Encoding::Converter < Object
|
|
|
785
781
|
# - ec == other -> true or false
|
|
786
782
|
# -->
|
|
787
783
|
#
|
|
788
|
-
def ==: (
|
|
784
|
+
def ==: (untyped) -> bool
|
|
789
785
|
|
|
790
786
|
# <!--
|
|
791
787
|
# rdoc-file=transcode.c
|
|
@@ -923,8 +919,9 @@ class Encoding::Converter < Object
|
|
|
923
919
|
# p ec.primitive_convert(src, dst, nil, 1) #=> :destination_buffer_full
|
|
924
920
|
# p ec.last_error #=> nil
|
|
925
921
|
#
|
|
926
|
-
def last_error: () -> Encoding::InvalidByteSequenceError
|
|
927
|
-
|
|
922
|
+
def last_error: () -> ( Encoding::InvalidByteSequenceError
|
|
923
|
+
| Encoding::UndefinedConversionError
|
|
924
|
+
| nil )
|
|
928
925
|
|
|
929
926
|
# <!--
|
|
930
927
|
# rdoc-file=transcode.c
|