rbs 4.0.0.dev.4 → 4.1.0.pre.2

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 (306) hide show
  1. checksums.yaml +4 -4
  2. data/.clang-format +1 -0
  3. data/.github/dependabot.yml +16 -14
  4. data/.github/workflows/bundle-update.yml +63 -0
  5. data/.github/workflows/c-check.yml +21 -11
  6. data/.github/workflows/comments.yml +5 -3
  7. data/.github/workflows/dependabot.yml +2 -2
  8. data/.github/workflows/jruby.yml +67 -0
  9. data/.github/workflows/milestone.yml +83 -0
  10. data/.github/workflows/ruby.yml +63 -24
  11. data/.github/workflows/rust.yml +184 -0
  12. data/.github/workflows/truffleruby.yml +54 -0
  13. data/.github/workflows/typecheck.yml +5 -2
  14. data/.github/workflows/wasm.yml +53 -0
  15. data/.github/workflows/windows.yml +8 -2
  16. data/.gitignore +11 -0
  17. data/.rubocop.yml +1 -1
  18. data/CHANGELOG.md +357 -0
  19. data/README.md +4 -4
  20. data/Rakefile +365 -33
  21. data/Steepfile +8 -0
  22. data/config.yml +450 -24
  23. data/core/array.rbs +443 -363
  24. data/core/basic_object.rbs +9 -8
  25. data/core/binding.rbs +0 -2
  26. data/core/builtin.rbs +9 -8
  27. data/core/class.rbs +11 -8
  28. data/core/comparable.rbs +55 -34
  29. data/core/complex.rbs +104 -78
  30. data/core/dir.rbs +61 -49
  31. data/core/encoding.rbs +12 -15
  32. data/core/enumerable.rbs +288 -196
  33. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  34. data/core/enumerator/product.rbs +5 -5
  35. data/core/enumerator.rbs +91 -28
  36. data/core/errno.rbs +11 -2
  37. data/core/errors.rbs +58 -29
  38. data/core/exception.rbs +13 -13
  39. data/core/fiber.rbs +74 -54
  40. data/core/file.rbs +260 -1151
  41. data/core/file_constants.rbs +463 -0
  42. data/core/file_stat.rbs +534 -0
  43. data/core/file_test.rbs +3 -3
  44. data/core/float.rbs +257 -92
  45. data/core/gc.rbs +425 -281
  46. data/core/hash.rbs +1151 -829
  47. data/core/integer.rbs +156 -195
  48. data/core/io/buffer.rbs +53 -42
  49. data/core/io/wait.rbs +13 -35
  50. data/core/io.rbs +216 -150
  51. data/core/kernel.rbs +239 -163
  52. data/core/marshal.rbs +4 -4
  53. data/core/match_data.rbs +15 -13
  54. data/core/math.rbs +107 -66
  55. data/core/method.rbs +69 -33
  56. data/core/module.rbs +302 -150
  57. data/core/nil_class.rbs +7 -6
  58. data/core/numeric.rbs +77 -63
  59. data/core/object.rbs +9 -11
  60. data/core/object_space/weak_key_map.rbs +7 -7
  61. data/core/object_space.rbs +30 -23
  62. data/core/pathname.rbs +1322 -0
  63. data/core/proc.rbs +95 -58
  64. data/core/process.rbs +222 -202
  65. data/core/ractor.rbs +371 -515
  66. data/core/random.rbs +21 -3
  67. data/core/range.rbs +181 -79
  68. data/core/rational.rbs +60 -89
  69. data/core/rbs/ops.rbs +154 -0
  70. data/core/rbs/unnamed/argf.rbs +63 -56
  71. data/core/rbs/unnamed/env_class.rbs +19 -14
  72. data/core/rbs/unnamed/main_class.rbs +123 -0
  73. data/core/rbs/unnamed/random.rbs +11 -118
  74. data/core/regexp.rbs +258 -214
  75. data/core/ruby.rbs +53 -0
  76. data/core/ruby_vm.rbs +78 -34
  77. data/core/rubygems/config_file.rbs +5 -5
  78. data/core/rubygems/errors.rbs +4 -71
  79. data/core/rubygems/requirement.rbs +5 -5
  80. data/core/rubygems/rubygems.rbs +16 -82
  81. data/core/rubygems/version.rbs +2 -3
  82. data/core/set.rbs +493 -363
  83. data/core/signal.rbs +26 -16
  84. data/core/string.rbs +3234 -1285
  85. data/core/struct.rbs +43 -42
  86. data/core/symbol.rbs +41 -34
  87. data/core/thread.rbs +141 -73
  88. data/core/time.rbs +81 -50
  89. data/core/trace_point.rbs +41 -35
  90. data/core/true_class.rbs +2 -2
  91. data/core/unbound_method.rbs +24 -16
  92. data/core/warning.rbs +7 -7
  93. data/docs/CONTRIBUTING.md +2 -1
  94. data/docs/aliases.md +79 -0
  95. data/docs/collection.md +3 -3
  96. data/docs/config.md +171 -0
  97. data/docs/encoding.md +56 -0
  98. data/docs/gem.md +0 -1
  99. data/docs/inline.md +634 -0
  100. data/docs/rbs_by_example.md +20 -20
  101. data/docs/rust.md +96 -0
  102. data/docs/sigs.md +3 -3
  103. data/docs/syntax.md +48 -18
  104. data/docs/type_fingerprint.md +21 -0
  105. data/docs/wasm_serialization.md +80 -0
  106. data/exe/rbs +1 -1
  107. data/ext/rbs_extension/ast_translation.c +1441 -671
  108. data/ext/rbs_extension/ast_translation.h +7 -0
  109. data/ext/rbs_extension/class_constants.c +18 -2
  110. data/ext/rbs_extension/class_constants.h +9 -0
  111. data/ext/rbs_extension/extconf.rb +6 -1
  112. data/ext/rbs_extension/legacy_location.c +33 -56
  113. data/ext/rbs_extension/legacy_location.h +37 -0
  114. data/ext/rbs_extension/main.c +183 -39
  115. data/include/rbs/ast.h +597 -297
  116. data/include/rbs/defines.h +40 -0
  117. data/include/rbs/lexer.h +31 -11
  118. data/include/rbs/location.h +25 -44
  119. data/include/rbs/parser.h +6 -6
  120. data/include/rbs/serialize.h +39 -0
  121. data/include/rbs/string.h +0 -2
  122. data/include/rbs/util/rbs_allocator.h +34 -13
  123. data/include/rbs/util/rbs_assert.h +12 -1
  124. data/include/rbs/util/rbs_constant_pool.h +0 -3
  125. data/include/rbs/util/rbs_encoding.h +2 -0
  126. data/include/rbs/util/rbs_unescape.h +2 -1
  127. data/include/rbs.h +8 -0
  128. data/lib/rbs/annotate/rdoc_annotator.rb +27 -31
  129. data/lib/rbs/ast/annotation.rb +1 -1
  130. data/lib/rbs/ast/comment.rb +1 -1
  131. data/lib/rbs/ast/declarations.rb +10 -10
  132. data/lib/rbs/ast/members.rb +14 -14
  133. data/lib/rbs/ast/ruby/annotations.rb +335 -3
  134. data/lib/rbs/ast/ruby/comment_block.rb +30 -4
  135. data/lib/rbs/ast/ruby/declarations.rb +209 -4
  136. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +4 -0
  137. data/lib/rbs/ast/ruby/helpers/location_helper.rb +1 -1
  138. data/lib/rbs/ast/ruby/members.rb +571 -22
  139. data/lib/rbs/ast/type_param.rb +24 -4
  140. data/lib/rbs/buffer.rb +66 -24
  141. data/lib/rbs/cli/diff.rb +16 -15
  142. data/lib/rbs/cli/validate.rb +38 -106
  143. data/lib/rbs/cli.rb +55 -24
  144. data/lib/rbs/collection/config/lockfile_generator.rb +28 -3
  145. data/lib/rbs/collection/sources/git.rb +7 -0
  146. data/lib/rbs/definition.rb +1 -1
  147. data/lib/rbs/definition_builder/ancestor_builder.rb +62 -9
  148. data/lib/rbs/definition_builder/method_builder.rb +32 -6
  149. data/lib/rbs/definition_builder.rb +147 -25
  150. data/lib/rbs/diff.rb +7 -1
  151. data/lib/rbs/environment.rb +235 -75
  152. data/lib/rbs/environment_loader.rb +0 -6
  153. data/lib/rbs/errors.rb +27 -18
  154. data/lib/rbs/inline_parser.rb +377 -15
  155. data/lib/rbs/location_aux.rb +1 -1
  156. data/lib/rbs/locator.rb +5 -1
  157. data/lib/rbs/method_type.rb +5 -3
  158. data/lib/rbs/namespace.rb +47 -11
  159. data/lib/rbs/parser_aux.rb +20 -7
  160. data/lib/rbs/prototype/helpers.rb +57 -0
  161. data/lib/rbs/prototype/rb.rb +3 -28
  162. data/lib/rbs/prototype/rbi.rb +3 -20
  163. data/lib/rbs/prototype/runtime.rb +10 -0
  164. data/lib/rbs/resolver/constant_resolver.rb +2 -2
  165. data/lib/rbs/resolver/type_name_resolver.rb +120 -44
  166. data/lib/rbs/rewriter.rb +70 -0
  167. data/lib/rbs/subtractor.rb +3 -1
  168. data/lib/rbs/test/type_check.rb +25 -3
  169. data/lib/rbs/type_name.rb +34 -14
  170. data/lib/rbs/types.rb +88 -78
  171. data/lib/rbs/unit_test/type_assertions.rb +44 -8
  172. data/lib/rbs/validator.rb +2 -2
  173. data/lib/rbs/version.rb +1 -1
  174. data/lib/rbs/wasm/deserializer.rb +213 -0
  175. data/lib/rbs/wasm/location.rb +61 -0
  176. data/lib/rbs/wasm/parser.rb +137 -0
  177. data/lib/rbs/wasm/runtime.rb +217 -0
  178. data/lib/rbs/wasm/serialization_schema.rb +110 -0
  179. data/lib/rbs.rb +13 -2
  180. data/lib/rdoc/discover.rb +1 -1
  181. data/lib/rdoc_plugin/parser.rb +1 -1
  182. data/rbs.gemspec +24 -6
  183. data/schema/typeParam.json +17 -1
  184. data/sig/annotate/rdoc_annotater.rbs +12 -9
  185. data/sig/ast/ruby/annotations.rbs +364 -4
  186. data/sig/ast/ruby/comment_block.rbs +8 -0
  187. data/sig/ast/ruby/declarations.rbs +102 -4
  188. data/sig/ast/ruby/members.rbs +128 -2
  189. data/sig/buffer.rbs +19 -1
  190. data/sig/cli/diff.rbs +5 -11
  191. data/sig/cli/validate.rbs +12 -8
  192. data/sig/cli.rbs +18 -18
  193. data/sig/collection/config/lockfile_generator.rbs +2 -0
  194. data/sig/definition.rbs +6 -1
  195. data/sig/definition_builder.rbs +2 -0
  196. data/sig/environment.rbs +70 -12
  197. data/sig/errors.rbs +13 -14
  198. data/sig/inline_parser.rbs +41 -2
  199. data/sig/locator.rbs +0 -2
  200. data/sig/manifest.yaml +0 -2
  201. data/sig/method_builder.rbs +3 -1
  202. data/sig/namespace.rbs +20 -0
  203. data/sig/parser.rbs +41 -13
  204. data/sig/prototype/helpers.rbs +2 -0
  205. data/sig/resolver/type_name_resolver.rbs +36 -10
  206. data/sig/rewriter.rbs +45 -0
  207. data/sig/source.rbs +3 -3
  208. data/sig/type_param.rbs +13 -8
  209. data/sig/typename.rbs +15 -0
  210. data/sig/types.rbs +6 -7
  211. data/sig/unit_test/spy.rbs +0 -8
  212. data/sig/unit_test/type_assertions.rbs +15 -0
  213. data/sig/wasm/deserializer.rbs +66 -0
  214. data/sig/wasm/serialization_schema.rbs +13 -0
  215. data/src/ast.c +443 -162
  216. data/src/lexer.c +1415 -1313
  217. data/src/lexer.re +4 -0
  218. data/src/lexstate.c +63 -37
  219. data/src/location.c +7 -47
  220. data/src/parser.c +1032 -521
  221. data/src/serialize.c +958 -0
  222. data/src/string.c +0 -48
  223. data/src/util/rbs_allocator.c +89 -74
  224. data/src/util/rbs_assert.c +1 -1
  225. data/src/util/rbs_buffer.c +2 -2
  226. data/src/util/rbs_constant_pool.c +10 -14
  227. data/src/util/rbs_encoding.c +4 -8
  228. data/src/util/rbs_unescape.c +56 -20
  229. data/stdlib/abbrev/0/array.rbs +1 -1
  230. data/stdlib/bigdecimal/0/big_decimal.rbs +116 -98
  231. data/stdlib/bigdecimal-math/0/big_math.rbs +169 -8
  232. data/stdlib/cgi/0/core.rbs +9 -393
  233. data/stdlib/cgi/0/manifest.yaml +1 -0
  234. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  235. data/stdlib/coverage/0/coverage.rbs +7 -4
  236. data/stdlib/csv/0/csv.rbs +5 -5
  237. data/stdlib/date/0/date.rbs +92 -79
  238. data/stdlib/date/0/date_time.rbs +25 -24
  239. data/stdlib/delegate/0/delegator.rbs +10 -7
  240. data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
  241. data/stdlib/digest/0/digest.rbs +111 -1
  242. data/stdlib/erb/0/erb.rbs +748 -347
  243. data/stdlib/etc/0/etc.rbs +73 -54
  244. data/stdlib/fileutils/0/fileutils.rbs +179 -160
  245. data/stdlib/forwardable/0/forwardable.rbs +13 -10
  246. data/stdlib/io-console/0/io-console.rbs +2 -2
  247. data/stdlib/json/0/json.rbs +223 -142
  248. data/stdlib/monitor/0/monitor.rbs +3 -3
  249. data/stdlib/net-http/0/net-http.rbs +162 -134
  250. data/stdlib/objspace/0/objspace.rbs +17 -34
  251. data/stdlib/open-uri/0/open-uri.rbs +48 -8
  252. data/stdlib/open3/0/open3.rbs +469 -10
  253. data/stdlib/openssl/0/openssl.rbs +482 -364
  254. data/stdlib/optparse/0/optparse.rbs +26 -17
  255. data/stdlib/pathname/0/pathname.rbs +11 -1381
  256. data/stdlib/pp/0/pp.rbs +9 -8
  257. data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
  258. data/stdlib/pstore/0/pstore.rbs +35 -30
  259. data/stdlib/psych/0/psych.rbs +65 -12
  260. data/stdlib/psych/0/store.rbs +2 -4
  261. data/stdlib/pty/0/pty.rbs +9 -6
  262. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  263. data/stdlib/rdoc/0/code_object.rbs +2 -1
  264. data/stdlib/rdoc/0/parser.rbs +1 -1
  265. data/stdlib/rdoc/0/rdoc.rbs +1 -1
  266. data/stdlib/rdoc/0/store.rbs +1 -1
  267. data/stdlib/resolv/0/resolv.rbs +26 -69
  268. data/stdlib/ripper/0/ripper.rbs +22 -19
  269. data/stdlib/securerandom/0/manifest.yaml +2 -0
  270. data/stdlib/securerandom/0/securerandom.rbs +7 -20
  271. data/stdlib/shellwords/0/shellwords.rbs +3 -3
  272. data/stdlib/singleton/0/singleton.rbs +3 -0
  273. data/stdlib/socket/0/addrinfo.rbs +7 -7
  274. data/stdlib/socket/0/basic_socket.rbs +3 -3
  275. data/stdlib/socket/0/ip_socket.rbs +10 -8
  276. data/stdlib/socket/0/socket.rbs +23 -10
  277. data/stdlib/socket/0/tcp_server.rbs +1 -1
  278. data/stdlib/socket/0/tcp_socket.rbs +11 -3
  279. data/stdlib/socket/0/udp_socket.rbs +1 -1
  280. data/stdlib/socket/0/unix_server.rbs +1 -1
  281. data/stdlib/stringio/0/stringio.rbs +1209 -95
  282. data/stdlib/strscan/0/string_scanner.rbs +101 -80
  283. data/stdlib/tempfile/0/tempfile.rbs +25 -21
  284. data/stdlib/time/0/time.rbs +8 -6
  285. data/stdlib/timeout/0/timeout.rbs +63 -7
  286. data/stdlib/tsort/0/cyclic.rbs +4 -1
  287. data/stdlib/tsort/0/interfaces.rbs +8 -8
  288. data/stdlib/tsort/0/tsort.rbs +16 -15
  289. data/stdlib/uri/0/common.rbs +42 -20
  290. data/stdlib/uri/0/file.rbs +3 -3
  291. data/stdlib/uri/0/generic.rbs +26 -18
  292. data/stdlib/uri/0/http.rbs +2 -2
  293. data/stdlib/uri/0/ldap.rbs +2 -2
  294. data/stdlib/uri/0/mailto.rbs +3 -3
  295. data/stdlib/uri/0/rfc2396_parser.rbs +12 -12
  296. data/stdlib/zlib/0/deflate.rbs +4 -3
  297. data/stdlib/zlib/0/gzip_reader.rbs +8 -8
  298. data/stdlib/zlib/0/gzip_writer.rbs +14 -12
  299. data/stdlib/zlib/0/inflate.rbs +1 -1
  300. data/stdlib/zlib/0/need_dict.rbs +1 -1
  301. data/stdlib/zlib/0/zstream.rbs +1 -0
  302. data/wasm/README.md +59 -0
  303. data/wasm/rbs_wasm.c +411 -0
  304. metadata +56 -8
  305. data/.vscode/extensions.json +0 -5
  306. data/.vscode/settings.json +0 -19
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
 
@@ -293,7 +295,7 @@ module Etc
293
295
  # Etc.sysconf(Etc::SC_ARG_MAX) #=> 2097152
294
296
  # Etc.sysconf(Etc::SC_LOGIN_NAME_MAX) #=> 256
295
297
  #
296
- def self?.sysconf: (::Integer p1) -> ::Integer
298
+ def self?.sysconf: (::Integer p1) -> ::Integer?
297
299
 
298
300
  # <!--
299
301
  # rdoc-file=ext/etc/etc.c
@@ -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
  #
@@ -315,7 +318,7 @@ module Etc
315
318
  # -->
316
319
  # Returns system temporary directory; typically "/tmp".
317
320
  #
318
- def self?.systmpdir: () -> ::String
321
+ def self?.systmpdir: () -> ::String?
319
322
 
320
323
  # <!--
321
324
  # rdoc-file=ext/etc/etc.c
@@ -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
  #
@@ -705,7 +709,8 @@ module Etc
705
709
  # Etc::Group.collect {|g| g.name}
706
710
  # Etc::Group.select {|g| !g.mem.empty?}
707
711
  #
708
- def self.each: () -> untyped
712
+ def self.each: () { (::Etc::Group) -> void } -> singleton(::Etc::Group)
713
+ | () -> ::Enumerator[::Etc::Group]
709
714
 
710
715
  def self.inspect: () -> untyped
711
716
 
@@ -741,9 +746,9 @@ module Etc
741
746
  # : contains the short login name of the user as a String.
742
747
  #
743
748
  # 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.
749
+ # : contains the encrypted password of the user as a String. an
750
+ # <code>'x'</code> is returned if shadow passwords are in use. An
751
+ # <code>'*'</code> is returned if the user cannot log in using a password.
747
752
  #
748
753
  # uid
749
754
  # : contains the integer user ID (uid) of the user.
@@ -793,7 +798,8 @@ module Etc
793
798
  # - Etc::Passwd.each { |struct| block } -> Etc::Passwd
794
799
  # - Etc::Passwd.each -> Enumerator
795
800
  # -->
796
- # Iterates for each entry in the `/etc/passwd` file if a block is given.
801
+ # Iterates for each entry in the <code>/etc/passwd</code> file if a block is
802
+ # given.
797
803
  #
798
804
  # If no block is given, returns the Enumerator.
799
805
  #
@@ -801,7 +807,7 @@ module Etc
801
807
  #
802
808
  # See Etc.getpwent above for details.
803
809
  #
804
- # **Example:**
810
+ # <strong>Example:</strong>
805
811
  #
806
812
  # require 'etc'
807
813
  #
@@ -812,7 +818,8 @@ module Etc
812
818
  # Etc::Passwd.collect {|u| u.gecos}
813
819
  # Etc::Passwd.collect {|u| u.gecos}
814
820
  #
815
- def self.each: () -> untyped
821
+ def self.each: () { (::Etc::Passwd) -> void } -> singleton(::Etc::Passwd)
822
+ | () -> ::Enumerator[::Etc::Passwd]
816
823
 
817
824
  def self.inspect: () -> untyped
818
825
 
@@ -822,10 +829,18 @@ module Etc
822
829
 
823
830
  def self.new: (*untyped) -> untyped
824
831
 
832
+ def age: () -> Integer
833
+
834
+ def age=: (Integer new_age) -> void
835
+
825
836
  def change: () -> Integer
826
837
 
827
838
  def change=: (Integer new_change) -> void
828
839
 
840
+ def comment: () -> String
841
+
842
+ def comment=: (String new_comment) -> void
843
+
829
844
  def dir: () -> String
830
845
 
831
846
  def dir=: (String new_dir) -> void
@@ -850,6 +865,10 @@ module Etc
850
865
 
851
866
  def passwd=: (String new_passwd) -> void
852
867
 
868
+ def quota: () -> Integer
869
+
870
+ def quota=: (Integer new_quota) -> void
871
+
853
872
  def shell: () -> String
854
873
 
855
874
  def shell=: (String new_shell) -> void