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.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +2 -1
  3. data/.github/workflows/ruby.yml +4 -0
  4. data/Gemfile.lock +11 -11
  5. data/Rakefile +2 -2
  6. data/Steepfile +1 -1
  7. data/core/array.rbs +573 -423
  8. data/core/basic_object.rbs +11 -39
  9. data/core/binding.rbs +1 -1
  10. data/core/builtin.rbs +8 -0
  11. data/core/class.rbs +37 -0
  12. data/core/comparable.rbs +7 -18
  13. data/core/complex.rbs +2 -2
  14. data/core/data.rbs +419 -0
  15. data/core/dir.rbs +52 -104
  16. data/core/encoding.rbs +22 -181
  17. data/core/enumerable.rbs +212 -175
  18. data/core/enumerator/product.rbs +96 -0
  19. data/core/enumerator.rbs +57 -8
  20. data/core/errors.rbs +8 -2
  21. data/core/exception.rbs +41 -0
  22. data/core/fiber.rbs +95 -12
  23. data/core/file.rbs +840 -275
  24. data/core/file_test.rbs +34 -19
  25. data/core/float.rbs +40 -96
  26. data/core/gc.rbs +15 -3
  27. data/core/hash.rbs +113 -175
  28. data/core/integer.rbs +85 -145
  29. data/core/io/buffer.rbs +187 -60
  30. data/core/io/wait.rbs +28 -16
  31. data/core/io.rbs +1859 -1389
  32. data/core/kernel.rbs +525 -961
  33. data/core/match_data.rbs +306 -142
  34. data/core/math.rbs +506 -234
  35. data/core/method.rbs +0 -24
  36. data/core/module.rbs +110 -17
  37. data/core/nil_class.rbs +2 -0
  38. data/core/numeric.rbs +76 -144
  39. data/core/object.rbs +88 -212
  40. data/core/proc.rbs +17 -5
  41. data/core/process.rbs +22 -5
  42. data/core/ractor.rbs +1 -1
  43. data/core/random.rbs +20 -3
  44. data/core/range.rbs +91 -89
  45. data/core/rational.rbs +2 -3
  46. data/core/rbs/unnamed/argf.rbs +177 -120
  47. data/core/rbs/unnamed/env_class.rbs +89 -163
  48. data/core/rbs/unnamed/random.rbs +36 -12
  49. data/core/refinement.rbs +8 -0
  50. data/core/regexp.rbs +462 -272
  51. data/core/ruby_vm.rbs +210 -0
  52. data/{stdlib/set/0 → core}/set.rbs +43 -47
  53. data/core/string.rbs +1403 -1332
  54. data/core/string_io.rbs +191 -107
  55. data/core/struct.rbs +67 -63
  56. data/core/symbol.rbs +187 -201
  57. data/core/thread.rbs +40 -35
  58. data/core/time.rbs +902 -826
  59. data/core/trace_point.rbs +55 -6
  60. data/core/unbound_method.rbs +48 -24
  61. data/docs/collection.md +4 -0
  62. data/docs/syntax.md +55 -0
  63. data/ext/rbs_extension/parser.c +5 -6
  64. data/lib/rbs/cli.rb +6 -1
  65. data/lib/rbs/collection/cleaner.rb +8 -1
  66. data/lib/rbs/collection/config/lockfile.rb +3 -1
  67. data/lib/rbs/collection/config/lockfile_generator.rb +16 -14
  68. data/lib/rbs/collection/config.rb +1 -1
  69. data/lib/rbs/collection/sources/git.rb +9 -2
  70. data/lib/rbs/collection/sources/local.rb +79 -0
  71. data/lib/rbs/collection/sources.rb +8 -1
  72. data/lib/rbs/environment.rb +6 -5
  73. data/lib/rbs/environment_loader.rb +3 -2
  74. data/lib/rbs/errors.rb +18 -0
  75. data/lib/rbs/locator.rb +26 -7
  76. data/lib/rbs/sorter.rb +2 -2
  77. data/lib/rbs/version.rb +1 -1
  78. data/sig/collection/sources.rbs +32 -3
  79. data/sig/environment.rbs +2 -3
  80. data/sig/locator.rbs +14 -2
  81. data/sig/shims/{abstract_syntax_tree.rbs → _abstract_syntax_tree.rbs} +0 -0
  82. data/stdlib/bigdecimal/0/big_decimal.rbs +16 -13
  83. data/stdlib/cgi/0/core.rbs +16 -0
  84. data/stdlib/coverage/0/coverage.rbs +50 -8
  85. data/stdlib/csv/0/csv.rbs +1 -1
  86. data/stdlib/date/0/date.rbs +856 -726
  87. data/stdlib/date/0/date_time.rbs +83 -210
  88. data/stdlib/erb/0/erb.rbs +13 -36
  89. data/stdlib/etc/0/etc.rbs +127 -20
  90. data/stdlib/fileutils/0/fileutils.rbs +1290 -381
  91. data/stdlib/logger/0/logger.rbs +466 -316
  92. data/stdlib/net-http/0/net-http.rbs +2211 -534
  93. data/stdlib/nkf/0/nkf.rbs +5 -5
  94. data/stdlib/objspace/0/objspace.rbs +31 -14
  95. data/stdlib/openssl/0/openssl.rbs +11 -7
  96. data/stdlib/optparse/0/optparse.rbs +20 -17
  97. data/stdlib/pathname/0/pathname.rbs +21 -4
  98. data/stdlib/pstore/0/pstore.rbs +378 -154
  99. data/stdlib/pty/0/pty.rbs +24 -8
  100. data/stdlib/ripper/0/ripper.rbs +1650 -0
  101. data/stdlib/socket/0/addrinfo.rbs +9 -15
  102. data/stdlib/socket/0/socket.rbs +36 -3
  103. data/stdlib/strscan/0/string_scanner.rbs +7 -5
  104. data/stdlib/tempfile/0/tempfile.rbs +104 -44
  105. data/stdlib/time/0/time.rbs +2 -2
  106. data/stdlib/uri/0/file.rbs +5 -0
  107. data/stdlib/uri/0/generic.rbs +2 -2
  108. data/stdlib/yaml/0/yaml.rbs +2 -2
  109. data/stdlib/zlib/0/zlib.rbs +1 -1
  110. metadata +8 -6
  111. data/core/deprecated.rbs +0 -9
  112. data/sig/shims/ripper.rbs +0 -8
@@ -93,168 +93,90 @@ module RBS
93
93
  #
94
94
  # First, what's elsewhere. Class ENV:
95
95
  #
96
- # * Inherits from [class
97
- # Object](Object.html#class-Object-label-What-27s+Here).
98
- # * Extends [module
99
- # Enumerable](Enumerable.html#module-Enumerable-label-What-27s+Here),
96
+ # * Inherits from [class Object](rdoc-ref:Object@What-27s+Here).
97
+ # * Extends [module Enumerable](rdoc-ref:Enumerable@What-27s+Here),
100
98
  #
101
99
  #
102
100
  # Here, class ENV provides methods that are useful for:
103
101
  #
104
- # * [Querying](#class-ENV-label-Methods+for+Querying)
105
- # * [Assigning](#class-ENV-label-Methods+for+Assigning)
106
- # * [Deleting](#class-ENV-label-Methods+for+Deleting)
107
- # * [Iterating](#class-ENV-label-Methods+for+Iterating)
108
- # * [Converting](#class-ENV-label-Methods+for+Converting)
109
- # * [And more ....](#class-ENV-label-More+Methods)
102
+ # * [Querying](rdoc-ref:ENV@Methods+for+Querying)
103
+ # * [Assigning](rdoc-ref:ENV@Methods+for+Assigning)
104
+ # * [Deleting](rdoc-ref:ENV@Methods+for+Deleting)
105
+ # * [Iterating](rdoc-ref:ENV@Methods+for+Iterating)
106
+ # * [Converting](rdoc-ref:ENV@Methods+for+Converting)
107
+ # * [And more ....](rdoc-ref:ENV@More+Methods)
110
108
  #
111
109
  #
112
110
  # ### Methods for Querying
113
111
  #
114
- # ::[]
115
- # : Returns the value for the given environment variable name if it
116
- # exists:
117
- #
118
- # ::empty?
119
- # : Returns whether ENV is empty.
120
- #
121
- # ::has_value?, ::value?
122
- # : Returns whether the given value is in ENV.
123
- #
124
- # ::include?, ::has_key?, ::key?, ::member?
125
- # : Returns whether the given name is in ENV.
126
- #
127
- # ::key
128
- # : Returns the name of the first entry with the given value.
129
- #
130
- # ::size, ::length
131
- # : Returns the number of entries.
132
- #
133
- # ::value?
134
- # : Returns whether any entry has the given value.
135
- #
112
+ # * ::[]: Returns the value for the given environment variable name if it
113
+ # exists:
114
+ # * ::empty?: Returns whether ENV is empty.
115
+ # * ::has_value?, ::value?: Returns whether the given value is in ENV.
116
+ # * ::include?, ::has_key?, ::key?, ::member?: Returns whether the given name
117
+ # is in ENV.
118
+ # * ::key: Returns the name of the first entry with the given value.
119
+ # * ::size, ::length: Returns the number of entries.
120
+ # * ::value?: Returns whether any entry has the given value.
136
121
  #
137
122
  #
138
123
  # ### Methods for Assigning
139
124
  #
140
- # ::[]=, ::store
141
- # : Creates, updates, or deletes the named environment variable.
142
- #
143
- # ::clear
144
- # : Removes every environment variable; returns ENV:
145
- #
146
- # ::update, ::merge!
147
- # : Adds to ENV each key/value pair in the given hash.
148
- #
149
- # ::replace
150
- # : Replaces the entire content of the ENV with the name/value pairs in
151
- # the given hash.
152
- #
125
+ # * ::[]=, ::store: Creates, updates, or deletes the named environment
126
+ # variable.
127
+ # * ::clear: Removes every environment variable; returns ENV:
128
+ # * ::update, ::merge!: Adds to ENV each key/value pair in the given hash.
129
+ # * ::replace: Replaces the entire content of the ENV with the name/value
130
+ # pairs in the given hash.
153
131
  #
154
132
  #
155
133
  # ### Methods for Deleting
156
134
  #
157
- # ::delete
158
- # : Deletes the named environment variable name if it exists.
159
- #
160
- # ::delete_if
161
- # : Deletes entries selected by the block.
162
- #
163
- # ::keep_if
164
- # : Deletes entries not selected by the block.
165
- #
166
- # ::reject!
167
- # : Similar to #delete_if, but returns `nil` if no change was made.
168
- #
169
- # ::select!, ::filter!
170
- # : Deletes entries selected by the block.
171
- #
172
- # ::shift
173
- # : Removes and returns the first entry.
174
- #
135
+ # * ::delete: Deletes the named environment variable name if it exists.
136
+ # * ::delete_if: Deletes entries selected by the block.
137
+ # * ::keep_if: Deletes entries not selected by the block.
138
+ # * ::reject!: Similar to #delete_if, but returns `nil` if no change was made.
139
+ # * ::select!, ::filter!: Deletes entries selected by the block.
140
+ # * ::shift: Removes and returns the first entry.
175
141
  #
176
142
  #
177
143
  # ### Methods for Iterating
178
144
  #
179
- # ::each, ::each_pair
180
- # : Calls the block with each name/value pair.
181
- #
182
- # ::each_key
183
- # : Calls the block with each name.
184
- #
185
- # ::each_value
186
- # : Calls the block with each value.
187
- #
145
+ # * ::each, ::each_pair: Calls the block with each name/value pair.
146
+ # * ::each_key: Calls the block with each name.
147
+ # * ::each_value: Calls the block with each value.
188
148
  #
189
149
  #
190
150
  # ### Methods for Converting
191
151
  #
192
- # ::assoc
193
- # : Returns a 2-element array containing the name and value of the named
194
- # environment variable if it exists:
195
- #
196
- # ::clone
197
- # : Returns ENV (and issues a warning).
198
- #
199
- # ::except
200
- # : Returns a hash of all name/value pairs except those given.
201
- #
202
- # ::fetch
203
- # : Returns the value for the given name.
204
- #
205
- # ::inspect
206
- # : Returns the contents of ENV as a string.
207
- #
208
- # ::invert
209
- # : Returns a hash whose keys are the ENV values, and whose values are the
210
- # corresponding ENV names.
211
- #
212
- # ::keys
213
- # : Returns an array of all names.
214
- #
215
- # ::rassoc
216
- # : Returns the name and value of the first found entry that has the given
217
- # value.
218
- #
219
- # ::reject
220
- # : Returns a hash of those entries not rejected by the block.
221
- #
222
- # ::select, ::filter
223
- # : Returns a hash of name/value pairs selected by the block.
224
- #
225
- # ::slice
226
- # : Returns a hash of the given names and their corresponding values.
227
- #
228
- # ::to_a
229
- # : Returns the entries as an array of 2-element Arrays.
230
- #
231
- # ::to_h
232
- # : Returns a hash of entries selected by the block.
233
- #
234
- # ::to_hash
235
- # : Returns a hash of all entries.
236
- #
237
- # ::to_s
238
- # : Returns the string `'ENV'`.
239
- #
240
- # ::values
241
- # : Returns all values as an array.
242
- #
243
- # ::values_at
244
- # : Returns an array of the values for the given name.
245
- #
152
+ # * ::assoc: Returns a 2-element array containing the name and value of the
153
+ # named environment variable if it exists:
154
+ # * ::clone: Returns ENV (and issues a warning).
155
+ # * ::except: Returns a hash of all name/value pairs except those given.
156
+ # * ::fetch: Returns the value for the given name.
157
+ # * ::inspect: Returns the contents of ENV as a string.
158
+ # * ::invert: Returns a hash whose keys are the ENV values, and whose values
159
+ # are the corresponding ENV names.
160
+ # * ::keys: Returns an array of all names.
161
+ # * ::rassoc: Returns the name and value of the first found entry that has the
162
+ # given value.
163
+ # * ::reject: Returns a hash of those entries not rejected by the block.
164
+ # * ::select, ::filter: Returns a hash of name/value pairs selected by the
165
+ # block.
166
+ # * ::slice: Returns a hash of the given names and their corresponding values.
167
+ # * ::to_a: Returns the entries as an array of 2-element Arrays.
168
+ # * ::to_h: Returns a hash of entries selected by the block.
169
+ # * ::to_hash: Returns a hash of all entries.
170
+ # * ::to_s: Returns the string `'ENV'`.
171
+ # * ::values: Returns all values as an array.
172
+ # * ::values_at: Returns an array of the values for the given name.
246
173
  #
247
174
  #
248
175
  # ### More Methods
249
176
  #
250
- # ::dup
251
- # : Raises an exception.
252
- #
253
- # ::freeze
254
- # : Raises an exception.
255
- #
256
- # ::rehash
257
- # : Returns `nil`, without modifying ENV.
177
+ # * ::dup: Raises an exception.
178
+ # * ::freeze: Raises an exception.
179
+ # * ::rehash: Returns `nil`, without modifying ENV.
258
180
  #
259
181
  %a{annotate:rdoc:copy:ENV}
260
182
  class ENVClass
@@ -271,7 +193,7 @@ module RBS
271
193
  # Returns `nil` if the named variable does not exist.
272
194
  #
273
195
  # Raises an exception if `name` is invalid. See [Invalid Names and
274
- # Values](#class-ENV-label-Invalid+Names+and+Values).
196
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
275
197
  #
276
198
  %a{annotate:rdoc:copy:ENV.[]}
277
199
  def []: (String name) -> String?
@@ -305,7 +227,7 @@ module RBS
305
227
  # ENV.fetch('foo') # Raises KeyError (key not found: "foo")
306
228
  #
307
229
  # Raises an exception if `name` is invalid. See [Invalid Names and
308
- # Values](#class-ENV-label-Invalid+Names+and+Values).
230
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
309
231
  #
310
232
  %a{annotate:rdoc:copy:ENV.fetch}
311
233
  def fetch: (String name) -> String
@@ -321,7 +243,7 @@ module RBS
321
243
  #
322
244
  # Creates, updates, or deletes the named environment variable, returning the
323
245
  # value. Both `name` and `value` may be instances of String. See [Valid Names
324
- # and Values](#class-ENV-label-Valid+Names+and+Values).
246
+ # and Values](rdoc-ref:ENV@Valid+Names+and+Values).
325
247
  #
326
248
  # * If the named environment variable does not exist:
327
249
  # * If `value` is `nil`, does nothing.
@@ -362,7 +284,7 @@ module RBS
362
284
  #
363
285
  #
364
286
  # Raises an exception if `name` or `value` is invalid. See [Invalid Names and
365
- # Values](#class-ENV-label-Invalid+Names+and+Values).
287
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
366
288
  #
367
289
  %a{annotate:rdoc:copy:ENV.[]=}
368
290
  def []=: (String name, String? value) -> String?
@@ -376,7 +298,7 @@ module RBS
376
298
  #
377
299
  # Creates, updates, or deletes the named environment variable, returning the
378
300
  # value. Both `name` and `value` may be instances of String. See [Valid Names
379
- # and Values](#class-ENV-label-Valid+Names+and+Values).
301
+ # and Values](rdoc-ref:ENV@Valid+Names+and+Values).
380
302
  #
381
303
  # * If the named environment variable does not exist:
382
304
  # * If `value` is `nil`, does nothing.
@@ -417,7 +339,7 @@ module RBS
417
339
  #
418
340
  #
419
341
  # Raises an exception if `name` or `value` is invalid. See [Invalid Names and
420
- # Values](#class-ENV-label-Invalid+Names+and+Values).
342
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
421
343
  #
422
344
  %a{annotate:rdoc:copy:ENV.store}
423
345
  alias store []=
@@ -533,7 +455,7 @@ module RBS
533
455
  # ENV.delete('foo') { |name| raise 'ignored' } # => "0"
534
456
  #
535
457
  # Raises an exception if `name` is invalid. See [Invalid Names and
536
- # Values](#class-ENV-label-Invalid+Names+and+Values).
458
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
537
459
  #
538
460
  %a{annotate:rdoc:copy:ENV.delete}
539
461
  def delete: (String name) -> String?
@@ -595,7 +517,7 @@ module RBS
595
517
  # ENV.slice('baz', 'foo') # => {"baz"=>"2", "foo"=>"0"}
596
518
  #
597
519
  # Raises an exception if any of the `names` is invalid (see [Invalid Names and
598
- # Values](#class-ENV-label-Invalid+Names+and+Values)):
520
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
599
521
  # ENV.slice('foo', 'bar', :bat) # Raises TypeError (no implicit conversion of Symbol into String)
600
522
  #
601
523
  %a{annotate:rdoc:copy:ENV.slice}
@@ -816,7 +738,7 @@ module RBS
816
738
  # ENV.to_hash # => {'foo' => '0'}
817
739
  #
818
740
  # Exactly which environment variable is "first" is OS-dependent. See [About
819
- # Ordering](#class-ENV-label-About+Ordering).
741
+ # Ordering](rdoc-ref:ENV@About+Ordering).
820
742
  #
821
743
  # Returns `nil` if the environment is empty.
822
744
  #
@@ -838,7 +760,7 @@ module RBS
838
760
  #
839
761
  # Note that the order of the ENV processing is OS-dependent, which means that
840
762
  # the order of overwriting is also OS-dependent. See [About
841
- # Ordering](#class-ENV-label-About+Ordering).
763
+ # Ordering](rdoc-ref:ENV@About+Ordering).
842
764
  #
843
765
  %a{annotate:rdoc:copy:ENV.invert}
844
766
  def invert: () -> ::Hash[String, String]
@@ -855,7 +777,7 @@ module RBS
855
777
  # ENV.to_hash # => {"bar"=>"1", "foo"=>"0"}
856
778
  #
857
779
  # Raises an exception if a name or value is invalid (see [Invalid Names and
858
- # Values](#class-ENV-label-Invalid+Names+and+Values)):
780
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
859
781
  # ENV.replace('foo' => '0', :bar => '1') # Raises TypeError (no implicit conversion of Symbol into String)
860
782
  # ENV.replace('foo' => '0', 'bar' => 1) # Raises TypeError (no implicit conversion of Integer into String)
861
783
  # ENV.to_hash # => {"bar"=>"1", "foo"=>"0"}
@@ -865,10 +787,12 @@ module RBS
865
787
 
866
788
  # <!--
867
789
  # rdoc-file=hash.c
868
- # - ENV.update(hash) -> ENV
869
- # - ENV.update(hash) { |name, env_val, hash_val| block } -> ENV
870
- # - ENV.merge!(hash) -> ENV
871
- # - ENV.merge!(hash) { |name, env_val, hash_val| block } -> ENV
790
+ # - ENV.update -> ENV
791
+ # - ENV.update(*hashes) -> ENV
792
+ # - ENV.update(*hashes) { |name, env_val, hash_val| block } -> ENV
793
+ # - ENV.merge! -> ENV
794
+ # - ENV.merge!(*hashes) -> ENV
795
+ # - ENV.merge!(*hashes) { |name, env_val, hash_val| block } -> ENV
872
796
  # -->
873
797
  # ENV.update is an alias for ENV.merge!.
874
798
  #
@@ -887,7 +811,7 @@ module RBS
887
811
  # ENV.merge!('foo' => '5') { |name, env_val, hash_val | env_val + hash_val } # => {"bar"=>"1", "foo"=>"45"}
888
812
  #
889
813
  # Raises an exception if a name or value is invalid (see [Invalid Names and
890
- # Values](#class-ENV-label-Invalid+Names+and+Values));
814
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values));
891
815
  # ENV.replace('foo' => '0', 'bar' => '1')
892
816
  # ENV.merge!('foo' => '6', :bar => '7', 'baz' => '9') # Raises TypeError (no implicit conversion of Symbol into String)
893
817
  # ENV # => {"bar"=>"1", "foo"=>"6"}
@@ -895,7 +819,7 @@ module RBS
895
819
  # ENV # => {"bar"=>"1", "foo"=>"7"}
896
820
  #
897
821
  # Raises an exception if the block returns an invalid name: (see [Invalid Names
898
- # and Values](#class-ENV-label-Invalid+Names+and+Values)):
822
+ # and Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
899
823
  # ENV.merge!('bat' => '8', 'foo' => '9') { |name, env_val, hash_val | 10 } # Raises TypeError (no implicit conversion of Integer into String)
900
824
  # ENV # => {"bar"=>"1", "bat"=>"8", "foo"=>"7"}
901
825
  #
@@ -908,10 +832,12 @@ module RBS
908
832
 
909
833
  # <!--
910
834
  # rdoc-file=hash.c
911
- # - ENV.update(hash) -> ENV
912
- # - ENV.update(hash) { |name, env_val, hash_val| block } -> ENV
913
- # - ENV.merge!(hash) -> ENV
914
- # - ENV.merge!(hash) { |name, env_val, hash_val| block } -> ENV
835
+ # - ENV.update -> ENV
836
+ # - ENV.update(*hashes) -> ENV
837
+ # - ENV.update(*hashes) { |name, env_val, hash_val| block } -> ENV
838
+ # - ENV.merge! -> ENV
839
+ # - ENV.merge!(*hashes) -> ENV
840
+ # - ENV.merge!(*hashes) { |name, env_val, hash_val| block } -> ENV
915
841
  # -->
916
842
  # ENV.update is an alias for ENV.merge!.
917
843
  #
@@ -930,7 +856,7 @@ module RBS
930
856
  # ENV.merge!('foo' => '5') { |name, env_val, hash_val | env_val + hash_val } # => {"bar"=>"1", "foo"=>"45"}
931
857
  #
932
858
  # Raises an exception if a name or value is invalid (see [Invalid Names and
933
- # Values](#class-ENV-label-Invalid+Names+and+Values));
859
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values));
934
860
  # ENV.replace('foo' => '0', 'bar' => '1')
935
861
  # ENV.merge!('foo' => '6', :bar => '7', 'baz' => '9') # Raises TypeError (no implicit conversion of Symbol into String)
936
862
  # ENV # => {"bar"=>"1", "foo"=>"6"}
@@ -938,7 +864,7 @@ module RBS
938
864
  # ENV # => {"bar"=>"1", "foo"=>"7"}
939
865
  #
940
866
  # Raises an exception if the block returns an invalid name: (see [Invalid Names
941
- # and Values](#class-ENV-label-Invalid+Names+and+Values)):
867
+ # and Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
942
868
  # ENV.merge!('bat' => '8', 'foo' => '9') { |name, env_val, hash_val | 10 } # Raises TypeError (no implicit conversion of Integer into String)
943
869
  # ENV # => {"bar"=>"1", "bat"=>"8", "foo"=>"7"}
944
870
  #
@@ -990,14 +916,14 @@ module RBS
990
916
  # ENV.key('0') # => "foo"
991
917
  #
992
918
  # The order in which environment variables are examined is OS-dependent. See
993
- # [About Ordering](#class-ENV-label-About+Ordering).
919
+ # [About Ordering](rdoc-ref:ENV@About+Ordering).
994
920
  #
995
921
  # Returns `nil` if there is no such value.
996
922
  #
997
923
  # Raises an exception if `value` is invalid:
998
924
  # ENV.key(Object.new) # raises TypeError (no implicit conversion of Object into String)
999
925
  #
1000
- # See [Invalid Names and Values](#class-ENV-label-Invalid+Names+and+Values).
926
+ # See [Invalid Names and Values](rdoc-ref:ENV@Invalid+Names+and+Values).
1001
927
  #
1002
928
  %a{annotate:rdoc:copy:ENV.key}
1003
929
  def key: (String value) -> String?
@@ -1050,7 +976,7 @@ module RBS
1050
976
  # ENV.keys # => ['bar', 'foo']
1051
977
  #
1052
978
  # The order of the names is OS-dependent. See [About
1053
- # Ordering](#class-ENV-label-About+Ordering).
979
+ # Ordering](rdoc-ref:ENV@About+Ordering).
1054
980
  #
1055
981
  # Returns the empty Array if ENV is empty.
1056
982
  #
@@ -1066,7 +992,7 @@ module RBS
1066
992
  # ENV.values # => ['1', '0']
1067
993
  #
1068
994
  # The order of the values is OS-dependent. See [About
1069
- # Ordering](#class-ENV-label-About+Ordering).
995
+ # Ordering](rdoc-ref:ENV@About+Ordering).
1070
996
  #
1071
997
  # Returns the empty Array if ENV is empty.
1072
998
  #
@@ -1088,7 +1014,7 @@ module RBS
1088
1014
  # Returns an empty Array if no names given.
1089
1015
  #
1090
1016
  # Raises an exception if any name is invalid. See [Invalid Names and
1091
- # Values](#class-ENV-label-Invalid+Names+and+Values).
1017
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
1092
1018
  #
1093
1019
  %a{annotate:rdoc:copy:ENV.values_at}
1094
1020
  def values_at: (*String names) -> ::Array[String?]
@@ -1314,7 +1240,7 @@ module RBS
1314
1240
  # ENV.rassoc('0') # => ["bar", "0"]
1315
1241
  #
1316
1242
  # The order in which environment variables are examined is OS-dependent. See
1317
- # [About Ordering](#class-ENV-label-About+Ordering).
1243
+ # [About Ordering](rdoc-ref:ENV@About+Ordering).
1318
1244
  #
1319
1245
  # Returns `nil` if there is no such environment variable.
1320
1246
  #
@@ -85,7 +85,12 @@ module RBS
85
85
  # <!-- rdoc-file=lib/random/formatter.rb -->
86
86
  # ## Random number formatter.
87
87
  #
88
- # Formats generated random numbers in many manners.
88
+ # Formats generated random numbers in many manners. When `'random/formatter'` is
89
+ # required, several methods are added to empty core module `Random::Formatter`,
90
+ # making them available as Random's instance and module methods.
91
+ #
92
+ # Standard library SecureRandom is also extended with the module, and the
93
+ # methods described below are available as a module methods in it.
89
94
  #
90
95
  # ### Examples
91
96
  #
@@ -93,30 +98,41 @@ module RBS
93
98
  #
94
99
  # require 'random/formatter'
95
100
  #
101
+ # prng = Random.new
96
102
  # prng.hex(10) #=> "52750b30ffbc7de3b362"
97
103
  # prng.hex(10) #=> "92b15d6c8dc4beb5f559"
98
104
  # prng.hex(13) #=> "39b290146bea6ce975c37cfc23"
105
+ # # or just
106
+ # Random.hex #=> "1aed0c631e41be7f77365415541052ee"
99
107
  #
100
108
  # Generate random base64 strings:
101
109
  #
102
110
  # prng.base64(10) #=> "EcmTPZwWRAozdA=="
103
111
  # prng.base64(10) #=> "KO1nIU+p9DKxGg=="
104
112
  # prng.base64(12) #=> "7kJSM/MzBJI+75j8"
113
+ # Random.base64(4) #=> "bsQ3fQ=="
105
114
  #
106
115
  # Generate random binary strings:
107
116
  #
108
117
  # prng.random_bytes(10) #=> "\016\t{\370g\310pbr\301"
109
118
  # prng.random_bytes(10) #=> "\323U\030TO\234\357\020\a\337"
119
+ # Random.random_bytes(6) #=> "\xA1\xE6Lr\xC43"
110
120
  #
111
121
  # Generate alphanumeric strings:
112
122
  #
113
123
  # prng.alphanumeric(10) #=> "S8baxMJnPl"
114
124
  # prng.alphanumeric(10) #=> "aOxAg8BAJe"
125
+ # Random.alphanumeric #=> "TmP9OsJHJLtaZYhP"
115
126
  #
116
127
  # Generate UUIDs:
117
128
  #
118
129
  # prng.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
119
130
  # prng.uuid #=> "bad85eb9-0713-4da7-8d36-07a8e4b00eab"
131
+ # Random.uuid #=> "f14e0271-de96-45cc-8911-8910292a42cd"
132
+ #
133
+ # All methods are available in the standard library SecureRandom, too:
134
+ #
135
+ # SecureRandom.hex #=> "05b45376a30c67238eb93b16499e50cf"
120
136
  #
121
137
  # <!-- rdoc-file=random.c -->
122
138
  # Generate a random number in the given range as Random does
@@ -134,7 +150,7 @@ module RBS
134
150
  # rdoc-file=lib/random/formatter.rb
135
151
  # - base64(n=nil)
136
152
  # -->
137
- # Random::Formatter#base64 generates a random base64 string.
153
+ # Generate a random base64 string.
138
154
  #
139
155
  # The argument *n* specifies the length, in bytes, of the random number to be
140
156
  # generated. The length of the result string is about 4/3 of *n*.
@@ -146,7 +162,9 @@ module RBS
146
162
  #
147
163
  # require 'random/formatter'
148
164
  #
149
- # prng.base64 #=> "/2BuBuLf3+WfSKyQbRcc/A=="
165
+ # Random.base64 #=> "/2BuBuLf3+WfSKyQbRcc/A=="
166
+ # # or
167
+ # prng = Random.new
150
168
  # prng.base64 #=> "6BbW0pxO0YENxn38HMUbcQ=="
151
169
  #
152
170
  # See RFC 3548 for the definition of base64.
@@ -158,7 +176,7 @@ module RBS
158
176
  # rdoc-file=lib/random/formatter.rb
159
177
  # - hex(n=nil)
160
178
  # -->
161
- # Random::Formatter#hex generates a random hexadecimal string.
179
+ # Generate a random hexadecimal string.
162
180
  #
163
181
  # The argument *n* specifies the length, in bytes, of the random number to be
164
182
  # generated. The length of the resulting hexadecimal string is twice of *n*.
@@ -170,7 +188,9 @@ module RBS
170
188
  #
171
189
  # require 'random/formatter'
172
190
  #
173
- # prng.hex #=> "eb693ec8252cd630102fd0d0fb7c3485"
191
+ # Random.hex #=> "eb693ec8252cd630102fd0d0fb7c3485"
192
+ # # or
193
+ # prng = Random.new
174
194
  # prng.hex #=> "91dc3bfb4de5b11d029d376634589b61"
175
195
  #
176
196
  %a{annotate:rdoc:copy:Random::Formatter#hex}
@@ -215,7 +235,7 @@ module RBS
215
235
  # rdoc-file=lib/random/formatter.rb
216
236
  # - urlsafe_base64(n=nil, padding=false)
217
237
  # -->
218
- # Random::Formatter#urlsafe_base64 generates a random URL-safe base64 string.
238
+ # Generate a random URL-safe base64 string.
219
239
  #
220
240
  # The argument *n* specifies the length, in bytes, of the random number to be
221
241
  # generated. The length of the result string is about 4/3 of *n*.
@@ -232,7 +252,9 @@ module RBS
232
252
  #
233
253
  # require 'random/formatter'
234
254
  #
235
- # prng.urlsafe_base64 #=> "b4GOKm4pOYU_-BOXcrUGDg"
255
+ # Random.urlsafe_base64 #=> "b4GOKm4pOYU_-BOXcrUGDg"
256
+ # # or
257
+ # prng = Random.new
236
258
  # prng.urlsafe_base64 #=> "UZLdOkzop70Ddx-IJR0ABg"
237
259
  #
238
260
  # prng.urlsafe_base64(nil, true) #=> "i0XQ-7gglIsHGV2_BNPrdQ=="
@@ -247,13 +269,14 @@ module RBS
247
269
  # rdoc-file=lib/random/formatter.rb
248
270
  # - uuid()
249
271
  # -->
250
- # Random::Formatter#uuid generates a random v4 UUID (Universally Unique
251
- # IDentifier).
272
+ # Generate a random v4 UUID (Universally Unique IDentifier).
252
273
  #
253
274
  # require 'random/formatter'
254
275
  #
255
- # prng.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
256
- # prng.uuid #=> "bad85eb9-0713-4da7-8d36-07a8e4b00eab"
276
+ # Random.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
277
+ # Random.uuid #=> "bad85eb9-0713-4da7-8d36-07a8e4b00eab"
278
+ # # or
279
+ # prng = Random.new
257
280
  # prng.uuid #=> "62936e70-1815-439b-bf89-8492855a7e6b"
258
281
  #
259
282
  # The version 4 UUID is purely random (except the version). It doesn't contain
@@ -261,7 +284,8 @@ module RBS
261
284
  #
262
285
  # The result contains 122 random bits (15.25 random bytes).
263
286
  #
264
- # See RFC 4122 for details of UUID.
287
+ # See [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122) for details of
288
+ # UUID.
265
289
  #
266
290
  %a{annotate:rdoc:copy:Random::Formatter#uuid}
267
291
  def uuid: () -> String
data/core/refinement.rbs CHANGED
@@ -41,4 +41,12 @@ class Refinement < Module
41
41
  # end
42
42
  #
43
43
  def import_methods: (*Module) -> self
44
+
45
+ # <!--
46
+ # rdoc-file=eval.c
47
+ # - refined_class -> class
48
+ # -->
49
+ # Return the class refined by the receiver.
50
+ #
51
+ def refined_class: () -> Module
44
52
  end