rbs 3.0.0.dev.2 → 3.0.0.dev.3
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/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
|