rbs 3.9.4 → 4.1.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 (348) hide show
  1. checksums.yaml +4 -4
  2. data/.clang-format +75 -0
  3. data/.clangd +2 -0
  4. data/.dockerignore +37 -0
  5. data/.github/dependabot.yml +16 -14
  6. data/.github/workflows/bundle-update.yml +63 -0
  7. data/.github/workflows/c-check.yml +66 -0
  8. data/.github/workflows/comments.yml +5 -3
  9. data/.github/workflows/dependabot.yml +2 -2
  10. data/.github/workflows/jruby.yml +79 -0
  11. data/.github/workflows/release-gems.yml +164 -0
  12. data/.github/workflows/ruby.yml +84 -30
  13. data/.github/workflows/rust.yml +186 -0
  14. data/.github/workflows/truffleruby.yml +54 -0
  15. data/.github/workflows/typecheck.yml +5 -2
  16. data/.github/workflows/wasm.yml +55 -0
  17. data/.github/workflows/windows.yml +9 -3
  18. data/.gitignore +16 -0
  19. data/.rubocop.yml +2 -2
  20. data/CHANGELOG.md +430 -0
  21. data/Dockerfile.jruby +53 -0
  22. data/README.md +41 -4
  23. data/Rakefile +777 -60
  24. data/Steepfile +11 -0
  25. data/config.yml +660 -62
  26. data/core/array.rbs +541 -398
  27. data/core/basic_object.rbs +9 -8
  28. data/core/binding.rbs +0 -2
  29. data/core/builtin.rbs +9 -8
  30. data/core/class.rbs +11 -8
  31. data/core/comparable.rbs +55 -34
  32. data/core/complex.rbs +104 -78
  33. data/core/dir.rbs +61 -49
  34. data/core/encoding.rbs +12 -15
  35. data/core/enumerable.rbs +297 -196
  36. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  37. data/core/enumerator/product.rbs +5 -5
  38. data/core/enumerator.rbs +91 -28
  39. data/core/errno.rbs +11 -2
  40. data/core/errors.rbs +58 -29
  41. data/core/exception.rbs +13 -13
  42. data/core/fiber.rbs +74 -54
  43. data/core/file.rbs +260 -1151
  44. data/core/file_constants.rbs +463 -0
  45. data/core/file_stat.rbs +534 -0
  46. data/core/file_test.rbs +3 -3
  47. data/core/float.rbs +257 -116
  48. data/core/gc.rbs +425 -281
  49. data/core/hash.rbs +1151 -829
  50. data/core/integer.rbs +156 -195
  51. data/core/io/buffer.rbs +53 -42
  52. data/core/io/wait.rbs +13 -35
  53. data/core/io.rbs +220 -154
  54. data/core/kernel.rbs +239 -163
  55. data/core/marshal.rbs +4 -4
  56. data/core/match_data.rbs +16 -14
  57. data/core/math.rbs +107 -66
  58. data/core/method.rbs +69 -33
  59. data/core/module.rbs +302 -150
  60. data/core/nil_class.rbs +7 -6
  61. data/core/numeric.rbs +77 -63
  62. data/core/object.rbs +9 -11
  63. data/core/object_space/weak_key_map.rbs +7 -7
  64. data/core/object_space.rbs +30 -23
  65. data/core/pathname.rbs +1312 -0
  66. data/core/proc.rbs +95 -58
  67. data/core/process.rbs +222 -202
  68. data/core/ractor.rbs +364 -518
  69. data/core/random.rbs +21 -3
  70. data/core/range.rbs +181 -79
  71. data/core/rational.rbs +60 -89
  72. data/core/rbs/ops.rbs +154 -0
  73. data/core/rbs/unnamed/argf.rbs +63 -56
  74. data/core/rbs/unnamed/env_class.rbs +19 -14
  75. data/core/rbs/unnamed/main_class.rbs +123 -0
  76. data/core/rbs/unnamed/random.rbs +11 -118
  77. data/core/regexp.rbs +258 -214
  78. data/core/ruby.rbs +53 -0
  79. data/core/ruby_vm.rbs +78 -34
  80. data/core/rubygems/config_file.rbs +5 -5
  81. data/core/rubygems/errors.rbs +6 -70
  82. data/core/rubygems/requirement.rbs +5 -15
  83. data/core/rubygems/rubygems.rbs +18 -81
  84. data/core/rubygems/specification.rbs +8 -0
  85. data/core/rubygems/version.rbs +2 -163
  86. data/core/set.rbs +493 -363
  87. data/core/signal.rbs +26 -16
  88. data/core/string.rbs +3234 -1285
  89. data/core/struct.rbs +43 -42
  90. data/core/symbol.rbs +41 -34
  91. data/core/thread.rbs +139 -83
  92. data/core/time.rbs +81 -50
  93. data/core/trace_point.rbs +41 -35
  94. data/core/true_class.rbs +2 -2
  95. data/core/unbound_method.rbs +24 -16
  96. data/core/warning.rbs +7 -7
  97. data/docs/CONTRIBUTING.md +2 -1
  98. data/docs/aliases.md +79 -0
  99. data/docs/collection.md +3 -3
  100. data/docs/config.md +171 -0
  101. data/docs/encoding.md +56 -0
  102. data/docs/gem.md +0 -1
  103. data/docs/inline.md +634 -0
  104. data/docs/rbs_by_example.md +20 -20
  105. data/docs/release.md +151 -0
  106. data/docs/rust.md +96 -0
  107. data/docs/sigs.md +3 -3
  108. data/docs/syntax.md +48 -18
  109. data/docs/type_fingerprint.md +21 -0
  110. data/docs/wasm_serialization.md +80 -0
  111. data/exe/rbs +1 -1
  112. data/ext/rbs_extension/ast_translation.c +1855 -0
  113. data/ext/rbs_extension/ast_translation.h +41 -0
  114. data/ext/rbs_extension/class_constants.c +187 -0
  115. data/{include/rbs/constants.h → ext/rbs_extension/class_constants.h} +23 -1
  116. data/ext/rbs_extension/compat.h +10 -0
  117. data/ext/rbs_extension/extconf.rb +26 -1
  118. data/ext/rbs_extension/legacy_location.c +299 -0
  119. data/ext/rbs_extension/legacy_location.h +82 -0
  120. data/ext/rbs_extension/main.c +603 -23
  121. data/ext/rbs_extension/rbs_extension.h +6 -21
  122. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  123. data/ext/rbs_extension/rbs_string_bridging.h +24 -0
  124. data/include/rbs/ast.h +1047 -0
  125. data/include/rbs/defines.h +99 -0
  126. data/include/rbs/lexer.h +207 -0
  127. data/include/rbs/location.h +40 -0
  128. data/include/rbs/parser.h +153 -0
  129. data/include/rbs/serialize.h +39 -0
  130. data/include/rbs/string.h +47 -0
  131. data/include/rbs/util/rbs_allocator.h +59 -0
  132. data/include/rbs/util/rbs_assert.h +20 -0
  133. data/include/rbs/util/rbs_buffer.h +83 -0
  134. data/include/rbs/util/rbs_constant_pool.h +6 -70
  135. data/include/rbs/util/rbs_encoding.h +282 -0
  136. data/include/rbs/util/rbs_unescape.h +24 -0
  137. data/include/rbs.h +9 -2
  138. data/lib/rbs/annotate/formatter.rb +3 -13
  139. data/lib/rbs/annotate/rdoc_annotator.rb +30 -32
  140. data/lib/rbs/annotate/rdoc_source.rb +1 -1
  141. data/lib/rbs/ast/annotation.rb +1 -1
  142. data/lib/rbs/ast/comment.rb +1 -1
  143. data/lib/rbs/ast/declarations.rb +10 -10
  144. data/lib/rbs/ast/members.rb +14 -14
  145. data/lib/rbs/ast/ruby/annotations.rb +451 -0
  146. data/lib/rbs/ast/ruby/comment_block.rb +247 -0
  147. data/lib/rbs/ast/ruby/declarations.rb +291 -0
  148. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  149. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  150. data/lib/rbs/ast/ruby/members.rb +762 -0
  151. data/lib/rbs/ast/type_param.rb +24 -4
  152. data/lib/rbs/buffer.rb +142 -20
  153. data/lib/rbs/cli/diff.rb +16 -15
  154. data/lib/rbs/cli/validate.rb +63 -126
  155. data/lib/rbs/cli.rb +59 -29
  156. data/lib/rbs/collection/config/lockfile_generator.rb +28 -3
  157. data/lib/rbs/collection/sources/git.rb +7 -0
  158. data/lib/rbs/definition.rb +6 -1
  159. data/lib/rbs/definition_builder/ancestor_builder.rb +121 -65
  160. data/lib/rbs/definition_builder/method_builder.rb +74 -33
  161. data/lib/rbs/definition_builder.rb +177 -20
  162. data/lib/rbs/diff.rb +7 -1
  163. data/lib/rbs/environment/class_entry.rb +69 -0
  164. data/lib/rbs/environment/module_entry.rb +66 -0
  165. data/lib/rbs/environment.rb +410 -215
  166. data/lib/rbs/environment_loader.rb +2 -8
  167. data/lib/rbs/errors.rb +31 -21
  168. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  169. data/lib/rbs/inline_parser.rb +568 -0
  170. data/lib/rbs/location_aux.rb +36 -4
  171. data/lib/rbs/locator.rb +5 -1
  172. data/lib/rbs/method_type.rb +5 -3
  173. data/lib/rbs/namespace.rb +47 -18
  174. data/lib/rbs/parser_aux.rb +37 -7
  175. data/lib/rbs/prototype/helpers.rb +57 -0
  176. data/lib/rbs/prototype/rb.rb +3 -28
  177. data/lib/rbs/prototype/rbi.rb +196 -45
  178. data/lib/rbs/prototype/runtime.rb +12 -2
  179. data/lib/rbs/resolver/constant_resolver.rb +2 -2
  180. data/lib/rbs/resolver/type_name_resolver.rb +120 -44
  181. data/lib/rbs/rewriter.rb +70 -0
  182. data/lib/rbs/source.rb +99 -0
  183. data/lib/rbs/subtractor.rb +7 -4
  184. data/lib/rbs/test/type_check.rb +25 -3
  185. data/lib/rbs/type_name.rb +34 -21
  186. data/lib/rbs/types.rb +91 -79
  187. data/lib/rbs/unit_test/convertibles.rb +1 -0
  188. data/lib/rbs/unit_test/type_assertions.rb +44 -8
  189. data/lib/rbs/validator.rb +2 -2
  190. data/lib/rbs/version.rb +1 -1
  191. data/lib/rbs/wasm/deserializer.rb +213 -0
  192. data/lib/rbs/wasm/location.rb +61 -0
  193. data/lib/rbs/wasm/parser.rb +137 -0
  194. data/lib/rbs/wasm/runtime.rb +196 -0
  195. data/lib/rbs/wasm/serialization_schema.rb +110 -0
  196. data/lib/rbs.rb +25 -2
  197. data/lib/rbs_jars.rb +39 -0
  198. data/lib/rdoc/discover.rb +1 -1
  199. data/lib/rdoc_plugin/parser.rb +8 -3
  200. data/rbs.gemspec +37 -5
  201. data/schema/typeParam.json +17 -1
  202. data/sig/ancestor_builder.rbs +1 -1
  203. data/sig/annotate/formatter.rbs +2 -2
  204. data/sig/annotate/rdoc_annotater.rbs +13 -10
  205. data/sig/ast/ruby/annotations.rbs +470 -0
  206. data/sig/ast/ruby/comment_block.rbs +127 -0
  207. data/sig/ast/ruby/declarations.rbs +158 -0
  208. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  209. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  210. data/sig/ast/ruby/members.rbs +198 -0
  211. data/sig/buffer.rbs +81 -5
  212. data/sig/cli/diff.rbs +5 -11
  213. data/sig/cli/validate.rbs +12 -8
  214. data/sig/cli.rbs +18 -18
  215. data/sig/collection/config/lockfile_generator.rbs +2 -0
  216. data/sig/definition.rbs +6 -0
  217. data/sig/definition_builder.rbs +3 -1
  218. data/sig/environment/class_entry.rbs +50 -0
  219. data/sig/environment/module_entry.rbs +50 -0
  220. data/sig/environment.rbs +94 -87
  221. data/sig/errors.rbs +26 -20
  222. data/sig/inline_parser/comment_association.rbs +71 -0
  223. data/sig/inline_parser.rbs +126 -0
  224. data/sig/location.rbs +32 -7
  225. data/sig/locator.rbs +0 -2
  226. data/sig/manifest.yaml +0 -2
  227. data/sig/method_builder.rbs +9 -4
  228. data/sig/namespace.rbs +20 -5
  229. data/sig/parser.rbs +77 -13
  230. data/sig/prototype/helpers.rbs +2 -0
  231. data/sig/prototype/rbi.rbs +33 -4
  232. data/sig/resolver/type_name_resolver.rbs +36 -10
  233. data/sig/rewriter.rbs +45 -0
  234. data/sig/source.rbs +48 -0
  235. data/sig/type_param.rbs +13 -8
  236. data/sig/typename.rbs +15 -5
  237. data/sig/types.rbs +10 -8
  238. data/sig/unit_test/spy.rbs +0 -8
  239. data/sig/unit_test/type_assertions.rbs +15 -0
  240. data/sig/wasm/deserializer.rbs +66 -0
  241. data/sig/wasm/serialization_schema.rbs +13 -0
  242. data/src/ast.c +1628 -0
  243. data/src/lexer.c +3221 -0
  244. data/src/lexer.re +155 -0
  245. data/src/lexstate.c +221 -0
  246. data/src/location.c +31 -0
  247. data/src/parser.c +4258 -0
  248. data/src/serialize.c +958 -0
  249. data/src/string.c +41 -0
  250. data/src/util/rbs_allocator.c +171 -0
  251. data/src/util/rbs_assert.c +19 -0
  252. data/src/util/rbs_buffer.c +54 -0
  253. data/src/util/rbs_constant_pool.c +18 -92
  254. data/src/util/rbs_encoding.c +21308 -0
  255. data/src/util/rbs_unescape.c +167 -0
  256. data/stdlib/abbrev/0/array.rbs +1 -1
  257. data/stdlib/bigdecimal/0/big_decimal.rbs +116 -98
  258. data/stdlib/bigdecimal-math/0/big_math.rbs +169 -8
  259. data/stdlib/cgi/0/core.rbs +9 -393
  260. data/stdlib/cgi/0/manifest.yaml +1 -0
  261. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  262. data/stdlib/coverage/0/coverage.rbs +7 -4
  263. data/stdlib/csv/0/csv.rbs +5 -5
  264. data/stdlib/date/0/date.rbs +92 -79
  265. data/stdlib/date/0/date_time.rbs +25 -24
  266. data/stdlib/delegate/0/delegator.rbs +11 -7
  267. data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
  268. data/stdlib/digest/0/digest.rbs +117 -1
  269. data/stdlib/erb/0/erb.rbs +748 -347
  270. data/stdlib/etc/0/etc.rbs +73 -54
  271. data/stdlib/fileutils/0/fileutils.rbs +179 -160
  272. data/stdlib/forwardable/0/forwardable.rbs +13 -10
  273. data/stdlib/io-console/0/io-console.rbs +2 -2
  274. data/stdlib/ipaddr/0/ipaddr.rbs +0 -5
  275. data/stdlib/json/0/json.rbs +232 -185
  276. data/stdlib/monitor/0/monitor.rbs +5 -5
  277. data/stdlib/net-http/0/net-http.rbs +162 -134
  278. data/stdlib/objspace/0/objspace.rbs +17 -34
  279. data/stdlib/open-uri/0/open-uri.rbs +48 -8
  280. data/stdlib/open3/0/open3.rbs +469 -10
  281. data/stdlib/openssl/0/openssl.rbs +521 -397
  282. data/stdlib/optparse/0/optparse.rbs +26 -17
  283. data/stdlib/pathname/0/pathname.rbs +11 -1381
  284. data/stdlib/pp/0/pp.rbs +9 -8
  285. data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
  286. data/stdlib/pstore/0/pstore.rbs +35 -30
  287. data/stdlib/psych/0/psych.rbs +65 -12
  288. data/stdlib/psych/0/store.rbs +2 -4
  289. data/stdlib/pty/0/pty.rbs +9 -6
  290. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  291. data/stdlib/rdoc/0/code_object.rbs +4 -3
  292. data/stdlib/rdoc/0/comment.rbs +2 -0
  293. data/stdlib/rdoc/0/options.rbs +76 -0
  294. data/stdlib/rdoc/0/parser.rbs +1 -1
  295. data/stdlib/rdoc/0/rdoc.rbs +7 -5
  296. data/stdlib/rdoc/0/store.rbs +2 -2
  297. data/stdlib/resolv/0/resolv.rbs +26 -69
  298. data/stdlib/ripper/0/ripper.rbs +25 -19
  299. data/stdlib/securerandom/0/manifest.yaml +2 -0
  300. data/stdlib/securerandom/0/securerandom.rbs +7 -20
  301. data/stdlib/shellwords/0/shellwords.rbs +3 -3
  302. data/stdlib/singleton/0/singleton.rbs +3 -0
  303. data/stdlib/socket/0/addrinfo.rbs +9 -9
  304. data/stdlib/socket/0/basic_socket.rbs +3 -3
  305. data/stdlib/socket/0/ip_socket.rbs +10 -8
  306. data/stdlib/socket/0/socket.rbs +23 -10
  307. data/stdlib/socket/0/tcp_server.rbs +1 -1
  308. data/stdlib/socket/0/tcp_socket.rbs +11 -3
  309. data/stdlib/socket/0/udp_socket.rbs +1 -1
  310. data/stdlib/socket/0/unix_server.rbs +1 -1
  311. data/stdlib/stringio/0/stringio.rbs +1209 -95
  312. data/stdlib/strscan/0/string_scanner.rbs +101 -80
  313. data/stdlib/tempfile/0/manifest.yaml +3 -0
  314. data/stdlib/tempfile/0/tempfile.rbs +25 -21
  315. data/stdlib/time/0/time.rbs +8 -6
  316. data/stdlib/timeout/0/timeout.rbs +58 -7
  317. data/stdlib/tsort/0/cyclic.rbs +4 -1
  318. data/stdlib/tsort/0/interfaces.rbs +8 -8
  319. data/stdlib/tsort/0/tsort.rbs +16 -15
  320. data/stdlib/uri/0/common.rbs +42 -20
  321. data/stdlib/uri/0/file.rbs +3 -3
  322. data/stdlib/uri/0/generic.rbs +21 -18
  323. data/stdlib/uri/0/http.rbs +2 -2
  324. data/stdlib/uri/0/ldap.rbs +2 -2
  325. data/stdlib/uri/0/mailto.rbs +3 -3
  326. data/stdlib/uri/0/rfc2396_parser.rbs +12 -12
  327. data/stdlib/zlib/0/deflate.rbs +4 -3
  328. data/stdlib/zlib/0/gzip_reader.rbs +8 -8
  329. data/stdlib/zlib/0/gzip_writer.rbs +14 -12
  330. data/stdlib/zlib/0/inflate.rbs +1 -1
  331. data/stdlib/zlib/0/need_dict.rbs +1 -1
  332. data/wasm/README.md +60 -0
  333. data/wasm/rbs_wasm.c +423 -0
  334. metadata +131 -19
  335. data/ext/rbs_extension/lexer.c +0 -2728
  336. data/ext/rbs_extension/lexer.h +0 -179
  337. data/ext/rbs_extension/lexer.re +0 -147
  338. data/ext/rbs_extension/lexstate.c +0 -175
  339. data/ext/rbs_extension/location.c +0 -325
  340. data/ext/rbs_extension/location.h +0 -85
  341. data/ext/rbs_extension/parser.c +0 -2982
  342. data/ext/rbs_extension/parser.h +0 -18
  343. data/ext/rbs_extension/parserstate.c +0 -411
  344. data/ext/rbs_extension/parserstate.h +0 -163
  345. data/ext/rbs_extension/unescape.c +0 -32
  346. data/include/rbs/ruby_objs.h +0 -72
  347. data/src/constants.c +0 -153
  348. data/src/ruby_objs.c +0 -799
@@ -24,10 +24,10 @@
24
24
  # #=> #<DateTime: 2001-02-03T12:00:00+00:00 ...>
25
25
  #
26
26
  # An optional argument, the offset, indicates the difference between the local
27
- # time and UTC. For example, `Rational(3,24)` represents ahead of 3 hours of
28
- # UTC, `Rational(-5,24)` represents behind of 5 hours of UTC. The offset should
29
- # be -1 to +1, and its precision is assumed at most second. The default value is
30
- # zero (equals to UTC).
27
+ # time and UTC. For example, <code>Rational(3,24)</code> represents ahead of 3
28
+ # hours of UTC, <code>Rational(-5,24)</code> represents behind of 5 hours of
29
+ # UTC. The offset should be -1 to +1, and its precision is assumed at most
30
+ # second. The default value is zero (equals to UTC).
31
31
  #
32
32
  # DateTime.new(2001,2,3,4,5,6,Rational(3,24))
33
33
  # #=> #<DateTime: 2001-02-03T04:05:06+03:00 ...>
@@ -39,7 +39,7 @@
39
39
  #
40
40
  # An optional argument, the day of calendar reform (`start`), denotes a Julian
41
41
  # day number, which should be 2298874 to 2426355 or negative/positive infinity.
42
- # The default value is `Date::ITALY` (2299161=1582-10-15).
42
+ # The default value is <code>Date::ITALY</code> (2299161=1582-10-15).
43
43
  #
44
44
  # A DateTime object has various methods. See each reference.
45
45
  #
@@ -183,8 +183,8 @@ class DateTime < Date
183
183
  # #=> #<DateTime: 2001-02-03T04:05:06+00:00 ...>
184
184
  #
185
185
  # Raise an ArgumentError when the string length is longer than *limit*. You can
186
- # stop this check by passing `limit: nil`, but note that it may take a long time
187
- # to parse.
186
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
187
+ # a long time to parse.
188
188
  #
189
189
  def self.httpdate: (String str, ?Integer start) -> DateTime
190
190
 
@@ -203,8 +203,8 @@ class DateTime < Date
203
203
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
204
204
  #
205
205
  # Raise an ArgumentError when the string length is longer than *limit*. You can
206
- # stop this check by passing `limit: nil`, but note that it may take a long time
207
- # to parse.
206
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
207
+ # a long time to parse.
208
208
  #
209
209
  def self.iso8601: (String str, ?Integer start) -> DateTime
210
210
 
@@ -237,8 +237,8 @@ class DateTime < Date
237
237
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
238
238
  #
239
239
  # Raise an ArgumentError when the string length is longer than *limit*. You can
240
- # stop this check by passing `limit: nil`, but note that it may take a long time
241
- # to parse.
240
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
241
+ # a long time to parse.
242
242
  #
243
243
  def self.jisx0301: (String str, ?Integer start) -> DateTime
244
244
 
@@ -288,8 +288,8 @@ class DateTime < Date
288
288
  # #=> #<DateTime: 2001-02-03T16:05:06+00:00 ...>
289
289
  #
290
290
  # Raise an ArgumentError when the string length is longer than *limit*. You can
291
- # stop this check by passing `limit: nil`, but note that it may take a long time
292
- # to parse.
291
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
292
+ # a long time to parse.
293
293
  #
294
294
  def self.parse: (String str, ?boolish complete, ?Integer start) -> DateTime
295
295
 
@@ -305,8 +305,8 @@ class DateTime < Date
305
305
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
306
306
  #
307
307
  # Raise an ArgumentError when the string length is longer than *limit*. You can
308
- # stop this check by passing `limit: nil`, but note that it may take a long time
309
- # to parse.
308
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
309
+ # a long time to parse.
310
310
  #
311
311
  def self.rfc2822: (String str, ?Integer start) -> DateTime
312
312
 
@@ -321,8 +321,8 @@ class DateTime < Date
321
321
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
322
322
  #
323
323
  # Raise an ArgumentError when the string length is longer than *limit*. You can
324
- # stop this check by passing `limit: nil`, but note that it may take a long time
325
- # to parse.
324
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
325
+ # a long time to parse.
326
326
  #
327
327
  def self.rfc3339: (String str, ?Integer start) -> DateTime
328
328
 
@@ -338,8 +338,8 @@ class DateTime < Date
338
338
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
339
339
  #
340
340
  # Raise an ArgumentError when the string length is longer than *limit*. You can
341
- # stop this check by passing `limit: nil`, but note that it may take a long time
342
- # to parse.
341
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
342
+ # a long time to parse.
343
343
  #
344
344
  def self.rfc822: (String str, ?Integer start) -> DateTime
345
345
 
@@ -383,8 +383,8 @@ class DateTime < Date
383
383
  # #=> #<DateTime: 2001-02-03T04:05:06+07:00 ...>
384
384
  #
385
385
  # Raise an ArgumentError when the string length is longer than *limit*. You can
386
- # stop this check by passing `limit: nil`, but note that it may take a long time
387
- # to parse.
386
+ # stop this check by passing <code>limit: nil</code>, but note that it may take
387
+ # a long time to parse.
388
388
  #
389
389
  def self.xmlschema: (String str, ?Integer start) -> DateTime
390
390
 
@@ -393,8 +393,9 @@ class DateTime < Date
393
393
  # - deconstruct_keys(array_of_names_or_nil) -> hash
394
394
  # -->
395
395
  # Returns a hash of the name/value pairs, to use in pattern matching. Possible
396
- # keys are: `:year`, `:month`, `:day`, `:wday`, `:yday`, `:hour`, `:min`,
397
- # `:sec`, `:sec_fraction`, `:zone`.
396
+ # keys are: <code>:year</code>, <code>:month</code>, <code>:day</code>,
397
+ # <code>:wday</code>, <code>:yday</code>, <code>:hour</code>, <code>:min</code>,
398
+ # <code>:sec</code>, <code>:sec_fraction</code>, <code>:zone</code>.
398
399
  #
399
400
  # Possible usages:
400
401
  #
@@ -555,7 +556,7 @@ class DateTime < Date
555
556
  # DateTime.now.strftime # => "2022-07-01T11:03:19-05:00"
556
557
  #
557
558
  # For other formats, see [Formats for Dates and
558
- # Times](rdoc-ref:strftime_formatting.rdoc):
559
+ # Times](rdoc-ref:language/strftime_formatting.rdoc):
559
560
  #
560
561
  def strftime: (?String format) -> String
561
562
 
@@ -44,7 +44,7 @@ class Delegator < BasicObject
44
44
  # rdoc-file=lib/delegate.rb
45
45
  # - !()
46
46
  # -->
47
- # Delegates ! to the _*getobj*_
47
+ # Delegates ! to the `__getobj__`
48
48
  #
49
49
  def !: () -> untyped
50
50
 
@@ -94,7 +94,7 @@ class Delegator < BasicObject
94
94
  # rdoc-file=lib/delegate.rb
95
95
  # - freeze()
96
96
  # -->
97
- # :method: freeze Freeze both the object returned by _*getobj*_ and self.
97
+ # Freeze both the object returned by `__getobj__` and self.
98
98
  #
99
99
  def freeze: () -> self
100
100
 
@@ -102,7 +102,7 @@ class Delegator < BasicObject
102
102
  # rdoc-file=lib/delegate.rb
103
103
  # - marshal_dump()
104
104
  # -->
105
- # Serialization support for the object returned by _*getobj*_.
105
+ # Serialization support for the object returned by `__getobj__`.
106
106
  #
107
107
  def marshal_dump: () -> untyped
108
108
 
@@ -118,6 +118,7 @@ class Delegator < BasicObject
118
118
  # rdoc-file=lib/delegate.rb
119
119
  # - method_missing(m, *args, &block)
120
120
  # -->
121
+ # Handles the magic of delegation through `__getobj__`.
121
122
  #
122
123
  def method_missing: (Symbol m, *untyped args, **untyped) { (*untyped, **untyped) -> untyped } -> untyped
123
124
 
@@ -126,7 +127,7 @@ class Delegator < BasicObject
126
127
  # - methods(all=true)
127
128
  # -->
128
129
  # Returns the methods available to this delegate object as the union of this
129
- # object's and _*getobj*_ methods.
130
+ # object's and `__getobj__` methods.
130
131
  #
131
132
  def methods: (?boolish all) -> Array[Symbol]
132
133
 
@@ -135,7 +136,7 @@ class Delegator < BasicObject
135
136
  # - protected_methods(all=true)
136
137
  # -->
137
138
  # Returns the methods available to this delegate object as the union of this
138
- # object's and _*getobj*_ protected methods.
139
+ # object's and `__getobj__` protected methods.
139
140
  #
140
141
  def protected_methods: (?boolish all) -> Array[Symbol]
141
142
 
@@ -144,7 +145,7 @@ class Delegator < BasicObject
144
145
  # - public_methods(all=true)
145
146
  # -->
146
147
  # Returns the methods available to this delegate object as the union of this
147
- # object's and _*getobj*_ public methods.
148
+ # object's and `__getobj__` public methods.
148
149
  #
149
150
  def public_methods: (?untyped all) -> Array[Symbol]
150
151
 
@@ -168,7 +169,7 @@ class Delegator < BasicObject
168
169
  # - respond_to_missing?(m, include_private)
169
170
  # -->
170
171
  # Checks for a method provided by this the delegate object by forwarding the
171
- # call through _*getobj*_.
172
+ # call through `__getobj__`.
172
173
  #
173
174
  def respond_to_missing?: (Symbol m, bool include_private) -> bool
174
175
 
@@ -180,5 +181,8 @@ class Delegator < BasicObject
180
181
  #
181
182
  def target_respond_to?: (untyped target, Symbol m, bool include_private) -> bool
182
183
 
184
+ # <!-- rdoc-file=lib/delegate.rb -->
185
+ # The version string
186
+ #
183
187
  VERSION: String
184
188
  end
@@ -38,7 +38,7 @@
38
38
  #
39
39
  # Occasionally, you may want to disable the `did_you_mean` gem for e.g.
40
40
  # debugging issues in the error object itself. You can disable it entirely by
41
- # specifying `--disable-did_you_mean` option to the `ruby` command:
41
+ # specifying <code>--disable-did_you_mean</code> option to the `ruby` command:
42
42
  #
43
43
  # $ ruby --disable-did_you_mean -e "1.zeor?"
44
44
  # -e:1:in `<main>': undefined method `zeor?' for 1:Integer (NameError)
@@ -55,7 +55,7 @@
55
55
  #
56
56
  # Sometimes, you do not want to disable the gem entirely, but need to get the
57
57
  # original error message without suggestions (e.g. testing). In this case, you
58
- # could use the `#original_message` method on the error object:
58
+ # could use the <code>#original_message</code> method on the error object:
59
59
  #
60
60
  # no_method_error = begin
61
61
  # 1.zeor?
@@ -92,9 +92,9 @@ module DidYouMean
92
92
  end
93
93
 
94
94
  # <!-- rdoc-file=lib/did_you_mean/formatter.rb -->
95
- # The `DidYouMean::Formatter` is the basic, default formatter for the gem. The
96
- # formatter responds to the `message_for` method and it returns a human readable
97
- # string.
95
+ # The <code>DidYouMean::Formatter</code> is the basic, default formatter for the
96
+ # gem. The formatter responds to the `message_for` method and it returns a human
97
+ # readable string.
98
98
  #
99
99
  class Formatter
100
100
  # <!--
@@ -170,15 +170,16 @@ module DidYouMean
170
170
  NAMES_TO_EXCLUDE: Hash[untyped, Array[Symbol]]
171
171
 
172
172
  # <!-- rdoc-file=lib/did_you_mean/spell_checkers/method_name_checker.rb -->
173
- # `MethodNameChecker::RB_RESERVED_WORDS` is the list of reserved words in Ruby
174
- # that take an argument. Unlike `VariableNameChecker::RB_RESERVED_WORDS`, these
175
- # reserved words require an argument, and a `NoMethodError` is raised due to the
176
- # presence of the argument.
173
+ # <code>MethodNameChecker::RB_RESERVED_WORDS</code> is the list of reserved
174
+ # words in Ruby that take an argument. Unlike
175
+ # <code>VariableNameChecker::RB_RESERVED_WORDS</code>, these reserved words
176
+ # require an argument, and a `NoMethodError` is raised due to the presence of
177
+ # the argument.
177
178
  #
178
179
  # The `MethodNameChecker` will use this list to suggest a reversed word if a
179
180
  # `NoMethodError` is raised and found closest matches.
180
181
  #
181
- # Also see `VariableNameChecker::RB_RESERVED_WORDS`.
182
+ # Also see <code>VariableNameChecker::RB_RESERVED_WORDS</code>.
182
183
  #
183
184
  RB_RESERVED_WORDS: Array[Symbol]
184
185
 
@@ -295,19 +296,19 @@ module DidYouMean
295
296
  NAMES_TO_EXCLUDE: Hash[String, Array[Symbol]]
296
297
 
297
298
  # <!-- rdoc-file=lib/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb -->
298
- # `VariableNameChecker::RB_RESERVED_WORDS` is the list of all reserved words in
299
- # Ruby. They could be declared like methods are, and a typo would cause Ruby to
300
- # raise a `NameError` because of the way they are declared.
299
+ # <code>VariableNameChecker::RB_RESERVED_WORDS</code> is the list of all
300
+ # reserved words in Ruby. They could be declared like methods are, and a typo
301
+ # would cause Ruby to raise a `NameError` because of the way they are declared.
301
302
  #
302
- # The `:VariableNameChecker` will use this list to suggest a reversed word if a
303
- # `NameError` is raised and found closest matches, excluding:
303
+ # The <code>:VariableNameChecker</code> will use this list to suggest a reversed
304
+ # word if a `NameError` is raised and found closest matches, excluding:
304
305
  #
305
306
  # * +do+
306
307
  # * +if+
307
308
  # * +in+
308
309
  # * +or+
309
310
  #
310
- # Also see `MethodNameChecker::RB_RESERVED_WORDS`.
311
+ # Also see <code>MethodNameChecker::RB_RESERVED_WORDS</code>.
311
312
  #
312
313
  RB_RESERVED_WORDS: Array[Symbol]
313
314
 
@@ -303,7 +303,7 @@ module Digest::Instance
303
303
  # uninitialized. Do not call this method from outside. Use #digest!() instead,
304
304
  # which ensures that internal data be reset for security reasons.
305
305
  #
306
- def finish: () -> self
306
+ def finish: () -> String
307
307
  end
308
308
 
309
309
  # <!-- rdoc-file=ext/digest/digest.c -->
@@ -471,6 +471,122 @@ end
471
471
  class Digest::SHA1 < Digest::Base
472
472
  end
473
473
 
474
+ # <!-- rdoc-file=ext/digest/sha2/lib/sha2.rb -->
475
+ # A meta digest provider class for SHA256, SHA384 and SHA512.
476
+ #
477
+ # FIPS 180-2 describes SHA2 family of digest algorithms. It defines three
478
+ # algorithms:
479
+ # * one which works on chunks of 512 bits and returns a 256-bit digest
480
+ # (SHA256),
481
+ # * one which works on chunks of 1024 bits and returns a 384-bit digest
482
+ # (SHA384),
483
+ # * and one which works on chunks of 1024 bits and returns a 512-bit digest
484
+ # (SHA512).
485
+ #
486
+ # ## Examples
487
+ # require 'digest'
488
+ #
489
+ # # Compute a complete digest
490
+ # Digest::SHA2.hexdigest 'abc' # => "ba7816bf8..."
491
+ # Digest::SHA2.new(256).hexdigest 'abc' # => "ba7816bf8..."
492
+ # Digest::SHA256.hexdigest 'abc' # => "ba7816bf8..."
493
+ #
494
+ # Digest::SHA2.new(384).hexdigest 'abc' # => "cb00753f4..."
495
+ # Digest::SHA384.hexdigest 'abc' # => "cb00753f4..."
496
+ #
497
+ # Digest::SHA2.new(512).hexdigest 'abc' # => "ddaf35a19..."
498
+ # Digest::SHA512.hexdigest 'abc' # => "ddaf35a19..."
499
+ #
500
+ # # Compute digest by chunks
501
+ # sha2 = Digest::SHA2.new # =>#<Digest::SHA2:256>
502
+ # sha2.update "ab"
503
+ # sha2 << "c" # alias for #update
504
+ # sha2.hexdigest # => "ba7816bf8..."
505
+ #
506
+ # # Use the same object to compute another digest
507
+ # sha2.reset
508
+ # sha2 << "message"
509
+ # sha2.hexdigest # => "ab530a13e..."
510
+ #
511
+ class Digest::SHA2 < Digest::Class
512
+ # <!--
513
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
514
+ # - Digest::SHA2.new(bitlen = 256) -> digest_obj
515
+ # -->
516
+ # Create a new SHA2 hash object with a given bit length.
517
+ #
518
+ # Valid bit lengths are 256, 384 and 512.
519
+ #
520
+ def initialize: (?(256 | 384 | 512) bitlen) -> void
521
+
522
+ # <!--
523
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
524
+ # - digest_obj.reset -> digest_obj
525
+ # -->
526
+ # Reset the digest to the initial state and return self.
527
+ #
528
+ def reset: () -> self
529
+
530
+ # <!--
531
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
532
+ # - digest_obj.update(string) -> digest_obj
533
+ # - digest_obj << string -> digest_obj
534
+ # -->
535
+ # Update the digest using a given *string* and return self.
536
+ #
537
+ def update: (String) -> self
538
+
539
+ # <!--
540
+ # rdoc-file=ext/digest/digest.c
541
+ # - digest_obj.instance_eval { finish } -> digest_obj
542
+ # -->
543
+ # Finishes the digest and returns the resulting hash value.
544
+ #
545
+ # This method is overridden by each implementation subclass and often made
546
+ # private, because some of those subclasses may leave internal data
547
+ # uninitialized. Do not call this method from outside. Use #digest!() instead,
548
+ # which ensures that internal data be reset for security reasons.
549
+ #
550
+ private def finish: () -> String
551
+
552
+ alias << update
553
+
554
+ # <!--
555
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
556
+ # - digest_obj.block_length -> Integer
557
+ # -->
558
+ # Return the block length of the digest in bytes.
559
+ #
560
+ # Digest::SHA256.new.block_length * 8
561
+ # # => 512
562
+ # Digest::SHA384.new.block_length * 8
563
+ # # => 1024
564
+ # Digest::SHA512.new.block_length * 8
565
+ # # => 1024
566
+ #
567
+ def block_length: () -> Integer
568
+
569
+ # <!--
570
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
571
+ # - digest_obj.digest_length -> Integer
572
+ # -->
573
+ # Return the length of the hash value (the digest) in bytes.
574
+ #
575
+ # Digest::SHA256.new.digest_length * 8
576
+ # # => 256
577
+ # Digest::SHA384.new.digest_length * 8
578
+ # # => 384
579
+ # Digest::SHA512.new.digest_length * 8
580
+ # # => 512
581
+ #
582
+ # For example, digests produced by Digest::SHA256 will always be 32 bytes (256
583
+ # bits) in size.
584
+ #
585
+ def digest_length: () -> Integer
586
+
587
+ def initialize_copy: (untyped) -> untyped
588
+ end
589
+
474
590
  # <!-- rdoc-file=ext/digest/md5/md5init.c -->
475
591
  # A class for calculating message digests using the MD5 Message-Digest Algorithm
476
592
  # by RSA Data Security, Inc., described in RFC1321.