rbs 3.0.0.dev.2 → 3.0.0.dev.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +2 -1
- data/.github/workflows/ruby.yml +4 -0
- data/Gemfile.lock +11 -11
- data/Rakefile +2 -2
- data/Steepfile +1 -1
- data/core/array.rbs +573 -423
- data/core/basic_object.rbs +11 -39
- data/core/binding.rbs +1 -1
- data/core/builtin.rbs +8 -0
- data/core/class.rbs +37 -0
- data/core/comparable.rbs +7 -18
- data/core/complex.rbs +2 -2
- data/core/data.rbs +419 -0
- data/core/dir.rbs +52 -104
- data/core/encoding.rbs +22 -181
- data/core/enumerable.rbs +212 -175
- data/core/enumerator/product.rbs +96 -0
- data/core/enumerator.rbs +57 -8
- data/core/errors.rbs +8 -2
- data/core/exception.rbs +41 -0
- data/core/fiber.rbs +95 -12
- data/core/file.rbs +840 -275
- data/core/file_test.rbs +34 -19
- data/core/float.rbs +40 -96
- data/core/gc.rbs +15 -3
- data/core/hash.rbs +113 -175
- data/core/integer.rbs +85 -145
- data/core/io/buffer.rbs +187 -60
- data/core/io/wait.rbs +28 -16
- data/core/io.rbs +1859 -1389
- data/core/kernel.rbs +525 -961
- data/core/match_data.rbs +306 -142
- data/core/math.rbs +506 -234
- data/core/method.rbs +0 -24
- data/core/module.rbs +110 -17
- data/core/nil_class.rbs +2 -0
- data/core/numeric.rbs +76 -144
- data/core/object.rbs +88 -212
- data/core/proc.rbs +17 -5
- data/core/process.rbs +22 -5
- data/core/ractor.rbs +1 -1
- data/core/random.rbs +20 -3
- data/core/range.rbs +91 -89
- data/core/rational.rbs +2 -3
- data/core/rbs/unnamed/argf.rbs +177 -120
- data/core/rbs/unnamed/env_class.rbs +89 -163
- data/core/rbs/unnamed/random.rbs +36 -12
- data/core/refinement.rbs +8 -0
- data/core/regexp.rbs +462 -272
- data/core/ruby_vm.rbs +210 -0
- data/{stdlib/set/0 → core}/set.rbs +43 -47
- data/core/string.rbs +1403 -1332
- data/core/string_io.rbs +191 -107
- data/core/struct.rbs +67 -63
- data/core/symbol.rbs +187 -201
- data/core/thread.rbs +40 -35
- data/core/time.rbs +902 -826
- data/core/trace_point.rbs +55 -6
- data/core/unbound_method.rbs +48 -24
- data/docs/collection.md +4 -0
- data/docs/syntax.md +55 -0
- data/ext/rbs_extension/parser.c +5 -6
- data/lib/rbs/cli.rb +6 -1
- data/lib/rbs/collection/cleaner.rb +8 -1
- data/lib/rbs/collection/config/lockfile.rb +3 -1
- data/lib/rbs/collection/config/lockfile_generator.rb +16 -14
- data/lib/rbs/collection/config.rb +1 -1
- data/lib/rbs/collection/sources/git.rb +9 -2
- data/lib/rbs/collection/sources/local.rb +79 -0
- data/lib/rbs/collection/sources.rb +8 -1
- data/lib/rbs/environment.rb +6 -5
- data/lib/rbs/environment_loader.rb +3 -2
- data/lib/rbs/errors.rb +18 -0
- data/lib/rbs/locator.rb +26 -7
- data/lib/rbs/sorter.rb +2 -2
- data/lib/rbs/version.rb +1 -1
- data/sig/collection/sources.rbs +32 -3
- data/sig/environment.rbs +2 -3
- data/sig/locator.rbs +14 -2
- data/sig/shims/{abstract_syntax_tree.rbs → _abstract_syntax_tree.rbs} +0 -0
- data/stdlib/bigdecimal/0/big_decimal.rbs +16 -13
- data/stdlib/cgi/0/core.rbs +16 -0
- data/stdlib/coverage/0/coverage.rbs +50 -8
- data/stdlib/csv/0/csv.rbs +1 -1
- data/stdlib/date/0/date.rbs +856 -726
- data/stdlib/date/0/date_time.rbs +83 -210
- data/stdlib/erb/0/erb.rbs +13 -36
- data/stdlib/etc/0/etc.rbs +127 -20
- data/stdlib/fileutils/0/fileutils.rbs +1290 -381
- data/stdlib/logger/0/logger.rbs +466 -316
- data/stdlib/net-http/0/net-http.rbs +2211 -534
- data/stdlib/nkf/0/nkf.rbs +5 -5
- data/stdlib/objspace/0/objspace.rbs +31 -14
- data/stdlib/openssl/0/openssl.rbs +11 -7
- data/stdlib/optparse/0/optparse.rbs +20 -17
- data/stdlib/pathname/0/pathname.rbs +21 -4
- data/stdlib/pstore/0/pstore.rbs +378 -154
- data/stdlib/pty/0/pty.rbs +24 -8
- data/stdlib/ripper/0/ripper.rbs +1650 -0
- data/stdlib/socket/0/addrinfo.rbs +9 -15
- data/stdlib/socket/0/socket.rbs +36 -3
- data/stdlib/strscan/0/string_scanner.rbs +7 -5
- data/stdlib/tempfile/0/tempfile.rbs +104 -44
- data/stdlib/time/0/time.rbs +2 -2
- data/stdlib/uri/0/file.rbs +5 -0
- data/stdlib/uri/0/generic.rbs +2 -2
- data/stdlib/yaml/0/yaml.rbs +2 -2
- data/stdlib/zlib/0/zlib.rbs +1 -1
- metadata +8 -6
- data/core/deprecated.rbs +0 -9
- data/sig/shims/ripper.rbs +0 -8
data/core/object.rbs
CHANGED
@@ -18,162 +18,92 @@
|
|
18
18
|
#
|
19
19
|
# First, what's elsewhere. Class Object:
|
20
20
|
#
|
21
|
-
# * Inherits from [class
|
22
|
-
#
|
23
|
-
# * Includes [module Kernel](Kernel.html#module-Kernel-label-What-27s+Here).
|
21
|
+
# * Inherits from [class BasicObject](rdoc-ref:BasicObject@What-27s+Here).
|
22
|
+
# * Includes [module Kernel](rdoc-ref:Kernel@What-27s+Here).
|
24
23
|
#
|
25
24
|
#
|
26
25
|
# Here, class Object provides methods for:
|
27
26
|
#
|
28
|
-
# * [Querying](
|
29
|
-
# * [Instance Variables](
|
30
|
-
# * [Other](
|
27
|
+
# * [Querying](rdoc-ref:Object@Querying)
|
28
|
+
# * [Instance Variables](rdoc-ref:Object@Instance+Variables)
|
29
|
+
# * [Other](rdoc-ref:Object@Other)
|
31
30
|
#
|
32
31
|
#
|
33
32
|
# ### Querying
|
34
33
|
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
39
|
-
#
|
40
|
-
#
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
# :
|
48
|
-
#
|
49
|
-
#
|
50
|
-
# :
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
# :
|
55
|
-
#
|
56
|
-
#
|
57
|
-
#
|
58
|
-
#
|
59
|
-
#
|
60
|
-
#
|
61
|
-
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
# #nil?
|
67
|
-
# : Returns `false`. (Only `nil` responds `true` to method `nil?`.)
|
68
|
-
#
|
69
|
-
# #object_id
|
70
|
-
# : Returns an integer corresponding to `self` that is unique for the
|
71
|
-
# current process
|
72
|
-
#
|
73
|
-
# #private_methods
|
74
|
-
# : Returns an array of the symbol names of the private methods in `self`.
|
75
|
-
#
|
76
|
-
# #protected_methods
|
77
|
-
# : Returns an array of the symbol names of the protected methods in
|
78
|
-
# `self`.
|
79
|
-
#
|
80
|
-
# #public_method
|
81
|
-
# : Returns the Method object for the given public method in `self`.
|
82
|
-
#
|
83
|
-
# #public_methods
|
84
|
-
# : Returns an array of the symbol names of the public methods in `self`.
|
85
|
-
#
|
86
|
-
# #respond_to?
|
87
|
-
# : Returns whether `self` responds to the given method.
|
88
|
-
#
|
89
|
-
# #singleton_class
|
90
|
-
# : Returns the singleton class of `self`.
|
91
|
-
#
|
92
|
-
# #singleton_method
|
93
|
-
# : Returns the Method object for the given singleton method in `self`.
|
94
|
-
#
|
95
|
-
# #singleton_methods
|
96
|
-
# : Returns an array of the symbol names of the singleton methods in
|
97
|
-
# `self`.
|
98
|
-
#
|
99
|
-
#
|
100
|
-
# #define_singleton_method
|
101
|
-
# : Defines a singleton method in `self` for the given symbol method-name
|
102
|
-
# and block or proc.
|
103
|
-
#
|
104
|
-
# #extend
|
105
|
-
# : Includes the given modules in the singleton class of `self`.
|
106
|
-
#
|
107
|
-
# #public_send
|
108
|
-
# : Calls the given public method in `self` with the given argument.
|
109
|
-
#
|
110
|
-
# #send
|
111
|
-
# : Calls the given method in `self` with the given argument.
|
34
|
+
# * #!~: Returns `true` if `self` does not match the given object, otherwise
|
35
|
+
# `false`.
|
36
|
+
# * #<=>: Returns 0 if `self` and the given object `object` are the same
|
37
|
+
# object, or if `self == object`; otherwise returns `nil`.
|
38
|
+
# * #===: Implements case equality, effectively the same as calling #==.
|
39
|
+
# * #eql?: Implements hash equality, effectively the same as calling #==.
|
40
|
+
# * #kind_of? (aliased as #is_a?): Returns whether given argument is an
|
41
|
+
# ancestor of the singleton class of `self`.
|
42
|
+
# * #instance_of?: Returns whether `self` is an instance of the given class.
|
43
|
+
# * #instance_variable_defined?: Returns whether the given instance variable
|
44
|
+
# is defined in `self`.
|
45
|
+
# * #method: Returns the Method object for the given method in `self`.
|
46
|
+
# * #methods: Returns an array of symbol names of public and protected methods
|
47
|
+
# in `self`.
|
48
|
+
# * #nil?: Returns `false`. (Only `nil` responds `true` to method `nil?`.)
|
49
|
+
# * #object_id: Returns an integer corresponding to `self` that is unique for
|
50
|
+
# the current process
|
51
|
+
# * #private_methods: Returns an array of the symbol names of the private
|
52
|
+
# methods in `self`.
|
53
|
+
# * #protected_methods: Returns an array of the symbol names of the protected
|
54
|
+
# methods in `self`.
|
55
|
+
# * #public_method: Returns the Method object for the given public method in
|
56
|
+
# `self`.
|
57
|
+
# * #public_methods: Returns an array of the symbol names of the public
|
58
|
+
# methods in `self`.
|
59
|
+
# * #respond_to?: Returns whether `self` responds to the given method.
|
60
|
+
# * #singleton_class: Returns the singleton class of `self`.
|
61
|
+
# * #singleton_method: Returns the Method object for the given singleton
|
62
|
+
# method in `self`.
|
63
|
+
# * #singleton_methods: Returns an array of the symbol names of the singleton
|
64
|
+
# methods in `self`.
|
112
65
|
#
|
66
|
+
# * #define_singleton_method: Defines a singleton method in `self` for the
|
67
|
+
# given symbol method-name and block or proc.
|
68
|
+
# * #extend: Includes the given modules in the singleton class of `self`.
|
69
|
+
# * #public_send: Calls the given public method in `self` with the given
|
70
|
+
# argument.
|
71
|
+
# * #send: Calls the given method in `self` with the given argument.
|
113
72
|
#
|
114
73
|
#
|
115
74
|
# ### Instance Variables
|
116
75
|
#
|
117
|
-
#
|
118
|
-
#
|
119
|
-
#
|
120
|
-
#
|
121
|
-
#
|
122
|
-
#
|
123
|
-
#
|
124
|
-
#
|
125
|
-
# #instance_variables
|
126
|
-
# : Returns an array of the symbol names of the instance variables in
|
127
|
-
# `self`.
|
128
|
-
#
|
129
|
-
# #remove_instance_variable
|
130
|
-
# : Removes the named instance variable from `self`.
|
131
|
-
#
|
76
|
+
# * #instance_variable_get: Returns the value of the given instance variable
|
77
|
+
# in `self`, or `nil` if the instance variable is not set.
|
78
|
+
# * #instance_variable_set: Sets the value of the given instance variable in
|
79
|
+
# `self` to the given object.
|
80
|
+
# * #instance_variables: Returns an array of the symbol names of the instance
|
81
|
+
# variables in `self`.
|
82
|
+
# * #remove_instance_variable: Removes the named instance variable from
|
83
|
+
# `self`.
|
132
84
|
#
|
133
85
|
#
|
134
86
|
# ### Other
|
135
87
|
#
|
136
|
-
#
|
137
|
-
#
|
138
|
-
#
|
139
|
-
#
|
140
|
-
#
|
141
|
-
# :
|
142
|
-
#
|
143
|
-
#
|
144
|
-
#
|
145
|
-
# :
|
146
|
-
#
|
147
|
-
#
|
148
|
-
# :
|
149
|
-
#
|
150
|
-
#
|
151
|
-
# :
|
152
|
-
#
|
153
|
-
#
|
154
|
-
#
|
155
|
-
# : Includes the given modules in the singleton class of `self`.
|
156
|
-
#
|
157
|
-
# #freeze
|
158
|
-
# : Prevents further modifications to `self`.
|
159
|
-
#
|
160
|
-
# #hash
|
161
|
-
# : Returns the integer hash value for `self`.
|
162
|
-
#
|
163
|
-
# #inspect
|
164
|
-
# : Returns a human-readable string representation of `self`.
|
165
|
-
#
|
166
|
-
# #itself
|
167
|
-
# : Returns `self`.
|
168
|
-
#
|
169
|
-
# #public_send
|
170
|
-
# : Calls the given public method in `self` with the given argument.
|
171
|
-
#
|
172
|
-
# #send
|
173
|
-
# : Calls the given method in `self` with the given argument.
|
174
|
-
#
|
175
|
-
# #to_s
|
176
|
-
# : Returns a string representation of `self`.
|
88
|
+
# * #clone: Returns a shallow copy of `self`, including singleton class and
|
89
|
+
# frozen state.
|
90
|
+
# * #define_singleton_method: Defines a singleton method in `self` for the
|
91
|
+
# given symbol method-name and block or proc.
|
92
|
+
# * #display: Prints `self` to the given IO stream or `$stdout`.
|
93
|
+
# * #dup: Returns a shallow unfrozen copy of `self`.
|
94
|
+
# * #enum_for (aliased as #to_enum): Returns an Enumerator for `self` using
|
95
|
+
# the using the given method, arguments, and block.
|
96
|
+
# * #extend: Includes the given modules in the singleton class of `self`.
|
97
|
+
# * #freeze: Prevents further modifications to `self`.
|
98
|
+
# * #hash: Returns the integer hash value for `self`.
|
99
|
+
# * #inspect: Returns a human-readable string representation of `self`.
|
100
|
+
# * #itself: Returns `self`.
|
101
|
+
# * #method_missing: Method called when an undefined method is called on
|
102
|
+
# `self`.
|
103
|
+
# * #public_send: Calls the given public method in `self` with the given
|
104
|
+
# argument.
|
105
|
+
# * #send: Calls the given method in `self` with the given argument.
|
106
|
+
# * #to_s: Returns a string representation of `self`.
|
177
107
|
#
|
178
108
|
class Object < BasicObject
|
179
109
|
include Kernel
|
@@ -217,17 +147,6 @@ class Object < BasicObject
|
|
217
147
|
#
|
218
148
|
def ===: (untyped) -> bool
|
219
149
|
|
220
|
-
# <!--
|
221
|
-
# rdoc-file=object.c
|
222
|
-
# - obj =~ other -> nil
|
223
|
-
# -->
|
224
|
-
# This method is deprecated.
|
225
|
-
#
|
226
|
-
# This is not only useless but also troublesome because it may hide a type
|
227
|
-
# error.
|
228
|
-
#
|
229
|
-
def =~: (untyped) -> bool
|
230
|
-
|
231
150
|
# Returns the class of *obj*. This method must always be called with an explicit
|
232
151
|
# receiver, as `class` is also a reserved word in Ruby.
|
233
152
|
#
|
@@ -261,9 +180,9 @@ class Object < BasicObject
|
|
261
180
|
# - define_singleton_method(symbol, method) -> symbol
|
262
181
|
# - define_singleton_method(symbol) { block } -> symbol
|
263
182
|
# -->
|
264
|
-
# Defines a singleton method in the receiver. The *method* parameter can
|
265
|
-
# `Proc`, a `Method` or an `UnboundMethod` object. If a block is specified,
|
266
|
-
# is used as the method body. If a block or a method has parameters, they're
|
183
|
+
# Defines a public singleton method in the receiver. The *method* parameter can
|
184
|
+
# be a `Proc`, a `Method` or an `UnboundMethod` object. If a block is specified,
|
185
|
+
# it is used as the method body. If a block or a method has parameters, they're
|
267
186
|
# used as method parameters.
|
268
187
|
#
|
269
188
|
# class A
|
@@ -291,23 +210,16 @@ class Object < BasicObject
|
|
291
210
|
|
292
211
|
# <!--
|
293
212
|
# rdoc-file=io.c
|
294
|
-
# -
|
213
|
+
# - display(port = $>) -> nil
|
295
214
|
# -->
|
296
|
-
#
|
297
|
-
#
|
298
|
-
# def display(port=$>)
|
299
|
-
# port.write self
|
300
|
-
# nil
|
301
|
-
# end
|
302
|
-
#
|
303
|
-
# For example:
|
215
|
+
# Writes `self` on the given port:
|
304
216
|
#
|
305
217
|
# 1.display
|
306
218
|
# "cat".display
|
307
219
|
# [ 4, 5, 6 ].display
|
308
220
|
# puts
|
309
221
|
#
|
310
|
-
#
|
222
|
+
# Output:
|
311
223
|
#
|
312
224
|
# 1cat[4, 5, 6]
|
313
225
|
#
|
@@ -586,6 +498,18 @@ class Object < BasicObject
|
|
586
498
|
# Certain core classes such as Integer use built-in hash calculations and do not
|
587
499
|
# call the #hash method when used as a hash key.
|
588
500
|
#
|
501
|
+
# When implementing your own #hash based on multiple values, the best practice
|
502
|
+
# is to combine the class and any values using the hash code of an array:
|
503
|
+
#
|
504
|
+
# For example:
|
505
|
+
#
|
506
|
+
# def hash
|
507
|
+
# [self.class, a, b, c].hash
|
508
|
+
# end
|
509
|
+
#
|
510
|
+
# The reason for this is that the Array#hash method already has logic for safely
|
511
|
+
# and efficiently combining multiple hash values.
|
512
|
+
#
|
589
513
|
def hash: () -> Integer
|
590
514
|
|
591
515
|
# <!--
|
@@ -1078,38 +1002,6 @@ class Object < BasicObject
|
|
1078
1002
|
#
|
1079
1003
|
def singleton_methods: () -> Array[Symbol]
|
1080
1004
|
|
1081
|
-
# <!--
|
1082
|
-
# rdoc-file=object.c
|
1083
|
-
# - obj.taint -> obj
|
1084
|
-
# -->
|
1085
|
-
# Returns object. This method is deprecated and will be removed in Ruby 3.2.
|
1086
|
-
#
|
1087
|
-
def taint: () -> self
|
1088
|
-
|
1089
|
-
# <!--
|
1090
|
-
# rdoc-file=object.c
|
1091
|
-
# - obj.untrust -> obj
|
1092
|
-
# -->
|
1093
|
-
# Returns object. This method is deprecated and will be removed in Ruby 3.2.
|
1094
|
-
#
|
1095
|
-
alias untrust taint
|
1096
|
-
|
1097
|
-
# <!--
|
1098
|
-
# rdoc-file=object.c
|
1099
|
-
# - obj.tainted? -> false
|
1100
|
-
# -->
|
1101
|
-
# Returns false. This method is deprecated and will be removed in Ruby 3.2.
|
1102
|
-
#
|
1103
|
-
def tainted?: () -> bool
|
1104
|
-
|
1105
|
-
# <!--
|
1106
|
-
# rdoc-file=object.c
|
1107
|
-
# - obj.untrusted? -> false
|
1108
|
-
# -->
|
1109
|
-
# Returns false. This method is deprecated and will be removed in Ruby 3.2.
|
1110
|
-
#
|
1111
|
-
alias untrusted? tainted?
|
1112
|
-
|
1113
1005
|
# Yields self to the block, and then returns self. The primary purpose of this
|
1114
1006
|
# method is to "tap into" a method chain, in order to perform operations on
|
1115
1007
|
# intermediate results within the chain.
|
@@ -1157,22 +1049,6 @@ class Object < BasicObject
|
|
1157
1049
|
#
|
1158
1050
|
def to_s: () -> String
|
1159
1051
|
|
1160
|
-
# <!--
|
1161
|
-
# rdoc-file=object.c
|
1162
|
-
# - obj.untaint -> obj
|
1163
|
-
# -->
|
1164
|
-
# Returns object. This method is deprecated and will be removed in Ruby 3.2.
|
1165
|
-
#
|
1166
|
-
def untaint: () -> self
|
1167
|
-
|
1168
|
-
# <!--
|
1169
|
-
# rdoc-file=object.c
|
1170
|
-
# - obj.trust -> obj
|
1171
|
-
# -->
|
1172
|
-
# Returns object. This method is deprecated and will be removed in Ruby 3.2.
|
1173
|
-
#
|
1174
|
-
alias trust untaint
|
1175
|
-
|
1176
1052
|
# Yields self to the block and returns the result of the block.
|
1177
1053
|
#
|
1178
1054
|
# 3.next.then {|x| x**x }.to_s #=> "256"
|
@@ -1202,4 +1078,4 @@ interface _Writeable
|
|
1202
1078
|
def write: (untyped) -> void
|
1203
1079
|
end
|
1204
1080
|
|
1205
|
-
type Object::name = Symbol |
|
1081
|
+
type Object::name = Symbol | string
|
data/core/proc.rbs
CHANGED
@@ -51,8 +51,8 @@
|
|
51
51
|
# lambda1 = lambda {|x| x**2 }
|
52
52
|
#
|
53
53
|
# * Use the [Lambda proc
|
54
|
-
# literal](
|
55
|
-
#
|
54
|
+
# literal](rdoc-ref:syntax/literals.rdoc@Lambda+Proc+Literals) syntax (also
|
55
|
+
# constructs a proc with lambda semantics):
|
56
56
|
#
|
57
57
|
# lambda2 = ->(x) { x**2 }
|
58
58
|
#
|
@@ -421,6 +421,10 @@ class Proc < Object
|
|
421
421
|
# arguments to the original proc and returns the result. Otherwise, returns
|
422
422
|
# another curried proc that takes the rest of arguments.
|
423
423
|
#
|
424
|
+
# The optional *arity* argument should be supplied when currying procs with
|
425
|
+
# variable arguments to determine how many arguments are needed before the proc
|
426
|
+
# is called.
|
427
|
+
#
|
424
428
|
# b = proc {|x, y, z| (x||0) + (y||0) + (z||0) }
|
425
429
|
# p b.curry[1][2][3] #=> 6
|
426
430
|
# p b.curry[1, 2][3, 4] #=> 6
|
@@ -583,14 +587,22 @@ class Proc < Object
|
|
583
587
|
|
584
588
|
# <!--
|
585
589
|
# rdoc-file=proc.c
|
586
|
-
# - prc.parameters -> array
|
590
|
+
# - prc.parameters(lambda: nil) -> array
|
587
591
|
# -->
|
588
|
-
# Returns the parameter information of this proc.
|
592
|
+
# Returns the parameter information of this proc. If the lambda keyword is
|
593
|
+
# provided and not nil, treats the proc as a lambda if true and as a non-lambda
|
594
|
+
# if false.
|
589
595
|
#
|
596
|
+
# prc = proc{|x, y=42, *other|}
|
597
|
+
# prc.parameters #=> [[:opt, :x], [:opt, :y], [:rest, :other]]
|
590
598
|
# prc = lambda{|x, y=42, *other|}
|
591
599
|
# prc.parameters #=> [[:req, :x], [:opt, :y], [:rest, :other]]
|
600
|
+
# prc = proc{|x, y=42, *other|}
|
601
|
+
# prc.parameters(lambda: true) #=> [[:req, :x], [:opt, :y], [:rest, :other]]
|
602
|
+
# prc = lambda{|x, y=42, *other|}
|
603
|
+
# prc.parameters(lambda: false) #=> [[:opt, :x], [:opt, :y], [:rest, :other]]
|
592
604
|
#
|
593
|
-
def parameters: () -> ::Array[[ Symbol, Symbol ]]
|
605
|
+
def parameters: (lambda: boolish) -> ::Array[[ Symbol, Symbol ]]
|
594
606
|
|
595
607
|
# <!--
|
596
608
|
# rdoc-file=proc.c
|
data/core/process.rbs
CHANGED
@@ -26,6 +26,12 @@ module Process
|
|
26
26
|
# You can add custom code before and after fork events by overriding this
|
27
27
|
# method.
|
28
28
|
#
|
29
|
+
# Note: Process.daemon may be implemented using fork(2) BUT does not go through
|
30
|
+
# this method. Thus, depending on your reason to hook into this method, you may
|
31
|
+
# also want to hook into that one. See [this
|
32
|
+
# issue](https://bugs.ruby-lang.org/issues/18911) for a more detailed discussion
|
33
|
+
# of this.
|
34
|
+
#
|
29
35
|
def self._fork: () -> Integer
|
30
36
|
|
31
37
|
# <!--
|
@@ -229,7 +235,7 @@ module Process
|
|
229
235
|
#
|
230
236
|
# The underlying function, clock_gettime(), returns a number of nanoseconds.
|
231
237
|
# Float object (IEEE 754 double) is not enough to represent the return value for
|
232
|
-
# CLOCK_REALTIME. If the exact nanoseconds value is required, use `:
|
238
|
+
# CLOCK_REALTIME. If the exact nanoseconds value is required, use `:nanosecond`
|
233
239
|
# as the `unit`.
|
234
240
|
#
|
235
241
|
# The origin (zero) of the returned value varies. For example, system start up
|
@@ -446,6 +452,7 @@ module Process
|
|
446
452
|
# * the result is sorted
|
447
453
|
# * the result includes effective GIDs
|
448
454
|
# * the result does not include duplicated GIDs
|
455
|
+
# * the result size does not exceed the value of Process.maxgroups
|
449
456
|
#
|
450
457
|
#
|
451
458
|
# You can make sure to get a sorted unique GID list of the current process by
|
@@ -474,7 +481,7 @@ module Process
|
|
474
481
|
# Initializes the supplemental group access list by reading the system group
|
475
482
|
# database and using all groups of which the given user is a member. The group
|
476
483
|
# with the specified *gid* is also added to the list. Returns the resulting
|
477
|
-
# Array of the
|
484
|
+
# Array of the GIDs of all the groups in the supplementary group access list.
|
478
485
|
# Not available on all platforms.
|
479
486
|
#
|
480
487
|
# Process.groups #=> [0, 1, 2, 3, 4, 6, 10, 11, 20, 26, 27]
|
@@ -485,7 +492,7 @@ module Process
|
|
485
492
|
|
486
493
|
# <!--
|
487
494
|
# rdoc-file=process.c
|
488
|
-
# - Process.kill(signal, pid,
|
495
|
+
# - Process.kill(signal, pid, *pids) -> integer
|
489
496
|
# -->
|
490
497
|
# Sends the given signal to the specified process id(s) if *pid* is positive. If
|
491
498
|
# *pid* is zero, *signal* is sent to all processes whose group ID is equal to
|
@@ -522,7 +529,7 @@ module Process
|
|
522
529
|
# rdoc-file=process.c
|
523
530
|
# - Process.maxgroups -> integer
|
524
531
|
# -->
|
525
|
-
# Returns the maximum number of
|
532
|
+
# Returns the maximum number of GIDs allowed in the supplemental group access
|
526
533
|
# list.
|
527
534
|
#
|
528
535
|
# Process.maxgroups #=> 32
|
@@ -533,7 +540,7 @@ module Process
|
|
533
540
|
# rdoc-file=process.c
|
534
541
|
# - Process.maxgroups= integer -> integer
|
535
542
|
# -->
|
536
|
-
# Sets the maximum number of
|
543
|
+
# Sets the maximum number of GIDs allowed in the supplemental group access list.
|
537
544
|
#
|
538
545
|
def self.maxgroups=: (Integer arg0) -> Integer
|
539
546
|
|
@@ -640,6 +647,8 @@ module Process
|
|
640
647
|
# : file descriptors (number) (SUSv3)
|
641
648
|
# NPROC
|
642
649
|
# : number of processes for the user (number) (4.4BSD, GNU/Linux)
|
650
|
+
# NPTS
|
651
|
+
# : number of pseudo terminals (number) (FreeBSD)
|
643
652
|
# RSS
|
644
653
|
# : resident memory size (bytes) (4.2BSD, GNU/Linux)
|
645
654
|
# RTPRIO
|
@@ -996,6 +1005,14 @@ Process::RLIMIT_NOFILE: Integer
|
|
996
1005
|
#
|
997
1006
|
Process::RLIMIT_NPROC: Integer
|
998
1007
|
|
1008
|
+
# <!-- rdoc-file=process.c -->
|
1009
|
+
# The maximum number of pseudo-terminals that can be created for the real user
|
1010
|
+
# ID of the calling process.
|
1011
|
+
#
|
1012
|
+
# see the system getrlimit(2) manual for details.
|
1013
|
+
#
|
1014
|
+
Process::RLIMIT_NPTS: Integer
|
1015
|
+
|
999
1016
|
# <!-- rdoc-file=process.c -->
|
1000
1017
|
# Specifies the limit (in pages) of the process's resident set.
|
1001
1018
|
#
|
data/core/ractor.rbs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# <!-- rdoc-file=ractor.rb -->
|
2
|
-
# Ractor is
|
2
|
+
# Ractor is an Actor-model abstraction for Ruby that provides thread-safe
|
3
3
|
# parallel execution.
|
4
4
|
#
|
5
5
|
# Ractor.new can make a new Ractor, and it will run in parallel.
|
data/core/random.rbs
CHANGED
@@ -20,6 +20,9 @@
|
|
20
20
|
# of 2**19937-1. As this algorithm is *not* for cryptographical use, you must
|
21
21
|
# use SecureRandom for security purpose, instead of this PRNG.
|
22
22
|
#
|
23
|
+
# See also Random::Formatter module that adds convenience methods to generate
|
24
|
+
# various forms of random data.
|
25
|
+
#
|
23
26
|
class Random < RBS::Unnamed::Random_Base
|
24
27
|
# <!--
|
25
28
|
# rdoc-file=random.c
|
@@ -164,15 +167,18 @@ class Random < RBS::Unnamed::Random_Base
|
|
164
167
|
def state: () -> untyped
|
165
168
|
end
|
166
169
|
|
167
|
-
Random::DEFAULT: Random
|
168
|
-
|
169
170
|
class Random::Base < RBS::Unnamed::Random_Base
|
170
171
|
end
|
171
172
|
|
172
173
|
# <!-- rdoc-file=lib/random/formatter.rb -->
|
173
174
|
# ## Random number formatter.
|
174
175
|
#
|
175
|
-
# Formats generated random numbers in many manners.
|
176
|
+
# Formats generated random numbers in many manners. When `'random/formatter'` is
|
177
|
+
# required, several methods are added to empty core module `Random::Formatter`,
|
178
|
+
# making them available as Random's instance and module methods.
|
179
|
+
#
|
180
|
+
# Standard library SecureRandom is also extended with the module, and the
|
181
|
+
# methods described below are available as a module methods in it.
|
176
182
|
#
|
177
183
|
# ### Examples
|
178
184
|
#
|
@@ -180,30 +186,41 @@ end
|
|
180
186
|
#
|
181
187
|
# require 'random/formatter'
|
182
188
|
#
|
189
|
+
# prng = Random.new
|
183
190
|
# prng.hex(10) #=> "52750b30ffbc7de3b362"
|
184
191
|
# prng.hex(10) #=> "92b15d6c8dc4beb5f559"
|
185
192
|
# prng.hex(13) #=> "39b290146bea6ce975c37cfc23"
|
193
|
+
# # or just
|
194
|
+
# Random.hex #=> "1aed0c631e41be7f77365415541052ee"
|
186
195
|
#
|
187
196
|
# Generate random base64 strings:
|
188
197
|
#
|
189
198
|
# prng.base64(10) #=> "EcmTPZwWRAozdA=="
|
190
199
|
# prng.base64(10) #=> "KO1nIU+p9DKxGg=="
|
191
200
|
# prng.base64(12) #=> "7kJSM/MzBJI+75j8"
|
201
|
+
# Random.base64(4) #=> "bsQ3fQ=="
|
192
202
|
#
|
193
203
|
# Generate random binary strings:
|
194
204
|
#
|
195
205
|
# prng.random_bytes(10) #=> "\016\t{\370g\310pbr\301"
|
196
206
|
# prng.random_bytes(10) #=> "\323U\030TO\234\357\020\a\337"
|
207
|
+
# Random.random_bytes(6) #=> "\xA1\xE6Lr\xC43"
|
197
208
|
#
|
198
209
|
# Generate alphanumeric strings:
|
199
210
|
#
|
200
211
|
# prng.alphanumeric(10) #=> "S8baxMJnPl"
|
201
212
|
# prng.alphanumeric(10) #=> "aOxAg8BAJe"
|
213
|
+
# Random.alphanumeric #=> "TmP9OsJHJLtaZYhP"
|
202
214
|
#
|
203
215
|
# Generate UUIDs:
|
204
216
|
#
|
205
217
|
# prng.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
|
206
218
|
# prng.uuid #=> "bad85eb9-0713-4da7-8d36-07a8e4b00eab"
|
219
|
+
# Random.uuid #=> "f14e0271-de96-45cc-8911-8910292a42cd"
|
220
|
+
#
|
221
|
+
# All methods are available in the standard library SecureRandom, too:
|
222
|
+
#
|
223
|
+
# SecureRandom.hex #=> "05b45376a30c67238eb93b16499e50cf"
|
207
224
|
#
|
208
225
|
# <!-- rdoc-file=random.c -->
|
209
226
|
# Generate a random number in the given range as Random does
|