rbs 4.0.0.dev.5 → 4.0.1.dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.clang-format +1 -0
- data/.github/workflows/c-check.yml +8 -4
- data/.github/workflows/comments.yml +3 -1
- data/.github/workflows/dependabot.yml +1 -1
- data/.github/workflows/ruby.yml +10 -0
- data/.github/workflows/rust.yml +95 -0
- data/CHANGELOG.md +323 -0
- data/Rakefile +12 -29
- data/Steepfile +1 -0
- data/config.yml +393 -37
- data/core/array.rbs +218 -188
- data/core/basic_object.rbs +9 -8
- data/core/class.rbs +6 -5
- data/core/comparable.rbs +45 -31
- data/core/complex.rbs +52 -40
- data/core/dir.rbs +57 -45
- data/core/encoding.rbs +5 -5
- data/core/enumerable.rbs +96 -91
- data/core/enumerator.rbs +4 -3
- data/core/errno.rbs +3 -2
- data/core/errors.rbs +31 -29
- data/core/exception.rbs +12 -12
- data/core/fiber.rbs +36 -36
- data/core/file.rbs +186 -113
- data/core/file_test.rbs +2 -2
- data/core/float.rbs +41 -32
- data/core/gc.rbs +78 -70
- data/core/hash.rbs +70 -60
- data/core/integer.rbs +32 -28
- data/core/io/buffer.rbs +36 -36
- data/core/io/wait.rbs +7 -7
- data/core/io.rbs +120 -135
- data/core/kernel.rbs +189 -139
- data/core/marshal.rbs +3 -3
- data/core/match_data.rbs +14 -12
- data/core/math.rbs +69 -67
- data/core/method.rbs +6 -6
- data/core/module.rbs +146 -85
- data/core/nil_class.rbs +4 -3
- data/core/numeric.rbs +35 -32
- data/core/object.rbs +6 -8
- data/core/object_space.rbs +11 -10
- data/core/pathname.rbs +131 -81
- data/core/proc.rbs +65 -33
- data/core/process.rbs +219 -201
- data/core/ractor.rbs +15 -11
- data/core/random.rbs +4 -3
- data/core/range.rbs +52 -47
- data/core/rational.rbs +5 -5
- data/core/rbs/unnamed/argf.rbs +58 -51
- data/core/rbs/unnamed/env_class.rbs +18 -13
- data/core/rbs/unnamed/main_class.rbs +123 -0
- data/core/rbs/unnamed/random.rbs +7 -5
- data/core/regexp.rbs +236 -197
- data/core/ruby.rbs +1 -1
- data/core/ruby_vm.rbs +32 -30
- data/core/rubygems/config_file.rbs +5 -5
- data/core/rubygems/errors.rbs +1 -1
- data/core/rubygems/requirement.rbs +5 -5
- data/core/rubygems/rubygems.rbs +5 -3
- data/core/set.rbs +17 -16
- data/core/signal.rbs +2 -2
- data/core/string.rbs +311 -292
- data/core/struct.rbs +26 -25
- data/core/symbol.rbs +25 -24
- data/core/thread.rbs +40 -34
- data/core/time.rbs +47 -42
- data/core/trace_point.rbs +34 -31
- data/core/true_class.rbs +2 -2
- data/core/unbound_method.rbs +10 -10
- data/core/warning.rbs +7 -7
- data/docs/collection.md +1 -1
- data/docs/config.md +171 -0
- data/docs/inline.md +110 -4
- data/docs/syntax.md +13 -12
- data/ext/rbs_extension/ast_translation.c +489 -135
- data/ext/rbs_extension/class_constants.c +8 -0
- data/ext/rbs_extension/class_constants.h +4 -0
- data/ext/rbs_extension/legacy_location.c +28 -51
- data/ext/rbs_extension/legacy_location.h +37 -0
- data/ext/rbs_extension/main.c +12 -20
- data/include/rbs/ast.h +423 -195
- data/include/rbs/lexer.h +2 -2
- data/include/rbs/location.h +25 -44
- data/include/rbs/parser.h +2 -2
- data/include/rbs/util/rbs_constant_pool.h +0 -3
- data/include/rbs.h +8 -0
- data/lib/rbs/ast/ruby/annotations.rb +157 -4
- data/lib/rbs/ast/ruby/members.rb +374 -22
- data/lib/rbs/cli/validate.rb +5 -60
- data/lib/rbs/collection/config/lockfile_generator.rb +6 -2
- data/lib/rbs/definition_builder.rb +60 -27
- data/lib/rbs/errors.rb +0 -11
- data/lib/rbs/inline_parser.rb +1 -1
- data/lib/rbs/parser_aux.rb +20 -7
- data/lib/rbs/prototype/helpers.rb +57 -0
- data/lib/rbs/prototype/rb.rb +1 -26
- data/lib/rbs/prototype/rbi.rb +1 -20
- data/lib/rbs/test/type_check.rb +3 -0
- data/lib/rbs/types.rb +62 -52
- data/lib/rbs/unit_test/type_assertions.rb +35 -8
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs.rb +0 -1
- data/rbs.gemspec +1 -1
- 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/sig/ast/ruby/annotations.rbs +191 -4
- data/sig/ast/ruby/members.rbs +21 -1
- data/sig/cli/validate.rbs +1 -6
- data/sig/definition_builder.rbs +2 -0
- data/sig/errors.rbs +0 -8
- data/sig/method_types.rbs +1 -1
- data/sig/parser.rbs +17 -13
- data/sig/prototype/helpers.rbs +2 -0
- data/sig/types.rbs +10 -11
- data/sig/unit_test/spy.rbs +0 -8
- data/sig/unit_test/type_assertions.rbs +11 -0
- data/src/ast.c +339 -161
- data/src/lexstate.c +1 -1
- data/src/location.c +7 -47
- data/src/parser.c +674 -480
- data/src/util/rbs_constant_pool.c +0 -4
- data/stdlib/bigdecimal/0/big_decimal.rbs +16 -16
- data/stdlib/cgi-escape/0/escape.rbs +4 -4
- data/stdlib/coverage/0/coverage.rbs +4 -3
- data/stdlib/date/0/date.rbs +33 -28
- data/stdlib/date/0/date_time.rbs +24 -23
- data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
- data/stdlib/erb/0/erb.rbs +64 -53
- data/stdlib/etc/0/etc.rbs +55 -50
- data/stdlib/fileutils/0/fileutils.rbs +138 -125
- data/stdlib/forwardable/0/forwardable.rbs +10 -10
- data/stdlib/io-console/0/io-console.rbs +2 -2
- data/stdlib/json/0/json.rbs +135 -108
- data/stdlib/monitor/0/monitor.rbs +3 -3
- data/stdlib/net-http/0/net-http.rbs +159 -134
- data/stdlib/objspace/0/objspace.rbs +8 -7
- data/stdlib/open-uri/0/open-uri.rbs +8 -8
- data/stdlib/open3/0/open3.rbs +36 -35
- data/stdlib/openssl/0/openssl.rbs +144 -129
- data/stdlib/optparse/0/optparse.rbs +18 -14
- data/stdlib/pathname/0/pathname.rbs +2 -2
- 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 +61 -8
- data/stdlib/psych/0/store.rbs +2 -4
- data/stdlib/pty/0/pty.rbs +9 -6
- data/stdlib/random-formatter/0/random-formatter.rbs +2 -2
- data/stdlib/ripper/0/ripper.rbs +20 -17
- data/stdlib/securerandom/0/securerandom.rbs +1 -1
- data/stdlib/shellwords/0/shellwords.rbs +2 -2
- 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 +10 -9
- data/stdlib/socket/0/tcp_server.rbs +1 -1
- data/stdlib/socket/0/tcp_socket.rbs +1 -1
- data/stdlib/socket/0/udp_socket.rbs +1 -1
- data/stdlib/socket/0/unix_server.rbs +1 -1
- data/stdlib/stringio/0/stringio.rbs +55 -54
- data/stdlib/strscan/0/string_scanner.rbs +46 -44
- data/stdlib/tempfile/0/tempfile.rbs +24 -20
- data/stdlib/time/0/time.rbs +7 -5
- data/stdlib/tsort/0/tsort.rbs +7 -6
- data/stdlib/uri/0/common.rbs +26 -18
- data/stdlib/uri/0/file.rbs +2 -2
- data/stdlib/uri/0/generic.rbs +2 -2
- 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 +6 -5
- data/stdlib/zlib/0/deflate.rbs +4 -3
- data/stdlib/zlib/0/gzip_reader.rbs +4 -4
- 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
- metadata +23 -5
- data/.github/workflows/valgrind.yml +0 -42
|
@@ -107,15 +107,16 @@
|
|
|
107
107
|
#
|
|
108
108
|
# OptionParser comes with a few ready-to-use kinds of type coercion. They are:
|
|
109
109
|
#
|
|
110
|
-
# * Date -- Anything accepted by
|
|
111
|
-
#
|
|
112
|
-
# * DateTime -- Anything accepted by
|
|
113
|
-
#
|
|
114
|
-
# * Time -- Anything accepted by
|
|
115
|
-
# require
|
|
116
|
-
# * URI -- Anything accepted by
|
|
117
|
-
#
|
|
118
|
-
#
|
|
110
|
+
# * Date -- Anything accepted by <code>Date.parse</code> (need to require
|
|
111
|
+
# <code>optparse/date</code>)
|
|
112
|
+
# * DateTime -- Anything accepted by <code>DateTime.parse</code> (need to
|
|
113
|
+
# require <code>optparse/date</code>)
|
|
114
|
+
# * Time -- Anything accepted by <code>Time.httpdate</code> or
|
|
115
|
+
# <code>Time.parse</code> (need to require <code>optparse/time</code>)
|
|
116
|
+
# * URI -- Anything accepted by <code>URI.parse</code> (need to require
|
|
117
|
+
# <code>optparse/uri</code>)
|
|
118
|
+
# * Shellwords -- Anything accepted by <code>Shellwords.shellwords</code>
|
|
119
|
+
# (need to require <code>optparse/shellwords</code>)
|
|
119
120
|
# * String -- Any non-empty string
|
|
120
121
|
# * Integer -- Any integer. Will convert octal. (e.g. 124, -3, 040)
|
|
121
122
|
# * Float -- Any float. (e.g. 10, 3.14, -100E+13)
|
|
@@ -760,8 +761,8 @@ class OptionParser
|
|
|
760
761
|
# -->
|
|
761
762
|
# Parses command line arguments `argv` in order. When a block is given, each
|
|
762
763
|
# non-option argument is yielded. When optional `into` keyword argument is
|
|
763
|
-
# provided, the parsed option values are stored there via
|
|
764
|
-
# can be Hash, or OpenStruct, or other similar object).
|
|
764
|
+
# provided, the parsed option values are stored there via <code>[]=</code>
|
|
765
|
+
# method (so it can be Hash, or OpenStruct, or other similar object).
|
|
765
766
|
#
|
|
766
767
|
# Returns the rest of `argv` left unparsed.
|
|
767
768
|
#
|
|
@@ -784,7 +785,8 @@ class OptionParser
|
|
|
784
785
|
# Parses command line arguments `argv` in order when environment variable
|
|
785
786
|
# POSIXLY_CORRECT is set, and in permutation mode otherwise. When optional
|
|
786
787
|
# `into` keyword argument is provided, the parsed option values are stored there
|
|
787
|
-
# via
|
|
788
|
+
# via <code>[]=</code> method (so it can be Hash, or OpenStruct, or other
|
|
789
|
+
# similar object).
|
|
788
790
|
#
|
|
789
791
|
def parse: (*String argv, ?into: _Intoable) -> Array[String]
|
|
790
792
|
| (Array[String] argv, ?into: _Intoable) -> Array[String]
|
|
@@ -804,8 +806,8 @@ class OptionParser
|
|
|
804
806
|
# -->
|
|
805
807
|
# Parses command line arguments `argv` in permutation mode and returns list of
|
|
806
808
|
# non-option arguments. When optional `into` keyword argument is provided, the
|
|
807
|
-
# parsed option values are stored there via
|
|
808
|
-
# OpenStruct, or other similar object).
|
|
809
|
+
# parsed option values are stored there via <code>[]=</code> method (so it can
|
|
810
|
+
# be Hash, or OpenStruct, or other similar object).
|
|
809
811
|
#
|
|
810
812
|
def permute: (*String argv, ?into: _Intoable) -> Array[String]
|
|
811
813
|
| (Array[String] argv, ?into: _Intoable) -> Array[String]
|
|
@@ -876,10 +878,12 @@ class OptionParser
|
|
|
876
878
|
#
|
|
877
879
|
def separator: (String string) -> void
|
|
878
880
|
|
|
881
|
+
# <!-- rdoc-file=lib/optparse.rb -->
|
|
879
882
|
# Heading banner preceding summary.
|
|
880
883
|
#
|
|
881
884
|
alias set_banner banner=
|
|
882
885
|
|
|
886
|
+
# <!-- rdoc-file=lib/optparse.rb -->
|
|
883
887
|
# Program name to be emitted in error message and default banner, defaults to
|
|
884
888
|
# $0.
|
|
885
889
|
#
|
|
@@ -14,8 +14,8 @@ class Pathname
|
|
|
14
14
|
# Since it is implemented by the standard library module Find, Find.prune can be
|
|
15
15
|
# used to control the traversal.
|
|
16
16
|
#
|
|
17
|
-
# If `self` is
|
|
18
|
-
# directory, not
|
|
17
|
+
# If `self` is <code>.</code>, yielded pathnames begin with a filename in the
|
|
18
|
+
# current directory, not <code>./</code>.
|
|
19
19
|
#
|
|
20
20
|
# See Find.find
|
|
21
21
|
#
|
data/stdlib/pp/0/pp.rbs
CHANGED
|
@@ -31,18 +31,19 @@
|
|
|
31
31
|
# pp(obj1, obj2, ...) #=> [obj1, obj2, ...]
|
|
32
32
|
# pp() #=> nil
|
|
33
33
|
#
|
|
34
|
-
# Output
|
|
34
|
+
# Output <code>obj(s)</code> to <code>$></code> in pretty printed format.
|
|
35
35
|
#
|
|
36
|
-
# It returns
|
|
36
|
+
# It returns <code>obj(s)</code>.
|
|
37
37
|
#
|
|
38
38
|
# ## Output Customization
|
|
39
39
|
#
|
|
40
40
|
# To define a customized pretty printing function for your classes, redefine
|
|
41
|
-
# method
|
|
42
|
-
# before redefining
|
|
41
|
+
# method <code>#pretty_print(pp)</code> in the class. Note that <code>require
|
|
42
|
+
# 'pp'</code> is needed before redefining <code>#pretty_print(pp)</code>.
|
|
43
43
|
#
|
|
44
|
-
#
|
|
45
|
-
# The method uses #text, #breakable, #nest, #group and #pp to
|
|
44
|
+
# <code>#pretty_print</code> takes the `pp` argument, which is an instance of
|
|
45
|
+
# the PP class. The method uses #text, #breakable, #nest, #group and #pp to
|
|
46
|
+
# print the object.
|
|
46
47
|
#
|
|
47
48
|
# ## Pretty-Print JSON
|
|
48
49
|
#
|
|
@@ -237,8 +238,8 @@ class PP < PrettyPrint
|
|
|
237
238
|
# -->
|
|
238
239
|
# Outputs `obj` to `out` in pretty printed format of `width` columns in width.
|
|
239
240
|
#
|
|
240
|
-
# If `out` is omitted,
|
|
241
|
-
# `out` is assumed (see width_for).
|
|
241
|
+
# If `out` is omitted, <code>$></code> is assumed. If `width` is omitted, the
|
|
242
|
+
# width of `out` is assumed (see width_for).
|
|
242
243
|
#
|
|
243
244
|
# PP.pp returns `out`.
|
|
244
245
|
#
|
|
@@ -196,8 +196,8 @@ class PrettyPrint
|
|
|
196
196
|
#
|
|
197
197
|
# If `sep` is not specified, " " is used.
|
|
198
198
|
#
|
|
199
|
-
# If `width` is not specified,
|
|
200
|
-
# this when `sep` is a multibyte character, for example.
|
|
199
|
+
# If `width` is not specified, <code>sep.length</code> is used. You will have to
|
|
200
|
+
# specify this when `sep` is a multibyte character, for example.
|
|
201
201
|
#
|
|
202
202
|
def fill_breakable: (?String sep, ?Integer width) -> void
|
|
203
203
|
|
|
@@ -210,8 +210,8 @@ class PrettyPrint
|
|
|
210
210
|
#
|
|
211
211
|
# If `sep` is not specified, " " is used.
|
|
212
212
|
#
|
|
213
|
-
# If `width` is not specified,
|
|
214
|
-
# this when `sep` is a multibyte character, for example.
|
|
213
|
+
# If `width` is not specified, <code>sep.length</code> is used. You will have to
|
|
214
|
+
# specify this when `sep` is a multibyte character, for example.
|
|
215
215
|
#
|
|
216
216
|
def breakable: (?String sep, ?Integer width) -> void
|
|
217
217
|
|
|
@@ -225,9 +225,9 @@ class PrettyPrint
|
|
|
225
225
|
# If `indent` is specified, the method call is regarded as nested by
|
|
226
226
|
# nest(indent) { ... }.
|
|
227
227
|
#
|
|
228
|
-
# If `open_obj` is specified,
|
|
229
|
-
# grouping. If `close_obj` is specified,
|
|
230
|
-
# after grouping.
|
|
228
|
+
# If `open_obj` is specified, <code>text open_obj, open_width</code> is called
|
|
229
|
+
# before grouping. If `close_obj` is specified, <code>text close_obj,
|
|
230
|
+
# close_width</code> is called after grouping.
|
|
231
231
|
#
|
|
232
232
|
def group: (?::Integer indent, ?::String open_obj, ?::String close_obj, ?Integer open_width, ?Integer close_width) { () -> untyped } -> Integer
|
|
233
233
|
|
data/stdlib/pstore/0/pstore.rbs
CHANGED
|
@@ -299,7 +299,7 @@
|
|
|
299
299
|
# end
|
|
300
300
|
# end
|
|
301
301
|
#
|
|
302
|
-
class PStore
|
|
302
|
+
class PStore[unchecked out K = untyped, unchecked out V = untyped]
|
|
303
303
|
# <!--
|
|
304
304
|
# rdoc-file=lib/pstore.rb
|
|
305
305
|
# - [](key)
|
|
@@ -320,7 +320,7 @@ class PStore
|
|
|
320
320
|
#
|
|
321
321
|
# Raises an exception if called outside a transaction block.
|
|
322
322
|
#
|
|
323
|
-
def []: (
|
|
323
|
+
def []: (K name) -> V?
|
|
324
324
|
|
|
325
325
|
# <!--
|
|
326
326
|
# rdoc-file=lib/pstore.rb
|
|
@@ -338,7 +338,7 @@ class PStore
|
|
|
338
338
|
#
|
|
339
339
|
# Raises an exception if called outside a transaction block.
|
|
340
340
|
#
|
|
341
|
-
def []=: (
|
|
341
|
+
def []=: (K name, V value) -> V
|
|
342
342
|
|
|
343
343
|
# <!--
|
|
344
344
|
# rdoc-file=lib/pstore.rb
|
|
@@ -349,7 +349,7 @@ class PStore
|
|
|
349
349
|
#
|
|
350
350
|
# Raises an exception if called outside a transaction block.
|
|
351
351
|
#
|
|
352
|
-
def abort: () ->
|
|
352
|
+
def abort: () -> void
|
|
353
353
|
|
|
354
354
|
# <!--
|
|
355
355
|
# rdoc-file=lib/pstore.rb
|
|
@@ -360,7 +360,7 @@ class PStore
|
|
|
360
360
|
#
|
|
361
361
|
# Raises an exception if called outside a transaction block.
|
|
362
362
|
#
|
|
363
|
-
def commit: () ->
|
|
363
|
+
def commit: () -> void
|
|
364
364
|
|
|
365
365
|
# <!--
|
|
366
366
|
# rdoc-file=lib/pstore.rb
|
|
@@ -379,7 +379,7 @@ class PStore
|
|
|
379
379
|
#
|
|
380
380
|
# Raises an exception if called outside a transaction block.
|
|
381
381
|
#
|
|
382
|
-
def delete: (
|
|
382
|
+
def delete: (K name) -> V?
|
|
383
383
|
|
|
384
384
|
# <!--
|
|
385
385
|
# rdoc-file=lib/pstore.rb
|
|
@@ -400,7 +400,7 @@ class PStore
|
|
|
400
400
|
#
|
|
401
401
|
# Raises an exception if called outside a transaction block.
|
|
402
402
|
#
|
|
403
|
-
def fetch: (
|
|
403
|
+
def fetch: (K name, ?V default) -> V
|
|
404
404
|
|
|
405
405
|
# <!--
|
|
406
406
|
# rdoc-file=lib/pstore.rb
|
|
@@ -410,21 +410,25 @@ class PStore
|
|
|
410
410
|
#
|
|
411
411
|
# store.path # => "flat.store"
|
|
412
412
|
#
|
|
413
|
-
def path: () ->
|
|
413
|
+
def path: () -> String
|
|
414
414
|
|
|
415
415
|
# <!--
|
|
416
416
|
# rdoc-file=lib/pstore.rb
|
|
417
417
|
# - root?(key)
|
|
418
418
|
# -->
|
|
419
419
|
#
|
|
420
|
-
def
|
|
420
|
+
def key?: (K name) -> bool
|
|
421
|
+
|
|
422
|
+
alias root? key?
|
|
421
423
|
|
|
422
424
|
# <!--
|
|
423
425
|
# rdoc-file=lib/pstore.rb
|
|
424
426
|
# - roots()
|
|
425
427
|
# -->
|
|
426
428
|
#
|
|
427
|
-
def
|
|
429
|
+
def keys: () -> Array[K]
|
|
430
|
+
|
|
431
|
+
alias roots keys
|
|
428
432
|
|
|
429
433
|
# <!--
|
|
430
434
|
# rdoc-file=lib/pstore.rb
|
|
@@ -441,7 +445,7 @@ class PStore
|
|
|
441
445
|
#
|
|
442
446
|
# Raises an exception if called within a transaction block.
|
|
443
447
|
#
|
|
444
|
-
def transaction: (?
|
|
448
|
+
def transaction: [U] (?bool read_only) { (self) -> U } -> U
|
|
445
449
|
|
|
446
450
|
# <!-- rdoc-file=lib/pstore.rb -->
|
|
447
451
|
# Whether PStore should do its best to prevent file corruptions, even when an
|
|
@@ -458,7 +462,7 @@ class PStore
|
|
|
458
462
|
# raises no unexpected I/O error; if such an error occurs during a write to
|
|
459
463
|
# the store, the file may become corrupted.
|
|
460
464
|
#
|
|
461
|
-
def ultra_safe: () ->
|
|
465
|
+
def ultra_safe: () -> bool
|
|
462
466
|
|
|
463
467
|
# <!-- rdoc-file=lib/pstore.rb -->
|
|
464
468
|
# Whether PStore should do its best to prevent file corruptions, even when an
|
|
@@ -475,7 +479,7 @@ class PStore
|
|
|
475
479
|
# raises no unexpected I/O error; if such an error occurs during a write to
|
|
476
480
|
# the store, the file may become corrupted.
|
|
477
481
|
#
|
|
478
|
-
def ultra_safe=: (
|
|
482
|
+
def ultra_safe=: (bool) -> bool
|
|
479
483
|
|
|
480
484
|
private
|
|
481
485
|
|
|
@@ -486,14 +490,14 @@ class PStore
|
|
|
486
490
|
# - empty_marshal_checksum()
|
|
487
491
|
# -->
|
|
488
492
|
#
|
|
489
|
-
def empty_marshal_checksum: () ->
|
|
493
|
+
def empty_marshal_checksum: () -> String
|
|
490
494
|
|
|
491
495
|
# <!--
|
|
492
496
|
# rdoc-file=lib/pstore.rb
|
|
493
497
|
# - empty_marshal_data()
|
|
494
498
|
# -->
|
|
495
499
|
#
|
|
496
|
-
def empty_marshal_data: () ->
|
|
500
|
+
def empty_marshal_data: () -> String
|
|
497
501
|
|
|
498
502
|
# <!--
|
|
499
503
|
# rdoc-file=lib/pstore.rb
|
|
@@ -501,7 +505,7 @@ class PStore
|
|
|
501
505
|
# -->
|
|
502
506
|
# Raises PStore::Error if the calling code is not in a PStore#transaction.
|
|
503
507
|
#
|
|
504
|
-
def in_transaction: () ->
|
|
508
|
+
def in_transaction: () -> void
|
|
505
509
|
|
|
506
510
|
# <!--
|
|
507
511
|
# rdoc-file=lib/pstore.rb
|
|
@@ -510,7 +514,7 @@ class PStore
|
|
|
510
514
|
# Raises PStore::Error if the calling code is not in a PStore#transaction or if
|
|
511
515
|
# the code is in a read-only PStore#transaction.
|
|
512
516
|
#
|
|
513
|
-
def in_transaction_wr: () ->
|
|
517
|
+
def in_transaction_wr: () -> void
|
|
514
518
|
|
|
515
519
|
# <!--
|
|
516
520
|
# rdoc-file=lib/pstore.rb
|
|
@@ -531,7 +535,7 @@ class PStore
|
|
|
531
535
|
#
|
|
532
536
|
# store = PStore.new(path, true)
|
|
533
537
|
#
|
|
534
|
-
def initialize: (
|
|
538
|
+
def initialize: (path file, ?boolish thread_safe) -> void
|
|
535
539
|
|
|
536
540
|
def load: (untyped content) -> untyped
|
|
537
541
|
|
|
@@ -543,7 +547,8 @@ class PStore
|
|
|
543
547
|
# be returned. If `read_only` is false, a 3-tuple will be returned: the
|
|
544
548
|
# unmarshalled Hash, a checksum of the data, and the size of the data.
|
|
545
549
|
#
|
|
546
|
-
def load_data: (
|
|
550
|
+
def load_data: (path file, true read_only) -> Hash[untyped, untyped]
|
|
551
|
+
| (path file, false read_only) -> [Hash[untyped, untyped], String, Integer]
|
|
547
552
|
|
|
548
553
|
# <!--
|
|
549
554
|
# rdoc-file=lib/pstore.rb
|
|
@@ -564,7 +569,7 @@ class PStore
|
|
|
564
569
|
#
|
|
565
570
|
# All exceptions are propagated.
|
|
566
571
|
#
|
|
567
|
-
def open_and_lock_file: (
|
|
572
|
+
def open_and_lock_file: (string filename, bool read_only) -> File?
|
|
568
573
|
|
|
569
574
|
# <!--
|
|
570
575
|
# rdoc-file=lib/pstore.rb
|
|
@@ -578,26 +583,26 @@ class PStore
|
|
|
578
583
|
# - save_data_with_atomic_file_rename_strategy(data, file)
|
|
579
584
|
# -->
|
|
580
585
|
#
|
|
581
|
-
def save_data_with_atomic_file_rename_strategy: (
|
|
586
|
+
def save_data_with_atomic_file_rename_strategy: (string data, File file) -> void
|
|
582
587
|
|
|
583
588
|
# <!--
|
|
584
589
|
# rdoc-file=lib/pstore.rb
|
|
585
590
|
# - save_data_with_fast_strategy(data, file)
|
|
586
591
|
# -->
|
|
587
592
|
#
|
|
588
|
-
def save_data_with_fast_strategy: (
|
|
589
|
-
end
|
|
593
|
+
def save_data_with_fast_strategy: (string data, File file) -> void
|
|
590
594
|
|
|
591
|
-
|
|
595
|
+
EMPTY_MARSHAL_CHECKSUM: String
|
|
592
596
|
|
|
593
|
-
|
|
597
|
+
EMPTY_MARSHAL_DATA: String
|
|
594
598
|
|
|
595
|
-
|
|
599
|
+
EMPTY_STRING: String
|
|
596
600
|
|
|
597
|
-
|
|
601
|
+
RDWR_ACCESS: { mode: Integer, encoding: Encoding }
|
|
598
602
|
|
|
599
|
-
|
|
603
|
+
RD_ACCESS: { mode: Integer, encoding: Encoding }
|
|
600
604
|
|
|
601
|
-
|
|
605
|
+
VERSION: String
|
|
602
606
|
|
|
603
|
-
|
|
607
|
+
WR_ACCESS: { mode: Integer, encoding: Encoding }
|
|
608
|
+
end
|
data/stdlib/psych/0/psych.rbs
CHANGED
|
@@ -214,29 +214,30 @@ module Psych
|
|
|
214
214
|
#
|
|
215
215
|
# Currently supported options are:
|
|
216
216
|
#
|
|
217
|
-
#
|
|
217
|
+
# <code>:indentation</code>
|
|
218
218
|
# : Number of space characters used to indent. Acceptable value should be in
|
|
219
|
-
#
|
|
219
|
+
# <code>0..9</code> range, otherwise option is ignored.
|
|
220
220
|
#
|
|
221
221
|
# Default: `2`.
|
|
222
222
|
#
|
|
223
|
-
#
|
|
224
|
-
# : Max character to wrap line at. For unlimited line width use
|
|
223
|
+
# <code>:line_width</code>
|
|
224
|
+
# : Max character to wrap line at. For unlimited line width use
|
|
225
|
+
# <code>-1</code>.
|
|
225
226
|
#
|
|
226
227
|
# Default: `0` (meaning "wrap at 81").
|
|
227
228
|
#
|
|
228
|
-
#
|
|
229
|
+
# <code>:canonical</code>
|
|
229
230
|
# : Write "canonical" YAML form (very verbose, yet strictly formal).
|
|
230
231
|
#
|
|
231
232
|
# Default: `false`.
|
|
232
233
|
#
|
|
233
|
-
#
|
|
234
|
-
# : Write
|
|
234
|
+
# <code>:header</code>
|
|
235
|
+
# : Write <code>%YAML [version]</code> at the beginning of document.
|
|
235
236
|
#
|
|
236
237
|
# Default: `false`.
|
|
237
238
|
#
|
|
238
239
|
#
|
|
239
|
-
#
|
|
240
|
+
# <code>:stringify_names</code>
|
|
240
241
|
# : Dump symbol keys in Hash objects as string.
|
|
241
242
|
#
|
|
242
243
|
# Default: `false`.
|
|
@@ -399,4 +400,56 @@ module Psych
|
|
|
399
400
|
#
|
|
400
401
|
%a{annotate:rdoc:copy:Psych.unsafe_load}
|
|
401
402
|
def self.unsafe_load: (String yaml, ?filename: String | _ToStr | _ToS?, ?fallback: untyped, ?symbolize_names: bool, ?freeze: bool, ?strict_integer: bool) -> untyped
|
|
403
|
+
|
|
404
|
+
# <!--
|
|
405
|
+
# rdoc-file=ext/psych/lib/psych.rb
|
|
406
|
+
# - safe_load_file(filename, **kwargs)
|
|
407
|
+
# -->
|
|
408
|
+
# Safely loads the document contained in `filename`. Returns the yaml contained
|
|
409
|
+
# in `filename` as a Ruby object, or if the file is empty, it returns the
|
|
410
|
+
# specified `fallback` return value, which defaults to `nil`. See safe_load for
|
|
411
|
+
# options.
|
|
412
|
+
#
|
|
413
|
+
%a{annotate:rdoc:copy:Psych.safe_load_file}
|
|
414
|
+
def self.safe_load_file: (path, ?permitted_classes: Array[Class], ?permitted_symbols: Array[Symbol], ?aliases: bool, ?fallback: untyped, ?symbolize_names: bool, ?freeze: bool) -> untyped
|
|
415
|
+
|
|
416
|
+
# <!--
|
|
417
|
+
# rdoc-file=ext/psych/lib/psych.rb
|
|
418
|
+
# - unsafe_load_file(filename, **kwargs)
|
|
419
|
+
# -->
|
|
420
|
+
# Load the document contained in `filename`. Returns the yaml contained in
|
|
421
|
+
# `filename` as a Ruby object, or if the file is empty, it returns the specified
|
|
422
|
+
# `fallback` return value, which defaults to `false`.
|
|
423
|
+
#
|
|
424
|
+
# NOTE: This method *should not* be used to parse untrusted documents, such as
|
|
425
|
+
# YAML documents that are supplied via user input. Instead, please use the
|
|
426
|
+
# safe_load_file method.
|
|
427
|
+
#
|
|
428
|
+
%a{annotate:rdoc:copy:Psych.unsafe_load_file}
|
|
429
|
+
def self.unsafe_load_file: (path, ?fallback: untyped, ?symbolize_names: bool, ?freeze: bool) -> untyped
|
|
430
|
+
|
|
431
|
+
class Exception < ::RuntimeError
|
|
432
|
+
end
|
|
433
|
+
|
|
434
|
+
class SyntaxError < ::Psych::Exception
|
|
435
|
+
attr_reader file: String?
|
|
436
|
+
attr_reader line: Integer?
|
|
437
|
+
attr_reader column: Integer?
|
|
438
|
+
attr_reader offset: Integer?
|
|
439
|
+
attr_reader problem: String?
|
|
440
|
+
attr_reader context: String?
|
|
441
|
+
|
|
442
|
+
# <!--
|
|
443
|
+
# rdoc-file=ext/psych/lib/psych/syntax_error.rb
|
|
444
|
+
# - new(file, line, col, offset, problem, context)
|
|
445
|
+
# -->
|
|
446
|
+
#
|
|
447
|
+
def initialize: (?String? file, ?Integer? line, ?Integer? column, ?Integer? offset, ?String? problem, ?String? context) -> void
|
|
448
|
+
end
|
|
449
|
+
|
|
450
|
+
class BadAlias < ::Psych::Exception
|
|
451
|
+
end
|
|
452
|
+
|
|
453
|
+
class DisallowedClass < ::Psych::Exception
|
|
454
|
+
end
|
|
402
455
|
end
|
data/stdlib/psych/0/store.rbs
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
# greeting:
|
|
31
31
|
# hello: world
|
|
32
32
|
#
|
|
33
|
-
class Psych::Store < ::PStore
|
|
33
|
+
class Psych::Store < ::PStore[string, untyped]
|
|
34
34
|
# <!--
|
|
35
35
|
# rdoc-file=lib/yaml/store.rb
|
|
36
36
|
# - initialize( file_name, yaml_opts = {} )
|
|
@@ -45,8 +45,6 @@ class Psych::Store < ::PStore
|
|
|
45
45
|
# Options passed in through `yaml_opts` will be used when converting the store
|
|
46
46
|
# to YAML via Hash#to_yaml().
|
|
47
47
|
#
|
|
48
|
-
def initialize: (*untyped o) -> void
|
|
49
|
-
|
|
50
48
|
def dump: (untyped table) -> String
|
|
51
49
|
|
|
52
50
|
def empty_marshal_checksum: () -> String
|
|
@@ -55,5 +53,5 @@ class Psych::Store < ::PStore
|
|
|
55
53
|
|
|
56
54
|
def load: (String) -> untyped
|
|
57
55
|
|
|
58
|
-
def marshal_dump_supports_canonical_option?: () ->
|
|
56
|
+
def marshal_dump_supports_canonical_option?: () -> bool
|
|
59
57
|
end
|
data/stdlib/pty/0/pty.rbs
CHANGED
|
@@ -103,7 +103,8 @@ module PTY
|
|
|
103
103
|
#
|
|
104
104
|
# ### Return values
|
|
105
105
|
#
|
|
106
|
-
# In the non-block form this returns an array of size three,
|
|
106
|
+
# In the non-block form this returns an array of size three, <code>[r, w,
|
|
107
|
+
# pid]</code>.
|
|
107
108
|
#
|
|
108
109
|
# In the block form these same values will be yielded to the block:
|
|
109
110
|
#
|
|
@@ -136,8 +137,8 @@ module PTY
|
|
|
136
137
|
# -->
|
|
137
138
|
# Allocates a pty (pseudo-terminal).
|
|
138
139
|
#
|
|
139
|
-
# In the block form, yields an array of two elements (
|
|
140
|
-
# and the value of the block is returned from `open`.
|
|
140
|
+
# In the block form, yields an array of two elements (<code>master_io,
|
|
141
|
+
# slave_file</code>) and the value of the block is returned from `open`.
|
|
141
142
|
#
|
|
142
143
|
# The IO and File are both closed after the block completes if they haven't been
|
|
143
144
|
# already closed.
|
|
@@ -148,7 +149,8 @@ module PTY
|
|
|
148
149
|
# p slave.path #=> "/dev/pts/1"
|
|
149
150
|
# }
|
|
150
151
|
#
|
|
151
|
-
# In the non-block form, returns a two element array,
|
|
152
|
+
# In the non-block form, returns a two element array, <code>[master_io,
|
|
153
|
+
# slave_file]</code>.
|
|
152
154
|
#
|
|
153
155
|
# master, slave = PTY.open
|
|
154
156
|
# # do something with master for IO, or the slave file
|
|
@@ -160,7 +162,7 @@ module PTY
|
|
|
160
162
|
#
|
|
161
163
|
# `slave_file`
|
|
162
164
|
# : the slave of the pty, as a File. The path to the terminal device is
|
|
163
|
-
# available via
|
|
165
|
+
# available via <code>slave_file.path</code>
|
|
164
166
|
#
|
|
165
167
|
#
|
|
166
168
|
# IO#raw! is usable to disable newline conversions:
|
|
@@ -208,7 +210,8 @@ module PTY
|
|
|
208
210
|
#
|
|
209
211
|
# ### Return values
|
|
210
212
|
#
|
|
211
|
-
# In the non-block form this returns an array of size three,
|
|
213
|
+
# In the non-block form this returns an array of size three, <code>[r, w,
|
|
214
|
+
# pid]</code>.
|
|
212
215
|
#
|
|
213
216
|
# In the block form these same values will be yielded to the block:
|
|
214
217
|
#
|
|
@@ -180,8 +180,8 @@ module RBS
|
|
|
180
180
|
# create UUIDs that are time-ordered with sub-millisecond precision, up to 12
|
|
181
181
|
# bits of additional timestamp may added with `extra_timestamp_bits`. The extra
|
|
182
182
|
# timestamp precision comes at the expense of random bits. Setting
|
|
183
|
-
#
|
|
184
|
-
# bits (7.75 random bytes).
|
|
183
|
+
# <code>extra_timestamp_bits: 12</code> provides ~244ns of precision, but only
|
|
184
|
+
# 62 random bits (7.75 random bytes).
|
|
185
185
|
#
|
|
186
186
|
# prng = Random.new
|
|
187
187
|
# Array.new(4) { prng.uuid_v7(extra_timestamp_bits: 12) }
|
data/stdlib/ripper/0/ripper.rbs
CHANGED
|
@@ -31,23 +31,26 @@
|
|
|
31
31
|
# nil,
|
|
32
32
|
# nil]]]]
|
|
33
33
|
#
|
|
34
|
-
# You can see in the example above, the expression starts with
|
|
34
|
+
# You can see in the example above, the expression starts with
|
|
35
|
+
# <code>:program</code>.
|
|
35
36
|
#
|
|
36
|
-
# From here, a method definition at
|
|
37
|
-
#
|
|
38
|
-
# the method parameters under
|
|
37
|
+
# From here, a method definition at <code>:def</code>, followed by the method's
|
|
38
|
+
# identifier <code>:@ident</code>. After the method's identifier comes the
|
|
39
|
+
# parentheses <code>:paren</code> and the method parameters under
|
|
40
|
+
# <code>:params</code>.
|
|
39
41
|
#
|
|
40
|
-
# Next is the method body, starting at
|
|
41
|
-
# which contains the full definition of the method.
|
|
42
|
+
# Next is the method body, starting at <code>:bodystmt</code> (`stmt` meaning
|
|
43
|
+
# statement), which contains the full definition of the method.
|
|
42
44
|
#
|
|
43
45
|
# In our case, we're simply returning a String, so next we have the
|
|
44
|
-
#
|
|
46
|
+
# <code>:string_literal</code> expression.
|
|
45
47
|
#
|
|
46
|
-
# Within our
|
|
47
|
-
# literal part for
|
|
48
|
-
#
|
|
49
|
-
#
|
|
50
|
-
#
|
|
48
|
+
# Within our <code>:string_literal</code> you'll notice two
|
|
49
|
+
# <code>@tstring_content</code>, this is the literal part for <code>Hello,
|
|
50
|
+
# </code> and <code>!</code>. Between the two <code>@tstring_content</code>
|
|
51
|
+
# statements is a <code>:string_embexpr</code>, where *embexpr* is an embedded
|
|
52
|
+
# expression. Our expression consists of a local variable, or `var_ref`, with
|
|
53
|
+
# the identifier (<code>@ident</code>) of `world`.
|
|
51
54
|
#
|
|
52
55
|
# ## Resources
|
|
53
56
|
#
|
|
@@ -189,7 +192,7 @@ class Ripper
|
|
|
189
192
|
# - state()
|
|
190
193
|
# -->
|
|
191
194
|
# The scanner's state of the current token. This value is the bitwise OR of zero
|
|
192
|
-
# or more of the
|
|
195
|
+
# or more of the <code>Ripper::EXPR_*</code> constants.
|
|
193
196
|
#
|
|
194
197
|
def state: () -> Ripper::Lexer::State
|
|
195
198
|
|
|
@@ -972,10 +975,10 @@ class Ripper
|
|
|
972
975
|
# - lex(src, filename = '-', lineno = 1, **kw)
|
|
973
976
|
# -->
|
|
974
977
|
# Tokenizes the Ruby program and returns an array of an array, which is
|
|
975
|
-
# formatted like
|
|
976
|
-
# argument is mostly ignored. By default, this method does not handle
|
|
977
|
-
# errors in `src`, use the `raise_errors` keyword to raise a SyntaxError
|
|
978
|
-
# error in `src`.
|
|
978
|
+
# formatted like <code>[[lineno, column], type, token, state]</code>. The
|
|
979
|
+
# `filename` argument is mostly ignored. By default, this method does not handle
|
|
980
|
+
# syntax errors in `src`, use the `raise_errors` keyword to raise a SyntaxError
|
|
981
|
+
# for an error in `src`.
|
|
979
982
|
#
|
|
980
983
|
# require 'ripper'
|
|
981
984
|
# require 'pp'
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
# This module manipulates strings according to the word parsing rules of the
|
|
5
5
|
# UNIX Bourne shell.
|
|
6
6
|
#
|
|
7
|
-
# The
|
|
8
|
-
# modified to conform to [the Shell & Utilities volume of the IEEE Std
|
|
7
|
+
# The <code>shellwords()</code> function was originally a port of shellwords.pl,
|
|
8
|
+
# but modified to conform to [the Shell & Utilities volume of the IEEE Std
|
|
9
9
|
# 1003.1-2008, 2016
|
|
10
10
|
# Edition](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.ht
|
|
11
11
|
# ml)
|
|
@@ -634,13 +634,13 @@ class Addrinfo
|
|
|
634
634
|
# sockaddr as generated by Socket.sockaddr_in or Socket.unpack_sockaddr_un.
|
|
635
635
|
#
|
|
636
636
|
# sockaddr examples:
|
|
637
|
-
# *
|
|
638
|
-
# *
|
|
639
|
-
# *
|
|
640
|
-
# *
|
|
641
|
-
# *
|
|
642
|
-
# *
|
|
643
|
-
# *
|
|
637
|
+
# * <code>["AF_INET", 46102, "localhost.localdomain", "127.0.0.1"]</code>
|
|
638
|
+
# * <code>["AF_INET6", 42304, "ip6-localhost", "::1"]</code>
|
|
639
|
+
# * <code>["AF_UNIX", "/tmp/sock"]</code>
|
|
640
|
+
# * <code>Socket.sockaddr_in("smtp", "2001:DB8::1")</code>
|
|
641
|
+
# * <code>Socket.sockaddr_in(80, "172.18.22.42")</code>
|
|
642
|
+
# * <code>Socket.sockaddr_in(80, "www.ruby-lang.org")</code>
|
|
643
|
+
# * <code>Socket.sockaddr_un("/tmp/sock")</code>
|
|
644
644
|
#
|
|
645
645
|
# In an AF_INET/AF_INET6 sockaddr array, the 4th element, numeric IP address, is
|
|
646
646
|
# used to construct socket address in the Addrinfo instance. If the 3rd element,
|