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.
Files changed (194) hide show
  1. checksums.yaml +4 -4
  2. data/.clang-format +1 -0
  3. data/.github/workflows/c-check.yml +8 -4
  4. data/.github/workflows/comments.yml +3 -1
  5. data/.github/workflows/dependabot.yml +1 -1
  6. data/.github/workflows/ruby.yml +10 -0
  7. data/.github/workflows/rust.yml +95 -0
  8. data/CHANGELOG.md +323 -0
  9. data/Rakefile +12 -29
  10. data/Steepfile +1 -0
  11. data/config.yml +393 -37
  12. data/core/array.rbs +218 -188
  13. data/core/basic_object.rbs +9 -8
  14. data/core/class.rbs +6 -5
  15. data/core/comparable.rbs +45 -31
  16. data/core/complex.rbs +52 -40
  17. data/core/dir.rbs +57 -45
  18. data/core/encoding.rbs +5 -5
  19. data/core/enumerable.rbs +96 -91
  20. data/core/enumerator.rbs +4 -3
  21. data/core/errno.rbs +3 -2
  22. data/core/errors.rbs +31 -29
  23. data/core/exception.rbs +12 -12
  24. data/core/fiber.rbs +36 -36
  25. data/core/file.rbs +186 -113
  26. data/core/file_test.rbs +2 -2
  27. data/core/float.rbs +41 -32
  28. data/core/gc.rbs +78 -70
  29. data/core/hash.rbs +70 -60
  30. data/core/integer.rbs +32 -28
  31. data/core/io/buffer.rbs +36 -36
  32. data/core/io/wait.rbs +7 -7
  33. data/core/io.rbs +120 -135
  34. data/core/kernel.rbs +189 -139
  35. data/core/marshal.rbs +3 -3
  36. data/core/match_data.rbs +14 -12
  37. data/core/math.rbs +69 -67
  38. data/core/method.rbs +6 -6
  39. data/core/module.rbs +146 -85
  40. data/core/nil_class.rbs +4 -3
  41. data/core/numeric.rbs +35 -32
  42. data/core/object.rbs +6 -8
  43. data/core/object_space.rbs +11 -10
  44. data/core/pathname.rbs +131 -81
  45. data/core/proc.rbs +65 -33
  46. data/core/process.rbs +219 -201
  47. data/core/ractor.rbs +15 -11
  48. data/core/random.rbs +4 -3
  49. data/core/range.rbs +52 -47
  50. data/core/rational.rbs +5 -5
  51. data/core/rbs/unnamed/argf.rbs +58 -51
  52. data/core/rbs/unnamed/env_class.rbs +18 -13
  53. data/core/rbs/unnamed/main_class.rbs +123 -0
  54. data/core/rbs/unnamed/random.rbs +7 -5
  55. data/core/regexp.rbs +236 -197
  56. data/core/ruby.rbs +1 -1
  57. data/core/ruby_vm.rbs +32 -30
  58. data/core/rubygems/config_file.rbs +5 -5
  59. data/core/rubygems/errors.rbs +1 -1
  60. data/core/rubygems/requirement.rbs +5 -5
  61. data/core/rubygems/rubygems.rbs +5 -3
  62. data/core/set.rbs +17 -16
  63. data/core/signal.rbs +2 -2
  64. data/core/string.rbs +311 -292
  65. data/core/struct.rbs +26 -25
  66. data/core/symbol.rbs +25 -24
  67. data/core/thread.rbs +40 -34
  68. data/core/time.rbs +47 -42
  69. data/core/trace_point.rbs +34 -31
  70. data/core/true_class.rbs +2 -2
  71. data/core/unbound_method.rbs +10 -10
  72. data/core/warning.rbs +7 -7
  73. data/docs/collection.md +1 -1
  74. data/docs/config.md +171 -0
  75. data/docs/inline.md +110 -4
  76. data/docs/syntax.md +13 -12
  77. data/ext/rbs_extension/ast_translation.c +489 -135
  78. data/ext/rbs_extension/class_constants.c +8 -0
  79. data/ext/rbs_extension/class_constants.h +4 -0
  80. data/ext/rbs_extension/legacy_location.c +28 -51
  81. data/ext/rbs_extension/legacy_location.h +37 -0
  82. data/ext/rbs_extension/main.c +12 -20
  83. data/include/rbs/ast.h +423 -195
  84. data/include/rbs/lexer.h +2 -2
  85. data/include/rbs/location.h +25 -44
  86. data/include/rbs/parser.h +2 -2
  87. data/include/rbs/util/rbs_constant_pool.h +0 -3
  88. data/include/rbs.h +8 -0
  89. data/lib/rbs/ast/ruby/annotations.rb +157 -4
  90. data/lib/rbs/ast/ruby/members.rb +374 -22
  91. data/lib/rbs/cli/validate.rb +5 -60
  92. data/lib/rbs/collection/config/lockfile_generator.rb +6 -2
  93. data/lib/rbs/definition_builder.rb +60 -27
  94. data/lib/rbs/errors.rb +0 -11
  95. data/lib/rbs/inline_parser.rb +1 -1
  96. data/lib/rbs/parser_aux.rb +20 -7
  97. data/lib/rbs/prototype/helpers.rb +57 -0
  98. data/lib/rbs/prototype/rb.rb +1 -26
  99. data/lib/rbs/prototype/rbi.rb +1 -20
  100. data/lib/rbs/test/type_check.rb +3 -0
  101. data/lib/rbs/types.rb +62 -52
  102. data/lib/rbs/unit_test/type_assertions.rb +35 -8
  103. data/lib/rbs/version.rb +1 -1
  104. data/lib/rbs.rb +0 -1
  105. data/rbs.gemspec +1 -1
  106. data/rust/.gitignore +1 -0
  107. data/rust/Cargo.lock +378 -0
  108. data/rust/Cargo.toml +7 -0
  109. data/rust/ruby-rbs/Cargo.toml +22 -0
  110. data/rust/ruby-rbs/build.rs +764 -0
  111. data/rust/ruby-rbs/examples/locations.rs +60 -0
  112. data/rust/ruby-rbs/src/lib.rs +1 -0
  113. data/rust/ruby-rbs/src/node/mod.rs +742 -0
  114. data/rust/ruby-rbs/tests/sanity.rs +47 -0
  115. data/rust/ruby-rbs/vendor/rbs/config.yml +1 -0
  116. data/rust/ruby-rbs-sys/Cargo.toml +23 -0
  117. data/rust/ruby-rbs-sys/build.rs +204 -0
  118. data/rust/ruby-rbs-sys/src/lib.rs +50 -0
  119. data/rust/ruby-rbs-sys/vendor/rbs/include +1 -0
  120. data/rust/ruby-rbs-sys/vendor/rbs/src +1 -0
  121. data/rust/ruby-rbs-sys/wrapper.h +1 -0
  122. data/sig/ast/ruby/annotations.rbs +191 -4
  123. data/sig/ast/ruby/members.rbs +21 -1
  124. data/sig/cli/validate.rbs +1 -6
  125. data/sig/definition_builder.rbs +2 -0
  126. data/sig/errors.rbs +0 -8
  127. data/sig/method_types.rbs +1 -1
  128. data/sig/parser.rbs +17 -13
  129. data/sig/prototype/helpers.rbs +2 -0
  130. data/sig/types.rbs +10 -11
  131. data/sig/unit_test/spy.rbs +0 -8
  132. data/sig/unit_test/type_assertions.rbs +11 -0
  133. data/src/ast.c +339 -161
  134. data/src/lexstate.c +1 -1
  135. data/src/location.c +7 -47
  136. data/src/parser.c +674 -480
  137. data/src/util/rbs_constant_pool.c +0 -4
  138. data/stdlib/bigdecimal/0/big_decimal.rbs +16 -16
  139. data/stdlib/cgi-escape/0/escape.rbs +4 -4
  140. data/stdlib/coverage/0/coverage.rbs +4 -3
  141. data/stdlib/date/0/date.rbs +33 -28
  142. data/stdlib/date/0/date_time.rbs +24 -23
  143. data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
  144. data/stdlib/erb/0/erb.rbs +64 -53
  145. data/stdlib/etc/0/etc.rbs +55 -50
  146. data/stdlib/fileutils/0/fileutils.rbs +138 -125
  147. data/stdlib/forwardable/0/forwardable.rbs +10 -10
  148. data/stdlib/io-console/0/io-console.rbs +2 -2
  149. data/stdlib/json/0/json.rbs +135 -108
  150. data/stdlib/monitor/0/monitor.rbs +3 -3
  151. data/stdlib/net-http/0/net-http.rbs +159 -134
  152. data/stdlib/objspace/0/objspace.rbs +8 -7
  153. data/stdlib/open-uri/0/open-uri.rbs +8 -8
  154. data/stdlib/open3/0/open3.rbs +36 -35
  155. data/stdlib/openssl/0/openssl.rbs +144 -129
  156. data/stdlib/optparse/0/optparse.rbs +18 -14
  157. data/stdlib/pathname/0/pathname.rbs +2 -2
  158. data/stdlib/pp/0/pp.rbs +9 -8
  159. data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
  160. data/stdlib/pstore/0/pstore.rbs +35 -30
  161. data/stdlib/psych/0/psych.rbs +61 -8
  162. data/stdlib/psych/0/store.rbs +2 -4
  163. data/stdlib/pty/0/pty.rbs +9 -6
  164. data/stdlib/random-formatter/0/random-formatter.rbs +2 -2
  165. data/stdlib/ripper/0/ripper.rbs +20 -17
  166. data/stdlib/securerandom/0/securerandom.rbs +1 -1
  167. data/stdlib/shellwords/0/shellwords.rbs +2 -2
  168. data/stdlib/socket/0/addrinfo.rbs +7 -7
  169. data/stdlib/socket/0/basic_socket.rbs +3 -3
  170. data/stdlib/socket/0/ip_socket.rbs +10 -8
  171. data/stdlib/socket/0/socket.rbs +10 -9
  172. data/stdlib/socket/0/tcp_server.rbs +1 -1
  173. data/stdlib/socket/0/tcp_socket.rbs +1 -1
  174. data/stdlib/socket/0/udp_socket.rbs +1 -1
  175. data/stdlib/socket/0/unix_server.rbs +1 -1
  176. data/stdlib/stringio/0/stringio.rbs +55 -54
  177. data/stdlib/strscan/0/string_scanner.rbs +46 -44
  178. data/stdlib/tempfile/0/tempfile.rbs +24 -20
  179. data/stdlib/time/0/time.rbs +7 -5
  180. data/stdlib/tsort/0/tsort.rbs +7 -6
  181. data/stdlib/uri/0/common.rbs +26 -18
  182. data/stdlib/uri/0/file.rbs +2 -2
  183. data/stdlib/uri/0/generic.rbs +2 -2
  184. data/stdlib/uri/0/http.rbs +2 -2
  185. data/stdlib/uri/0/ldap.rbs +2 -2
  186. data/stdlib/uri/0/mailto.rbs +3 -3
  187. data/stdlib/uri/0/rfc2396_parser.rbs +6 -5
  188. data/stdlib/zlib/0/deflate.rbs +4 -3
  189. data/stdlib/zlib/0/gzip_reader.rbs +4 -4
  190. data/stdlib/zlib/0/gzip_writer.rbs +14 -12
  191. data/stdlib/zlib/0/inflate.rbs +1 -1
  192. data/stdlib/zlib/0/need_dict.rbs +1 -1
  193. metadata +23 -5
  194. data/.github/workflows/valgrind.yml +0 -42
data/stdlib/erb/0/erb.rbs CHANGED
@@ -15,7 +15,8 @@
15
15
  # * You can call instance method ERB#result to get the *result*.
16
16
  # ERB supports tags of three kinds:
17
17
  # * [Expression tags](rdoc-ref:ERB@Expression+Tags):
18
- # each begins with `'<%='`, ends with `'%>'`; contains a Ruby expression;
18
+ # each begins with <code>'<%='</code>, ends with <code>'%>'</code>;
19
+ # contains a Ruby expression;
19
20
  # in the result, the value of the expression replaces the entire tag:
20
21
  # template = 'The magic word is <%= magic_word %>.'
21
22
  # erb = ERB.new(template)
@@ -24,20 +25,21 @@
24
25
  #
25
26
  # The above call to #result passes argument `binding`,
26
27
  # which contains the binding of variable `magic_word` to its string value
27
- # `'xyzzy'`.
28
+ # <code>'xyzzy'</code>.
28
29
  # The below call to #result need not pass a binding,
29
- # because its expression `Date::DAYNAMES` is globally defined.
30
+ # because its expression <code>Date::DAYNAMES</code> is globally defined.
30
31
  # ERB.new('Today is <%= Date::DAYNAMES[Date.today.wday] %>.').result # => "Today is Monday."
31
32
  #
32
33
  # * [Execution tags](rdoc-ref:ERB@Execution+Tags):
33
- # each begins with `'<%'`, ends with `'%>'`; contains Ruby code to be
34
- # executed:
34
+ # each begins with <code>'<%'</code>, ends with <code>'%>'</code>; contains
35
+ # Ruby code to be executed:
35
36
  # template = '<% File.write("t.txt", "Some stuff.") %>'
36
37
  # ERB.new(template).result
37
38
  # File.read('t.txt') # => "Some stuff."
38
39
  #
39
40
  # * [Comment tags](rdoc-ref:ERB@Comment+Tags):
40
- # each begins with `'<%#'`, ends with `'%>'`; contains comment text;
41
+ # each begins with <code>'<%#'</code>, ends with <code>'%>'</code>;
42
+ # contains comment text;
41
43
  # in the result, the entire tag is omitted.
42
44
  # template = 'Some stuff;<%# Note to self: figure out what the stuff is. %> more stuff.'
43
45
  # ERB.new(template).result # => "Some stuff; more stuff."
@@ -51,11 +53,11 @@
51
53
  #
52
54
  # Details:
53
55
  # 1. A plain-text string is assigned to variable `template`.
54
- # Its embedded [expression tag](rdoc-ref:ERB@Expression+Tags) `'<%=
55
- # Time.now %>'` includes a Ruby expression, `Time.now`.
56
+ # Its embedded [expression tag](rdoc-ref:ERB@Expression+Tags) <code>'<%=
57
+ # Time.now %>'</code> includes a Ruby expression, <code>Time.now</code>.
56
58
  # 2. The string is put into a new ERB object, and stored in variable `erb`.
57
- # 3. Method call `erb.result` generates a string that contains the run-time
58
- # value of `Time.now`,
59
+ # 3. Method call <code>erb.result</code> generates a string that contains the
60
+ # run-time value of <code>Time.now</code>,
59
61
  # as computed at the time of the call.
60
62
  # The
61
63
  # ERB object may be re-used:
@@ -71,13 +73,14 @@
71
73
  #
72
74
  # Details:
73
75
  # 1. As before, a plain-text string is assigned to variable `template`.
74
- # Its embedded [expression tag](rdoc-ref:ERB@Expression+Tags) `'<%=
75
- # magic_word %>'` has a variable *name*, `magic_word`.
76
+ # Its embedded [expression tag](rdoc-ref:ERB@Expression+Tags) <code>'<%=
77
+ # magic_word %>'</code> has a variable *name*, `magic_word`.
76
78
  # 2. The string is put into a new ERB object, and stored in variable `erb`;
77
79
  # note that `magic_word` need not be defined before the ERB object is
78
80
  # created.
79
- # 3. `magic_word = 'abracadabra'` assigns a value to variable `magic_word`.
80
- # 4. Method call `erb.result(binding)` generates a string
81
+ # 3. <code>magic_word = 'abracadabra'</code> assigns a value to variable
82
+ # `magic_word`.
83
+ # 4. Method call <code>erb.result(binding)</code> generates a string
81
84
  # that contains the *value* of `magic_word`.
82
85
  # As before, the ERB object may be re-used:
83
86
  # magic_word = 'xyzzy'
@@ -102,7 +105,7 @@
102
105
  # That binding is sufficient for an expression tag that refers only to Ruby's
103
106
  # constants and variables;
104
107
  # these expression tags refer only to Ruby's global constant `RUBY_COPYRIGHT`
105
- # and global variable `$0`:
108
+ # and global variable <code>$0</code>:
106
109
  # template = <<TEMPLATE
107
110
  # The Ruby copyright is <%= RUBY_COPYRIGHT.inspect %>.
108
111
  # The current process is <%= $0 %>.
@@ -181,7 +184,7 @@
181
184
  # in the result, the entire tag is to be omitted.
182
185
  # ### Expression Tags
183
186
  # You can embed a Ruby expression in a template using an *expression tag*.
184
- # Its syntax is `<%= *expression* %>`,
187
+ # Its syntax is <code><%= _expression_ %></code>,
185
188
  # where *expression* is any valid Ruby expression.
186
189
  # When you call method #result,
187
190
  # the method evaluates the expression and replaces the entire expression tag
@@ -203,7 +206,7 @@
203
206
  #
204
207
  # ### Execution Tags
205
208
  # You can embed Ruby executable code in template using an *execution tag*.
206
- # Its syntax is `<% *code* %>`,
209
+ # Its syntax is <code><% _code_ %></code>,
207
210
  # where *code* is any valid Ruby code.
208
211
  # When you call method #result,
209
212
  # the method executes the code and removes the entire execution tag
@@ -268,9 +271,10 @@
268
271
  # # => "\n* 0,0\n\n* 0,1\n\n* 0,2\n\n* 1,0\n\n* 1,1\n\n* 1,2\n\n* 2,0\n\n* 2,1\n\n* 2,2\n\n"
269
272
  #
270
273
  # #### Shorthand Format for Execution Tags
271
- # You can use keyword argument `trim_mode: '%'` to enable a shorthand format for
272
- # execution tags;
273
- # this example uses the shorthand format `% *code`* instead of `<% *code* %>`:
274
+ # You can use keyword argument <code>trim_mode: '%'</code> to enable a shorthand
275
+ # format for execution tags;
276
+ # this example uses the shorthand format <code>% _code_</code> instead of
277
+ # <code><% _code_ %></code>:
274
278
  # template = <<TEMPLATE
275
279
  # % priorities.each do |priority|
276
280
  # * <%= priority %>
@@ -285,8 +289,8 @@
285
289
  # * Document Modules
286
290
  # * Answer Questions on Ruby Talk
287
291
  #
288
- # Note that in the shorthand format, the character `'%'` must be the first
289
- # character in the code line
292
+ # Note that in the shorthand format, the character <code>'%'</code> must be the
293
+ # first character in the code line
290
294
  # (no leading whitespace).
291
295
  # #### Suppressing Unwanted Blank Lines
292
296
  # With keyword argument `trim_mode` not given,
@@ -301,8 +305,8 @@
301
305
  # "3.4.5\n"
302
306
  # "\n"
303
307
  #
304
- # You can give `trim_mode: '-'`, you can suppress each blank line
305
- # whose source line ends with `-%>` (instead of `%>`):
308
+ # You can give <code>trim_mode: '-'</code>, you can suppress each blank line
309
+ # whose source line ends with <code>-%></code> (instead of <code>%></code>):
306
310
  # template = <<TEMPLATE
307
311
  # <% if true -%>
308
312
  # <%= RUBY_VERSION %>
@@ -311,7 +315,8 @@
311
315
  # ERB.new(template, trim_mode: '-').result.lines.each {|line| puts line.inspect }
312
316
  # "3.4.5\n"
313
317
  #
314
- # It is an error to use the trailing `'-%>'` notation without `trim_mode: '-'`:
318
+ # It is an error to use the trailing <code>'-%>'</code> notation without
319
+ # <code>trim_mode: '-'</code>:
315
320
  # ERB.new(template).result.lines.each {|line| puts line.inspect } # Raises SyntaxError.
316
321
  #
317
322
  # #### Suppressing Unwanted Newlines
@@ -330,27 +335,29 @@
330
335
  # "foo \n"
331
336
  # "foo 3.4.5\n"
332
337
  #
333
- # You can give `trim_mode: '>'` to suppress the trailing newline
334
- # for each line that ends with `'%>'` (regardless of its beginning):
338
+ # You can give <code>trim_mode: '>'</code> to suppress the trailing newline
339
+ # for each line that ends with <code>'%>'</code> (regardless of its beginning):
335
340
  # ERB.new(template, trim_mode: '>').result.lines.each {|line| puts line.inspect }
336
341
  # "3.4.5foo foo 3.4.5"
337
342
  #
338
- # You can give `trim_mode: '<>'` to suppress the trailing newline
339
- # for each line that both begins with `'<%'` and ends with `'%>'`:
343
+ # You can give <code>trim_mode: '<>'</code> to suppress the trailing newline
344
+ # for each line that both begins with <code>'<%'</code> and ends with
345
+ # <code>'%>'</code>:
340
346
  # ERB.new(template, trim_mode: '<>').result.lines.each {|line| puts line.inspect }
341
347
  # "3.4.5foo \n"
342
348
  # "foo 3.4.5\n"
343
349
  #
344
350
  # #### Combining Trim Modes
345
351
  # You can combine certain trim modes:
346
- # * `'%-'`: Enable shorthand and omit each blank line ending with `'-%>'`.
347
- # * `'%>'`: Enable shorthand and omit newline for each line ending with
348
- # `'%>'`.
349
- # * `'%<>'`: Enable shorthand and omit newline for each line starting with
350
- # `'<%'` and ending with `'%>'`.
352
+ # * <code>'%-'</code>: Enable shorthand and omit each blank line ending with
353
+ # <code>'-%>'</code>.
354
+ # * <code>'%>'</code>: Enable shorthand and omit newline for each line ending
355
+ # with <code>'%>'</code>.
356
+ # * <code>'%<>'</code>: Enable shorthand and omit newline for each line
357
+ # starting with <code>'<%'</code> and ending with <code>'%>'</code>.
351
358
  # ### Comment Tags
352
359
  # You can embed a comment in a template using a *comment tag*;
353
- # its syntax is `<%# *text* %>`,
360
+ # its syntax is <code><%# _text_ %></code>,
354
361
  # where *text* is the text of the comment.
355
362
  # When you call method #result,
356
363
  # it removes the entire comment tag
@@ -360,9 +367,10 @@
360
367
  # ERB.new(template).result # => "Some stuff; more stuff."
361
368
  #
362
369
  # A comment tag may appear anywhere in the template.
363
- # Note that the beginning of the tag must be `'<%#'`, not `'<% #'`.
364
- # In this example, the tag begins with `'<% #'`, and so is an execution tag, not
365
- # a comment tag;
370
+ # Note that the beginning of the tag must be <code>'<%#'</code>, not <code>'<%
371
+ # #'</code>.
372
+ # In this example, the tag begins with <code>'<% #'</code>, and so is an
373
+ # execution tag, not a comment tag;
366
374
  # the cited code consists entirely of a Ruby-style comment (which is of course
367
375
  # ignored):
368
376
  # ERB.new('Some stuff;<% # Note to self: figure out what the stuff is. %> more stuff.').result
@@ -404,7 +412,8 @@
404
412
  # the file name comes from method #filename, the line number from method
405
413
  # #lineno.
406
414
  # Initially, those values are `nil` and `0`, respectively;
407
- # these initial values are reported as `'(erb)'` and `1`, respectively:
415
+ # these initial values are reported as <code>'(erb)'</code> and `1`,
416
+ # respectively:
408
417
  # erb.filename # => nil
409
418
  # erb.lineno # => 0
410
419
  # erb.result
@@ -424,7 +433,7 @@
424
433
  #
425
434
  # ## Plain Text with Embedded Ruby
426
435
  # Here's a plain-text template;
427
- # it uses the literal notation `'%q{ ... }'` to define the template
436
+ # it uses the literal notation <code>'%q{ ... }'</code> to define the template
428
437
  # (see [%q
429
438
  # literals](https://docs.ruby-lang.org/en/master/syntax/literals_rdoc.html#label
430
439
  # -25q-3A+Non-Interpolable+String+Literals));
@@ -582,23 +591,24 @@ class ERB
582
591
  # rdoc-file=lib/erb.rb
583
592
  # - ERB.new(template, trim_mode: nil, eoutvar: '_erbout')
584
593
  # -->
585
- # Returns a new ERB object containing the given string `template`.
594
+ # Returns a new ERB object containing the given string +template+.
586
595
  # For details about `template`, its embedded tags, and generated results, see
587
596
  # ERB.
588
- # **Keyword Argument `trim_mode`**
589
- # You can use keyword argument `trim_mode: '%'`
597
+ # <strong>Keyword Argument `trim_mode`</strong>
598
+ # You can use keyword argument <code>trim_mode: '%'</code>
590
599
  # to enable the [shorthand
591
600
  # format](rdoc-ref:ERB@Shorthand+Format+for+Execution+Tags) for execution tags.
592
601
  # This value allows [blank line
593
602
  # control](rdoc-ref:ERB@Suppressing+Unwanted+Blank+Lines):
594
- # * `'-'`: Omit each blank line ending with `'%>'`.
603
+ # * <code>'-'</code>: Omit each blank line ending with <code>'%>'</code>.
595
604
  # Other values allow [newline
596
605
  # control](rdoc-ref:ERB@Suppressing+Unwanted+Newlines):
597
- # * `'>'`: Omit newline for each line ending with `'%>'`.
598
- # * `'<>'`: Omit newline for each line starting with `'<%'` and ending with
599
- # `'%>'`.
606
+ # * <code>'>'</code>: Omit newline for each line ending with
607
+ # <code>'%>'</code>.
608
+ # * <code>'<>'</code>: Omit newline for each line starting with
609
+ # <code>'<%'</code> and ending with <code>'%>'</code>.
600
610
  # You can also [combine trim modes](rdoc-ref:ERB@Combining+Trim+Modes).
601
- # **Keyword Argument `eoutvar`**
611
+ # <strong>Keyword Argument `eoutvar`</strong>
602
612
  # The string value of keyword argument `eoutvar` specifies the name of the
603
613
  # variable
604
614
  # that method #result uses to construct its result string;
@@ -607,7 +617,7 @@ class ERB
607
617
  # binding
608
618
  # and/or when you want to control where output ends up.
609
619
  # It's good practice to choose a variable name that begins with an underscore:
610
- # `'_'`.
620
+ # <code>'_'</code>.
611
621
  #
612
622
  def initialize: (String, ?eoutvar: String, ?trim_mode: Integer | String | NilClass) -> untyped
613
623
 
@@ -760,8 +770,8 @@ class ERB
760
770
  # -->
761
771
  # Returns a new nameless class whose superclass is `super_class`,
762
772
  # and which has instance method `method_name`.
763
- # Create a template from HTML that has embedded expression tags that use `@arg1`
764
- # and `@arg2`:
773
+ # Create a template from HTML that has embedded expression tags that use
774
+ # <code>@arg1</code> and <code>@arg2</code>:
765
775
  # html = <<TEMPLATE
766
776
  # <html>
767
777
  # <body>
@@ -772,7 +782,7 @@ class ERB
772
782
  # TEMPLATE
773
783
  # template = ERB.new(html)
774
784
  #
775
- # Create a base class that has `@arg1` and `@arg2`:
785
+ # Create a base class that has <code>@arg1</code> and <code>@arg2</code>:
776
786
  # class MyBaseClass
777
787
  # def initialize(arg1, arg2)
778
788
  # @arg1 = arg1
@@ -780,7 +790,8 @@ class ERB
780
790
  # end
781
791
  # end
782
792
  #
783
- # Use method #def_class to create a subclass that has method `:render`:
793
+ # Use method #def_class to create a subclass that has method
794
+ # <code>:render</code>:
784
795
  # MySubClass = template.def_class(MyBaseClass, :render)
785
796
  #
786
797
  # Generate the result:
data/stdlib/etc/0/etc.rbs CHANGED
@@ -1,15 +1,16 @@
1
1
  # <!-- rdoc-file=ext/etc/etc.c -->
2
2
  # The Etc module provides access to information typically stored in files in the
3
- # `/etc` directory on Unix systems.
3
+ # <code>/etc</code> directory on Unix systems.
4
4
  #
5
5
  # The information accessible consists of the information found in the
6
- # `/etc/passwd` and `/etc/group` files, plus information about the system's
7
- # temporary directory (`/tmp`) and configuration directory (`/etc`).
6
+ # <code>/etc/passwd</code> and <code>/etc/group</code> files, plus information
7
+ # about the system's temporary directory (<code>/tmp</code>) and configuration
8
+ # directory (<code>/etc</code>).
8
9
  #
9
10
  # The Etc module provides a more reliable way to access information about the
10
11
  # logged in user than environment variables such as +$USER+.
11
12
  #
12
- # **Example:**
13
+ # <strong>Example:</strong>
13
14
  #
14
15
  # require 'etc'
15
16
  #
@@ -48,7 +49,7 @@ module Etc
48
49
  # rdoc-file=ext/etc/etc.c
49
50
  # - endgrent
50
51
  # -->
51
- # Ends the process of scanning through the `/etc/group` file begun by
52
+ # Ends the process of scanning through the <code>/etc/group</code> file begun by
52
53
  # ::getgrent, and closes the file.
53
54
  #
54
55
  def self?.endgrent: () -> void
@@ -57,8 +58,8 @@ module Etc
57
58
  # rdoc-file=ext/etc/etc.c
58
59
  # - endpwent
59
60
  # -->
60
- # Ends the process of scanning through the `/etc/passwd` file begun with
61
- # ::getpwent, and closes the file.
61
+ # Ends the process of scanning through the <code>/etc/passwd</code> file begun
62
+ # with ::getpwent, and closes the file.
62
63
  #
63
64
  def self?.endpwent: () -> void
64
65
 
@@ -66,7 +67,7 @@ module Etc
66
67
  # rdoc-file=ext/etc/etc.c
67
68
  # - getgrent -> Etc::Group
68
69
  # -->
69
- # Returns an entry from the `/etc/group` file.
70
+ # Returns an entry from the <code>/etc/group</code> file.
70
71
  #
71
72
  # The first time it is called it opens the file and returns the first entry;
72
73
  # each successive call returns the next entry, or `nil` if the end of the file
@@ -83,13 +84,13 @@ module Etc
83
84
  # - getgrgid(group_id) -> Etc::Group
84
85
  # -->
85
86
  # Returns information about the group with specified integer `group_id`, as
86
- # found in `/etc/group`.
87
+ # found in <code>/etc/group</code>.
87
88
  #
88
89
  # The information is returned as a Group struct.
89
90
  #
90
- # See the unix manpage for `getgrgid(3)` for more detail.
91
+ # See the unix manpage for <code>getgrgid(3)</code> for more detail.
91
92
  #
92
- # **Example:**
93
+ # <strong>Example:</strong>
93
94
  #
94
95
  # Etc.getgrgid(100)
95
96
  # #=> #<struct Etc::Group name="users", passwd="x", gid=100, mem=["meta", "root"]>
@@ -101,13 +102,13 @@ module Etc
101
102
  # - getgrnam(name) -> Etc::Group
102
103
  # -->
103
104
  # Returns information about the group with specified `name`, as found in
104
- # `/etc/group`.
105
+ # <code>/etc/group</code>.
105
106
  #
106
107
  # The information is returned as a Group struct.
107
108
  #
108
- # See the unix manpage for `getgrnam(3)` for more detail.
109
+ # See the unix manpage for <code>getgrnam(3)</code> for more detail.
109
110
  #
110
- # **Example:**
111
+ # <strong>Example:</strong>
111
112
  #
112
113
  # Etc.getgrnam('users')
113
114
  # #=> #<struct Etc::Group name="users", passwd="x", gid=100, mem=["meta", "root"]>
@@ -125,7 +126,7 @@ module Etc
125
126
  #
126
127
  # If ::getlogin fails, try ::getpwuid.
127
128
  #
128
- # See the unix manpage for `getpwuid(3)` for more detail.
129
+ # See the unix manpage for <code>getpwuid(3)</code> for more detail.
129
130
  #
130
131
  # e.g.
131
132
  # Etc.getlogin -> 'guest'
@@ -136,7 +137,7 @@ module Etc
136
137
  # rdoc-file=ext/etc/etc.c
137
138
  # - getpwent -> Etc::Passwd
138
139
  # -->
139
- # Returns an entry from the `/etc/passwd` file.
140
+ # Returns an entry from the <code>/etc/passwd</code> file.
140
141
  #
141
142
  # The first time it is called it opens the file and returns the first entry;
142
143
  # each successive call returns the next entry, or `nil` if the end of the file
@@ -152,14 +153,14 @@ module Etc
152
153
  # rdoc-file=ext/etc/etc.c
153
154
  # - getpwnam(name) -> Etc::Passwd
154
155
  # -->
155
- # Returns the `/etc/passwd` information for the user with specified login
156
- # `name`.
156
+ # Returns the <code>/etc/passwd</code> information for the user with specified
157
+ # login `name`.
157
158
  #
158
159
  # The information is returned as a Passwd struct.
159
160
  #
160
- # See the unix manpage for `getpwnam(3)` for more detail.
161
+ # See the unix manpage for <code>getpwnam(3)</code> for more detail.
161
162
  #
162
- # **Example:**
163
+ # <strong>Example:</strong>
163
164
  #
164
165
  # Etc.getpwnam('root')
165
166
  # #=> #<struct Etc::Passwd name="root", passwd="x", uid=0, gid=0, gecos="root",dir="/root", shell="/bin/bash">
@@ -170,16 +171,17 @@ module Etc
170
171
  # rdoc-file=ext/etc/etc.c
171
172
  # - getpwuid(uid) -> Etc::Passwd
172
173
  # -->
173
- # Returns the `/etc/passwd` information for the user with the given integer
174
- # `uid`.
174
+ # Returns the <code>/etc/passwd</code> information for the user with the given
175
+ # integer `uid`.
175
176
  #
176
177
  # The information is returned as a Passwd struct.
177
178
  #
178
- # If `uid` is omitted, the value from `Passwd[:uid]` is returned instead.
179
+ # If `uid` is omitted, the value from <code>Passwd[:uid]</code> is returned
180
+ # instead.
179
181
  #
180
- # See the unix manpage for `getpwuid(3)` for more detail.
182
+ # See the unix manpage for <code>getpwuid(3)</code> for more detail.
181
183
  #
182
- # **Example:**
184
+ # <strong>Example:</strong>
183
185
  #
184
186
  # Etc.getpwuid(0)
185
187
  # #=> #<struct Etc::Passwd name="root", passwd="x", uid=0, gid=0, gecos="root",dir="/root", shell="/bin/bash">
@@ -192,13 +194,13 @@ module Etc
192
194
  # - group -> Etc::Group
193
195
  # -->
194
196
  # Provides a convenient Ruby iterator which executes a block for each entry in
195
- # the `/etc/group` file.
197
+ # the <code>/etc/group</code> file.
196
198
  #
197
199
  # The code block is passed an Group struct.
198
200
  #
199
201
  # See ::getgrent above for details.
200
202
  #
201
- # **Example:**
203
+ # <strong>Example:</strong>
202
204
  #
203
205
  # require 'etc'
204
206
  #
@@ -223,7 +225,7 @@ module Etc
223
225
  # * sysconf(_SC_NPROCESSORS_ONLN): GNU/Linux, NetBSD, FreeBSD, OpenBSD,
224
226
  # DragonFly BSD, OpenIndiana, Mac OS X, AIX
225
227
  #
226
- # **Example:**
228
+ # <strong>Example:</strong>
227
229
  #
228
230
  # require 'etc'
229
231
  # p Etc.nprocessors #=> 4
@@ -232,7 +234,7 @@ module Etc
232
234
  # process is bound to specific cpus. This is intended for getting better
233
235
  # parallel processing.
234
236
  #
235
- # **Example:** (Linux)
237
+ # <strong>Example:</strong> (Linux)
236
238
  #
237
239
  # linux$ taskset 0x3 ./ruby -retc -e "p Etc.nprocessors" #=> 2
238
240
  #
@@ -244,13 +246,13 @@ module Etc
244
246
  # - passwd -> Etc::Passwd
245
247
  # -->
246
248
  # Provides a convenient Ruby iterator which executes a block for each entry in
247
- # the `/etc/passwd` file.
249
+ # the <code>/etc/passwd</code> file.
248
250
  #
249
251
  # The code block is passed an Passwd struct.
250
252
  #
251
253
  # See ::getpwent above for details.
252
254
  #
253
- # **Example:**
255
+ # <strong>Example:</strong>
254
256
  #
255
257
  # require 'etc'
256
258
  #
@@ -265,8 +267,8 @@ module Etc
265
267
  # rdoc-file=ext/etc/etc.c
266
268
  # - setgrent
267
269
  # -->
268
- # Resets the process of reading the `/etc/group` file, so that the next call to
269
- # ::getgrent will return the first entry again.
270
+ # Resets the process of reading the <code>/etc/group</code> file, so that the
271
+ # next call to ::getgrent will return the first entry again.
270
272
  #
271
273
  def self?.setgrent: () -> void
272
274
 
@@ -274,8 +276,8 @@ module Etc
274
276
  # rdoc-file=ext/etc/etc.c
275
277
  # - setpwent
276
278
  # -->
277
- # Resets the process of reading the `/etc/passwd` file, so that the next call to
278
- # ::getpwent will return the first entry again.
279
+ # Resets the process of reading the <code>/etc/passwd</code> file, so that the
280
+ # next call to ::getpwent will return the first entry again.
279
281
  #
280
282
  def self?.setpwent: () -> void
281
283
 
@@ -301,9 +303,10 @@ module Etc
301
303
  # -->
302
304
  # Returns system configuration directory.
303
305
  #
304
- # This is typically `"/etc"`, but is modified by the prefix used when Ruby was
305
- # compiled. For example, if Ruby is built and installed in `/usr/local`, returns
306
- # `"/usr/local/etc"` on other platforms than Windows.
306
+ # This is typically <code>"/etc"</code>, but is modified by the prefix used when
307
+ # Ruby was compiled. For example, if Ruby is built and installed in
308
+ # <code>/usr/local</code>, returns <code>"/usr/local/etc"</code> on other
309
+ # platforms than Windows.
307
310
  #
308
311
  # On Windows, this always returns the directory provided by the system.
309
312
  #
@@ -326,7 +329,7 @@ module Etc
326
329
  # The return value is a hash which has 5 keys at least:
327
330
  # :sysname, :nodename, :release, :version, :machine
328
331
  #
329
- # **Example:**
332
+ # <strong>Example:</strong>
330
333
  #
331
334
  # require 'etc'
332
335
  # require 'pp'
@@ -666,10 +669,10 @@ module Etc
666
669
  # : contains the name of the group as a String.
667
670
  #
668
671
  # passwd
669
- # : contains the encrypted password as a String. An `'x'` is returned if
670
- # password access to the group is not available; an empty string is returned
671
- # if no password is needed to obtain membership of the group. This is
672
- # system-dependent.
672
+ # : contains the encrypted password as a String. An <code>'x'</code> is
673
+ # returned if password access to the group is not available; an empty string
674
+ # is returned if no password is needed to obtain membership of the group.
675
+ # This is system-dependent.
673
676
  #
674
677
  # gid
675
678
  # : contains the group's numeric ID as an integer.
@@ -688,13 +691,14 @@ module Etc
688
691
  # - Etc::Group.each { |group| block } -> Etc::Group
689
692
  # - Etc::Group.each -> Enumerator
690
693
  # -->
691
- # Iterates for each entry in the `/etc/group` file if a block is given.
694
+ # Iterates for each entry in the <code>/etc/group</code> file if a block is
695
+ # given.
692
696
  #
693
697
  # If no block is given, returns the Enumerator.
694
698
  #
695
699
  # The code block is passed a Group struct.
696
700
  #
697
- # **Example:**
701
+ # <strong>Example:</strong>
698
702
  #
699
703
  # require 'etc'
700
704
  #
@@ -741,9 +745,9 @@ module Etc
741
745
  # : contains the short login name of the user as a String.
742
746
  #
743
747
  # passwd
744
- # : contains the encrypted password of the user as a String. an `'x'` is
745
- # returned if shadow passwords are in use. An `'*'` is returned if the user
746
- # cannot log in using a password.
748
+ # : contains the encrypted password of the user as a String. an
749
+ # <code>'x'</code> is returned if shadow passwords are in use. An
750
+ # <code>'*'</code> is returned if the user cannot log in using a password.
747
751
  #
748
752
  # uid
749
753
  # : contains the integer user ID (uid) of the user.
@@ -793,7 +797,8 @@ module Etc
793
797
  # - Etc::Passwd.each { |struct| block } -> Etc::Passwd
794
798
  # - Etc::Passwd.each -> Enumerator
795
799
  # -->
796
- # Iterates for each entry in the `/etc/passwd` file if a block is given.
800
+ # Iterates for each entry in the <code>/etc/passwd</code> file if a block is
801
+ # given.
797
802
  #
798
803
  # If no block is given, returns the Enumerator.
799
804
  #
@@ -801,7 +806,7 @@ module Etc
801
806
  #
802
807
  # See Etc.getpwent above for details.
803
808
  #
804
- # **Example:**
809
+ # <strong>Example:</strong>
805
810
  #
806
811
  # require 'etc'
807
812
  #