rbs 4.1.0.pre.2-java

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 (574) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +75 -0
  3. data/.clangd +2 -0
  4. data/.github/dependabot.yml +24 -0
  5. data/.github/workflows/bundle-update.yml +63 -0
  6. data/.github/workflows/c-check.yml +61 -0
  7. data/.github/workflows/comments.yml +37 -0
  8. data/.github/workflows/dependabot.yml +30 -0
  9. data/.github/workflows/jruby.yml +67 -0
  10. data/.github/workflows/milestone.yml +83 -0
  11. data/.github/workflows/ruby.yml +158 -0
  12. data/.github/workflows/rust.yml +184 -0
  13. data/.github/workflows/truffleruby.yml +54 -0
  14. data/.github/workflows/typecheck.yml +39 -0
  15. data/.github/workflows/wasm.yml +53 -0
  16. data/.github/workflows/windows.yml +49 -0
  17. data/.gitignore +38 -0
  18. data/.rubocop.yml +72 -0
  19. data/BSDL +22 -0
  20. data/CHANGELOG.md +2292 -0
  21. data/COPYING +56 -0
  22. data/README.md +240 -0
  23. data/Rakefile +869 -0
  24. data/Steepfile +53 -0
  25. data/config.yml +913 -0
  26. data/core/array.rbs +4142 -0
  27. data/core/basic_object.rbs +376 -0
  28. data/core/binding.rbs +148 -0
  29. data/core/builtin.rbs +278 -0
  30. data/core/class.rbs +223 -0
  31. data/core/comparable.rbs +192 -0
  32. data/core/complex.rbs +812 -0
  33. data/core/constants.rbs +96 -0
  34. data/core/data.rbs +415 -0
  35. data/core/dir.rbs +993 -0
  36. data/core/encoding.rbs +1368 -0
  37. data/core/enumerable.rbs +2506 -0
  38. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  39. data/core/enumerator/product.rbs +92 -0
  40. data/core/enumerator.rbs +705 -0
  41. data/core/env.rbs +6 -0
  42. data/core/errno.rbs +682 -0
  43. data/core/errors.rbs +789 -0
  44. data/core/exception.rbs +485 -0
  45. data/core/false_class.rbs +82 -0
  46. data/core/fiber.rbs +570 -0
  47. data/core/fiber_error.rbs +11 -0
  48. data/core/file.rbs +2045 -0
  49. data/core/file_constants.rbs +463 -0
  50. data/core/file_stat.rbs +534 -0
  51. data/core/file_test.rbs +331 -0
  52. data/core/float.rbs +1316 -0
  53. data/core/gc.rbs +788 -0
  54. data/core/global_variables.rbs +184 -0
  55. data/core/hash.rbs +2183 -0
  56. data/core/integer.rbs +1374 -0
  57. data/core/io/buffer.rbs +995 -0
  58. data/core/io/wait.rbs +48 -0
  59. data/core/io.rbs +3472 -0
  60. data/core/kernel.rbs +3172 -0
  61. data/core/marshal.rbs +207 -0
  62. data/core/match_data.rbs +637 -0
  63. data/core/math.rbs +770 -0
  64. data/core/method.rbs +422 -0
  65. data/core/module.rbs +1856 -0
  66. data/core/nil_class.rbs +210 -0
  67. data/core/numeric.rbs +832 -0
  68. data/core/object.rbs +108 -0
  69. data/core/object_space/weak_key_map.rbs +166 -0
  70. data/core/object_space.rbs +197 -0
  71. data/core/pathname.rbs +1322 -0
  72. data/core/proc.rbs +905 -0
  73. data/core/process.rbs +2316 -0
  74. data/core/ractor.rbs +924 -0
  75. data/core/random.rbs +255 -0
  76. data/core/range.rbs +1209 -0
  77. data/core/rational.rbs +502 -0
  78. data/core/rb_config.rbs +88 -0
  79. data/core/rbs/ops.rbs +154 -0
  80. data/core/rbs/unnamed/argf.rbs +1236 -0
  81. data/core/rbs/unnamed/env_class.rbs +1214 -0
  82. data/core/rbs/unnamed/main_class.rbs +123 -0
  83. data/core/rbs/unnamed/random.rbs +186 -0
  84. data/core/refinement.rbs +59 -0
  85. data/core/regexp.rbs +1974 -0
  86. data/core/ruby.rbs +53 -0
  87. data/core/ruby_vm.rbs +809 -0
  88. data/core/rubygems/basic_specification.rbs +6 -0
  89. data/core/rubygems/config_file.rbs +38 -0
  90. data/core/rubygems/dependency_installer.rbs +6 -0
  91. data/core/rubygems/errors.rbs +109 -0
  92. data/core/rubygems/installer.rbs +15 -0
  93. data/core/rubygems/path_support.rbs +6 -0
  94. data/core/rubygems/platform.rbs +7 -0
  95. data/core/rubygems/request_set.rbs +49 -0
  96. data/core/rubygems/requirement.rbs +148 -0
  97. data/core/rubygems/rubygems.rbs +1105 -0
  98. data/core/rubygems/source_list.rbs +15 -0
  99. data/core/rubygems/specification.rbs +23 -0
  100. data/core/rubygems/stream_ui.rbs +5 -0
  101. data/core/rubygems/uninstaller.rbs +10 -0
  102. data/core/rubygems/version.rbs +293 -0
  103. data/core/set.rbs +751 -0
  104. data/core/signal.rbs +110 -0
  105. data/core/string.rbs +5532 -0
  106. data/core/struct.rbs +668 -0
  107. data/core/symbol.rbs +482 -0
  108. data/core/thread.rbs +1826 -0
  109. data/core/thread_group.rbs +79 -0
  110. data/core/time.rbs +1793 -0
  111. data/core/trace_point.rbs +483 -0
  112. data/core/true_class.rbs +98 -0
  113. data/core/unbound_method.rbs +337 -0
  114. data/core/warning.rbs +87 -0
  115. data/docs/CONTRIBUTING.md +107 -0
  116. data/docs/aliases.md +79 -0
  117. data/docs/architecture.md +110 -0
  118. data/docs/collection.md +192 -0
  119. data/docs/config.md +171 -0
  120. data/docs/data_and_struct.md +86 -0
  121. data/docs/encoding.md +56 -0
  122. data/docs/gem.md +56 -0
  123. data/docs/inline.md +634 -0
  124. data/docs/rbs_by_example.md +309 -0
  125. data/docs/repo.md +125 -0
  126. data/docs/rust.md +96 -0
  127. data/docs/sigs.md +167 -0
  128. data/docs/stdlib.md +147 -0
  129. data/docs/syntax.md +940 -0
  130. data/docs/tools.md +17 -0
  131. data/docs/type_fingerprint.md +21 -0
  132. data/docs/wasm_serialization.md +80 -0
  133. data/exe/rbs +7 -0
  134. data/ext/rbs_extension/ast_translation.c +1855 -0
  135. data/ext/rbs_extension/ast_translation.h +41 -0
  136. data/ext/rbs_extension/class_constants.c +187 -0
  137. data/ext/rbs_extension/class_constants.h +104 -0
  138. data/ext/rbs_extension/compat.h +10 -0
  139. data/ext/rbs_extension/extconf.rb +40 -0
  140. data/ext/rbs_extension/legacy_location.c +294 -0
  141. data/ext/rbs_extension/legacy_location.h +82 -0
  142. data/ext/rbs_extension/main.c +613 -0
  143. data/ext/rbs_extension/rbs_extension.h +16 -0
  144. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  145. data/ext/rbs_extension/rbs_string_bridging.h +24 -0
  146. data/goodcheck.yml +91 -0
  147. data/include/rbs/ast.h +1047 -0
  148. data/include/rbs/defines.h +99 -0
  149. data/include/rbs/lexer.h +207 -0
  150. data/include/rbs/location.h +40 -0
  151. data/include/rbs/parser.h +153 -0
  152. data/include/rbs/serialize.h +39 -0
  153. data/include/rbs/string.h +47 -0
  154. data/include/rbs/util/rbs_allocator.h +59 -0
  155. data/include/rbs/util/rbs_assert.h +20 -0
  156. data/include/rbs/util/rbs_buffer.h +83 -0
  157. data/include/rbs/util/rbs_constant_pool.h +155 -0
  158. data/include/rbs/util/rbs_encoding.h +282 -0
  159. data/include/rbs/util/rbs_unescape.h +24 -0
  160. data/include/rbs.h +14 -0
  161. data/lib/rbs/ancestor_graph.rb +92 -0
  162. data/lib/rbs/annotate/annotations.rb +199 -0
  163. data/lib/rbs/annotate/formatter.rb +82 -0
  164. data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
  165. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  166. data/lib/rbs/annotate.rb +8 -0
  167. data/lib/rbs/ast/annotation.rb +29 -0
  168. data/lib/rbs/ast/comment.rb +29 -0
  169. data/lib/rbs/ast/declarations.rb +472 -0
  170. data/lib/rbs/ast/directives.rb +49 -0
  171. data/lib/rbs/ast/members.rb +451 -0
  172. data/lib/rbs/ast/ruby/annotations.rb +451 -0
  173. data/lib/rbs/ast/ruby/comment_block.rb +247 -0
  174. data/lib/rbs/ast/ruby/declarations.rb +291 -0
  175. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  176. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  177. data/lib/rbs/ast/ruby/members.rb +762 -0
  178. data/lib/rbs/ast/type_param.rb +235 -0
  179. data/lib/rbs/ast/visitor.rb +137 -0
  180. data/lib/rbs/buffer.rb +189 -0
  181. data/lib/rbs/builtin_names.rb +58 -0
  182. data/lib/rbs/cli/colored_io.rb +48 -0
  183. data/lib/rbs/cli/diff.rb +84 -0
  184. data/lib/rbs/cli/validate.rb +294 -0
  185. data/lib/rbs/cli.rb +1253 -0
  186. data/lib/rbs/collection/cleaner.rb +38 -0
  187. data/lib/rbs/collection/config/lockfile.rb +92 -0
  188. data/lib/rbs/collection/config/lockfile_generator.rb +269 -0
  189. data/lib/rbs/collection/config.rb +81 -0
  190. data/lib/rbs/collection/installer.rb +32 -0
  191. data/lib/rbs/collection/sources/base.rb +14 -0
  192. data/lib/rbs/collection/sources/git.rb +265 -0
  193. data/lib/rbs/collection/sources/local.rb +81 -0
  194. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  195. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  196. data/lib/rbs/collection/sources.rb +38 -0
  197. data/lib/rbs/collection.rb +16 -0
  198. data/lib/rbs/constant.rb +28 -0
  199. data/lib/rbs/definition.rb +415 -0
  200. data/lib/rbs/definition_builder/ancestor_builder.rb +678 -0
  201. data/lib/rbs/definition_builder/method_builder.rb +295 -0
  202. data/lib/rbs/definition_builder.rb +1054 -0
  203. data/lib/rbs/diff.rb +131 -0
  204. data/lib/rbs/environment/class_entry.rb +69 -0
  205. data/lib/rbs/environment/module_entry.rb +66 -0
  206. data/lib/rbs/environment/use_map.rb +77 -0
  207. data/lib/rbs/environment.rb +1028 -0
  208. data/lib/rbs/environment_loader.rb +167 -0
  209. data/lib/rbs/environment_walker.rb +155 -0
  210. data/lib/rbs/errors.rb +634 -0
  211. data/lib/rbs/factory.rb +18 -0
  212. data/lib/rbs/file_finder.rb +28 -0
  213. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  214. data/lib/rbs/inline_parser.rb +568 -0
  215. data/lib/rbs/location_aux.rb +170 -0
  216. data/lib/rbs/locator.rb +247 -0
  217. data/lib/rbs/method_type.rb +145 -0
  218. data/lib/rbs/namespace.rb +154 -0
  219. data/lib/rbs/parser/lex_result.rb +15 -0
  220. data/lib/rbs/parser/token.rb +23 -0
  221. data/lib/rbs/parser_aux.rb +142 -0
  222. data/lib/rbs/prototype/helpers.rb +197 -0
  223. data/lib/rbs/prototype/node_usage.rb +99 -0
  224. data/lib/rbs/prototype/rb.rb +816 -0
  225. data/lib/rbs/prototype/rbi.rb +625 -0
  226. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  227. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  228. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  229. data/lib/rbs/prototype/runtime.rb +680 -0
  230. data/lib/rbs/repository.rb +127 -0
  231. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  232. data/lib/rbs/resolver/type_name_resolver.rb +167 -0
  233. data/lib/rbs/rewriter.rb +70 -0
  234. data/lib/rbs/sorter.rb +198 -0
  235. data/lib/rbs/source.rb +99 -0
  236. data/lib/rbs/substitution.rb +83 -0
  237. data/lib/rbs/subtractor.rb +204 -0
  238. data/lib/rbs/test/errors.rb +80 -0
  239. data/lib/rbs/test/guaranteed.rb +30 -0
  240. data/lib/rbs/test/hook.rb +212 -0
  241. data/lib/rbs/test/observer.rb +19 -0
  242. data/lib/rbs/test/setup.rb +84 -0
  243. data/lib/rbs/test/setup_helper.rb +50 -0
  244. data/lib/rbs/test/tester.rb +167 -0
  245. data/lib/rbs/test/type_check.rb +457 -0
  246. data/lib/rbs/test.rb +112 -0
  247. data/lib/rbs/type_alias_dependency.rb +100 -0
  248. data/lib/rbs/type_alias_regularity.rb +126 -0
  249. data/lib/rbs/type_name.rb +122 -0
  250. data/lib/rbs/types.rb +1604 -0
  251. data/lib/rbs/unit_test/convertibles.rb +177 -0
  252. data/lib/rbs/unit_test/spy.rb +138 -0
  253. data/lib/rbs/unit_test/type_assertions.rb +383 -0
  254. data/lib/rbs/unit_test/with_aliases.rb +145 -0
  255. data/lib/rbs/unit_test.rb +6 -0
  256. data/lib/rbs/validator.rb +186 -0
  257. data/lib/rbs/variance_calculator.rb +189 -0
  258. data/lib/rbs/vendorer.rb +71 -0
  259. data/lib/rbs/version.rb +5 -0
  260. data/lib/rbs/wasm/deserializer.rb +213 -0
  261. data/lib/rbs/wasm/jars/asm-analysis.jar +0 -0
  262. data/lib/rbs/wasm/jars/asm-commons.jar +0 -0
  263. data/lib/rbs/wasm/jars/asm-tree.jar +0 -0
  264. data/lib/rbs/wasm/jars/asm-util.jar +0 -0
  265. data/lib/rbs/wasm/jars/asm.jar +0 -0
  266. data/lib/rbs/wasm/jars/compiler.jar +0 -0
  267. data/lib/rbs/wasm/jars/log.jar +0 -0
  268. data/lib/rbs/wasm/jars/runtime.jar +0 -0
  269. data/lib/rbs/wasm/jars/wasi.jar +0 -0
  270. data/lib/rbs/wasm/jars/wasm.jar +0 -0
  271. data/lib/rbs/wasm/location.rb +61 -0
  272. data/lib/rbs/wasm/parser.rb +137 -0
  273. data/lib/rbs/wasm/rbs_parser.wasm +0 -0
  274. data/lib/rbs/wasm/runtime.rb +217 -0
  275. data/lib/rbs/wasm/serialization_schema.rb +110 -0
  276. data/lib/rbs/writer.rb +424 -0
  277. data/lib/rbs.rb +117 -0
  278. data/lib/rdoc/discover.rb +20 -0
  279. data/lib/rdoc_plugin/parser.rb +163 -0
  280. data/rbs.gemspec +68 -0
  281. data/schema/annotation.json +14 -0
  282. data/schema/comment.json +26 -0
  283. data/schema/decls.json +326 -0
  284. data/schema/function.json +87 -0
  285. data/schema/location.json +56 -0
  286. data/schema/members.json +266 -0
  287. data/schema/methodType.json +50 -0
  288. data/schema/typeParam.json +52 -0
  289. data/schema/types.json +317 -0
  290. data/sig/ancestor_builder.rbs +163 -0
  291. data/sig/ancestor_graph.rbs +60 -0
  292. data/sig/annotate/annotations.rbs +102 -0
  293. data/sig/annotate/formatter.rbs +24 -0
  294. data/sig/annotate/rdoc_annotater.rbs +85 -0
  295. data/sig/annotate/rdoc_source.rbs +32 -0
  296. data/sig/annotation.rbs +27 -0
  297. data/sig/ast/ruby/annotations.rbs +470 -0
  298. data/sig/ast/ruby/comment_block.rbs +127 -0
  299. data/sig/ast/ruby/declarations.rbs +158 -0
  300. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  301. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  302. data/sig/ast/ruby/members.rbs +198 -0
  303. data/sig/buffer.rbs +108 -0
  304. data/sig/builtin_names.rbs +44 -0
  305. data/sig/cli/colored_io.rbs +15 -0
  306. data/sig/cli/diff.rbs +15 -0
  307. data/sig/cli/validate.rbs +47 -0
  308. data/sig/cli.rbs +89 -0
  309. data/sig/collection/cleaner.rbs +13 -0
  310. data/sig/collection/config/lockfile.rbs +74 -0
  311. data/sig/collection/config/lockfile_generator.rbs +68 -0
  312. data/sig/collection/config.rbs +46 -0
  313. data/sig/collection/installer.rbs +17 -0
  314. data/sig/collection/sources.rbs +214 -0
  315. data/sig/collection.rbs +4 -0
  316. data/sig/comment.rbs +26 -0
  317. data/sig/constant.rbs +21 -0
  318. data/sig/declarations.rbs +274 -0
  319. data/sig/definition.rbs +232 -0
  320. data/sig/definition_builder.rbs +181 -0
  321. data/sig/diff.rbs +28 -0
  322. data/sig/directives.rbs +77 -0
  323. data/sig/environment/class_entry.rbs +50 -0
  324. data/sig/environment/module_entry.rbs +50 -0
  325. data/sig/environment.rbs +286 -0
  326. data/sig/environment_loader.rbs +111 -0
  327. data/sig/environment_walker.rbs +65 -0
  328. data/sig/errors.rbs +408 -0
  329. data/sig/factory.rbs +5 -0
  330. data/sig/file_finder.rbs +28 -0
  331. data/sig/inline_parser/comment_association.rbs +71 -0
  332. data/sig/inline_parser.rbs +126 -0
  333. data/sig/location.rbs +135 -0
  334. data/sig/locator.rbs +56 -0
  335. data/sig/manifest.yaml +5 -0
  336. data/sig/members.rbs +258 -0
  337. data/sig/method_builder.rbs +89 -0
  338. data/sig/method_types.rbs +58 -0
  339. data/sig/namespace.rbs +161 -0
  340. data/sig/parser.rbs +164 -0
  341. data/sig/prototype/helpers.rbs +29 -0
  342. data/sig/prototype/node_usage.rbs +20 -0
  343. data/sig/prototype/rb.rbs +96 -0
  344. data/sig/prototype/rbi.rbs +75 -0
  345. data/sig/prototype/runtime.rbs +182 -0
  346. data/sig/rbs.rbs +21 -0
  347. data/sig/rdoc/rbs.rbs +67 -0
  348. data/sig/repository.rbs +85 -0
  349. data/sig/resolver/constant_resolver.rbs +92 -0
  350. data/sig/resolver/context.rbs +34 -0
  351. data/sig/resolver/type_name_resolver.rbs +61 -0
  352. data/sig/rewriter.rbs +45 -0
  353. data/sig/shims/bundler.rbs +38 -0
  354. data/sig/shims/enumerable.rbs +5 -0
  355. data/sig/shims/rubygems.rbs +19 -0
  356. data/sig/sorter.rbs +41 -0
  357. data/sig/source.rbs +48 -0
  358. data/sig/substitution.rbs +48 -0
  359. data/sig/subtractor.rbs +37 -0
  360. data/sig/test/errors.rbs +52 -0
  361. data/sig/test/guranteed.rbs +9 -0
  362. data/sig/test/type_check.rbs +19 -0
  363. data/sig/test.rbs +82 -0
  364. data/sig/type_alias_dependency.rbs +53 -0
  365. data/sig/type_alias_regularity.rbs +98 -0
  366. data/sig/type_param.rbs +115 -0
  367. data/sig/typename.rbs +89 -0
  368. data/sig/types.rbs +578 -0
  369. data/sig/unit_test/convertibles.rbs +154 -0
  370. data/sig/unit_test/spy.rbs +22 -0
  371. data/sig/unit_test/type_assertions.rbs +211 -0
  372. data/sig/unit_test/with_aliases.rbs +136 -0
  373. data/sig/use_map.rbs +35 -0
  374. data/sig/util.rbs +9 -0
  375. data/sig/validator.rbs +63 -0
  376. data/sig/variance_calculator.rbs +87 -0
  377. data/sig/vendorer.rbs +51 -0
  378. data/sig/version.rbs +3 -0
  379. data/sig/visitor.rbs +47 -0
  380. data/sig/wasm/deserializer.rbs +66 -0
  381. data/sig/wasm/serialization_schema.rbs +13 -0
  382. data/sig/writer.rbs +127 -0
  383. data/src/ast.c +1628 -0
  384. data/src/lexer.c +3217 -0
  385. data/src/lexer.re +155 -0
  386. data/src/lexstate.c +217 -0
  387. data/src/location.c +31 -0
  388. data/src/parser.c +4255 -0
  389. data/src/serialize.c +958 -0
  390. data/src/string.c +41 -0
  391. data/src/util/rbs_allocator.c +162 -0
  392. data/src/util/rbs_assert.c +19 -0
  393. data/src/util/rbs_buffer.c +54 -0
  394. data/src/util/rbs_constant_pool.c +268 -0
  395. data/src/util/rbs_encoding.c +21308 -0
  396. data/src/util/rbs_unescape.c +167 -0
  397. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  398. data/stdlib/abbrev/0/array.rbs +26 -0
  399. data/stdlib/base64/0/base64.rbs +355 -0
  400. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  401. data/stdlib/bigdecimal/0/big_decimal.rbs +1647 -0
  402. data/stdlib/bigdecimal-math/0/big_math.rbs +280 -0
  403. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  404. data/stdlib/cgi/0/core.rbs +911 -0
  405. data/stdlib/cgi/0/manifest.yaml +4 -0
  406. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  407. data/stdlib/coverage/0/coverage.rbs +266 -0
  408. data/stdlib/csv/0/csv.rbs +3776 -0
  409. data/stdlib/csv/0/manifest.yaml +3 -0
  410. data/stdlib/date/0/date.rbs +1598 -0
  411. data/stdlib/date/0/date_time.rbs +617 -0
  412. data/stdlib/date/0/time.rbs +26 -0
  413. data/stdlib/dbm/0/dbm.rbs +421 -0
  414. data/stdlib/delegate/0/delegator.rbs +187 -0
  415. data/stdlib/delegate/0/kernel.rbs +47 -0
  416. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  417. data/stdlib/did_you_mean/0/did_you_mean.rbs +344 -0
  418. data/stdlib/digest/0/digest.rbs +687 -0
  419. data/stdlib/erb/0/erb.rbs +933 -0
  420. data/stdlib/etc/0/etc.rbs +884 -0
  421. data/stdlib/fileutils/0/fileutils.rbs +1753 -0
  422. data/stdlib/find/0/find.rbs +49 -0
  423. data/stdlib/forwardable/0/forwardable.rbs +271 -0
  424. data/stdlib/io-console/0/io-console.rbs +414 -0
  425. data/stdlib/ipaddr/0/ipaddr.rbs +436 -0
  426. data/stdlib/json/0/json.rbs +1963 -0
  427. data/stdlib/kconv/0/kconv.rbs +166 -0
  428. data/stdlib/logger/0/formatter.rbs +45 -0
  429. data/stdlib/logger/0/log_device.rbs +100 -0
  430. data/stdlib/logger/0/logger.rbs +796 -0
  431. data/stdlib/logger/0/manifest.yaml +2 -0
  432. data/stdlib/logger/0/period.rbs +17 -0
  433. data/stdlib/logger/0/severity.rbs +34 -0
  434. data/stdlib/minitest/0/kernel.rbs +42 -0
  435. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  436. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  437. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  438. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  439. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  440. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  441. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  442. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  443. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  444. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  445. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  446. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  447. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  448. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  449. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  450. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  451. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  452. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  453. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  454. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  455. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  456. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  457. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  458. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  459. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  460. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  461. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  462. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  463. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  464. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  465. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  466. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  467. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  468. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  469. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  470. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  471. data/stdlib/minitest/0/minitest.rbs +115 -0
  472. data/stdlib/monitor/0/monitor.rbs +363 -0
  473. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  474. data/stdlib/net-http/0/manifest.yaml +3 -0
  475. data/stdlib/net-http/0/net-http.rbs +5580 -0
  476. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  477. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  478. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  479. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  480. data/stdlib/nkf/0/nkf.rbs +402 -0
  481. data/stdlib/objspace/0/objspace.rbs +470 -0
  482. data/stdlib/observable/0/observable.rbs +217 -0
  483. data/stdlib/open-uri/0/manifest.yaml +4 -0
  484. data/stdlib/open-uri/0/open-uri.rbs +433 -0
  485. data/stdlib/open3/0/open3.rbs +606 -0
  486. data/stdlib/openssl/0/manifest.yaml +3 -0
  487. data/stdlib/openssl/0/openssl.rbs +12231 -0
  488. data/stdlib/optparse/0/optparse.rbs +1734 -0
  489. data/stdlib/pathname/0/pathname.rbs +36 -0
  490. data/stdlib/pp/0/manifest.yaml +2 -0
  491. data/stdlib/pp/0/pp.rbs +301 -0
  492. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  493. data/stdlib/pstore/0/pstore.rbs +608 -0
  494. data/stdlib/psych/0/core_ext.rbs +12 -0
  495. data/stdlib/psych/0/dbm.rbs +237 -0
  496. data/stdlib/psych/0/manifest.yaml +3 -0
  497. data/stdlib/psych/0/psych.rbs +455 -0
  498. data/stdlib/psych/0/store.rbs +57 -0
  499. data/stdlib/pty/0/pty.rbs +240 -0
  500. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  501. data/stdlib/rdoc/0/code_object.rbs +52 -0
  502. data/stdlib/rdoc/0/comment.rbs +61 -0
  503. data/stdlib/rdoc/0/context.rbs +153 -0
  504. data/stdlib/rdoc/0/markup.rbs +117 -0
  505. data/stdlib/rdoc/0/options.rbs +76 -0
  506. data/stdlib/rdoc/0/parser.rbs +56 -0
  507. data/stdlib/rdoc/0/rdoc.rbs +393 -0
  508. data/stdlib/rdoc/0/ri.rbs +17 -0
  509. data/stdlib/rdoc/0/store.rbs +48 -0
  510. data/stdlib/rdoc/0/top_level.rbs +97 -0
  511. data/stdlib/resolv/0/manifest.yaml +3 -0
  512. data/stdlib/resolv/0/resolv.rbs +1787 -0
  513. data/stdlib/ripper/0/ripper.rbs +1654 -0
  514. data/stdlib/securerandom/0/manifest.yaml +2 -0
  515. data/stdlib/securerandom/0/securerandom.rbs +49 -0
  516. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  517. data/stdlib/singleton/0/singleton.rbs +134 -0
  518. data/stdlib/socket/0/addrinfo.rbs +666 -0
  519. data/stdlib/socket/0/basic_socket.rbs +590 -0
  520. data/stdlib/socket/0/constants.rbs +2295 -0
  521. data/stdlib/socket/0/ip_socket.rbs +94 -0
  522. data/stdlib/socket/0/socket.rbs +4170 -0
  523. data/stdlib/socket/0/socket_error.rbs +5 -0
  524. data/stdlib/socket/0/tcp_server.rbs +192 -0
  525. data/stdlib/socket/0/tcp_socket.rbs +87 -0
  526. data/stdlib/socket/0/udp_socket.rbs +133 -0
  527. data/stdlib/socket/0/unix_server.rbs +169 -0
  528. data/stdlib/socket/0/unix_socket.rbs +172 -0
  529. data/stdlib/stringio/0/stringio.rbs +1681 -0
  530. data/stdlib/strscan/0/string_scanner.rbs +1648 -0
  531. data/stdlib/tempfile/0/tempfile.rbs +483 -0
  532. data/stdlib/time/0/time.rbs +434 -0
  533. data/stdlib/timeout/0/timeout.rbs +137 -0
  534. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  535. data/stdlib/tsort/0/cyclic.rbs +8 -0
  536. data/stdlib/tsort/0/interfaces.rbs +20 -0
  537. data/stdlib/tsort/0/tsort.rbs +410 -0
  538. data/stdlib/uri/0/common.rbs +621 -0
  539. data/stdlib/uri/0/file.rbs +118 -0
  540. data/stdlib/uri/0/ftp.rbs +13 -0
  541. data/stdlib/uri/0/generic.rbs +1116 -0
  542. data/stdlib/uri/0/http.rbs +104 -0
  543. data/stdlib/uri/0/https.rbs +14 -0
  544. data/stdlib/uri/0/ldap.rbs +230 -0
  545. data/stdlib/uri/0/ldaps.rbs +14 -0
  546. data/stdlib/uri/0/mailto.rbs +92 -0
  547. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  548. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  549. data/stdlib/uri/0/ws.rbs +13 -0
  550. data/stdlib/uri/0/wss.rbs +9 -0
  551. data/stdlib/yaml/0/manifest.yaml +2 -0
  552. data/stdlib/yaml/0/yaml.rbs +1 -0
  553. data/stdlib/zlib/0/buf_error.rbs +10 -0
  554. data/stdlib/zlib/0/data_error.rbs +10 -0
  555. data/stdlib/zlib/0/deflate.rbs +211 -0
  556. data/stdlib/zlib/0/error.rbs +20 -0
  557. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  558. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  559. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  560. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  561. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  562. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  563. data/stdlib/zlib/0/gzip_writer.rbs +168 -0
  564. data/stdlib/zlib/0/inflate.rbs +180 -0
  565. data/stdlib/zlib/0/mem_error.rbs +10 -0
  566. data/stdlib/zlib/0/need_dict.rbs +13 -0
  567. data/stdlib/zlib/0/stream_end.rbs +11 -0
  568. data/stdlib/zlib/0/stream_error.rbs +11 -0
  569. data/stdlib/zlib/0/version_error.rbs +11 -0
  570. data/stdlib/zlib/0/zlib.rbs +449 -0
  571. data/stdlib/zlib/0/zstream.rbs +201 -0
  572. data/wasm/README.md +59 -0
  573. data/wasm/rbs_wasm.c +411 -0
  574. metadata +660 -0
@@ -0,0 +1,687 @@
1
+ # <!-- rdoc-file=ext/digest/digest.c -->
2
+ # This module provides a framework for message digest libraries.
3
+ #
4
+ # You may want to look at OpenSSL::Digest as it supports more algorithms.
5
+ #
6
+ # A cryptographic hash function is a procedure that takes data and returns a
7
+ # fixed bit string: the hash value, also known as *digest*. Hash functions are
8
+ # also called one-way functions, it is easy to compute a digest from a message,
9
+ # but it is infeasible to generate a message from a digest.
10
+ #
11
+ # ## Examples
12
+ #
13
+ # require 'digest'
14
+ #
15
+ # # Compute a complete digest
16
+ # Digest::SHA256.digest 'message' #=> "\xABS\n\x13\xE4Y..."
17
+ #
18
+ # sha256 = Digest::SHA256.new
19
+ # sha256.digest 'message' #=> "\xABS\n\x13\xE4Y..."
20
+ #
21
+ # # Other encoding formats
22
+ # Digest::SHA256.hexdigest 'message' #=> "ab530a13e459..."
23
+ # Digest::SHA256.base64digest 'message' #=> "q1MKE+RZFJgr..."
24
+ #
25
+ # # Compute digest by chunks
26
+ # md5 = Digest::MD5.new
27
+ # md5.update 'message1'
28
+ # md5 << 'message2' # << is an alias for update
29
+ #
30
+ # md5.hexdigest #=> "94af09c09bb9..."
31
+ #
32
+ # # Compute digest for a file
33
+ # sha256 = Digest::SHA256.file 'testfile'
34
+ # sha256.hexdigest
35
+ #
36
+ # Additionally digests can be encoded in "bubble babble" format as a sequence of
37
+ # consonants and vowels which is more recognizable and comparable than a
38
+ # hexadecimal digest.
39
+ #
40
+ # require 'digest/bubblebabble'
41
+ #
42
+ # Digest::SHA256.bubblebabble 'message' #=> "xopoh-fedac-fenyh-..."
43
+ #
44
+ # See the bubble babble specification at
45
+ # http://web.mit.edu/kenta/www/one/bubblebabble/spec/jrtrjwzi/draft-huima-01.txt
46
+ # .
47
+ #
48
+ # ## Digest algorithms
49
+ #
50
+ # Different digest algorithms (or hash functions) are available:
51
+ #
52
+ # MD5
53
+ # : See RFC 1321 The MD5 Message-Digest Algorithm
54
+ #
55
+ # RIPEMD-160
56
+ # : As Digest::RMD160. See
57
+ # http://homes.esat.kuleuven.be/~bosselae/ripemd160.html.
58
+ #
59
+ # SHA1
60
+ # : See FIPS 180 Secure Hash Standard.
61
+ #
62
+ # SHA2 family
63
+ # : See FIPS 180 Secure Hash Standard which defines the following algorithms:
64
+ # * SHA512
65
+ # * SHA384
66
+ # * SHA256
67
+ #
68
+ #
69
+ # The latest versions of the FIPS publications can be found here:
70
+ # http://csrc.nist.gov/publications/PubsFIPS.html.
71
+ #
72
+ module Digest
73
+ # <!--
74
+ # rdoc-file=ext/digest/bubblebabble/bubblebabble.c
75
+ # - Digest.bubblebabble(string) -> bubblebabble_string
76
+ # -->
77
+ # Returns a BubbleBabble encoded version of a given *string*.
78
+ #
79
+ def self.bubblebabble: (string) -> String
80
+
81
+ def self.const_missing: (Symbol name) -> singleton(::Digest::Base)
82
+
83
+ # <!--
84
+ # rdoc-file=ext/digest/digest.c
85
+ # - Digest.hexencode(string) -> hexencoded_string
86
+ # -->
87
+ # Generates a hex-encoded version of a given *string*.
88
+ #
89
+ def self.hexencode: (string) -> String
90
+
91
+ private
92
+
93
+ def bubblebabble: (string) -> String
94
+
95
+ def hexencode: (string) -> String
96
+ end
97
+
98
+ # <!-- rdoc-file=ext/digest/lib/digest.rb -->
99
+ # A mutex for Digest().
100
+ #
101
+ Digest::REQUIRE_MUTEX: Thread::Mutex
102
+
103
+ # <!-- rdoc-file=ext/digest/digest.c -->
104
+ # This module provides instance methods for a digest implementation object to
105
+ # calculate message digest values.
106
+ #
107
+ module Digest::Instance
108
+ # <!-- rdoc-file=ext/digest/digest.c -->
109
+ # Updates the digest using a given *string* and returns self.
110
+ #
111
+ # The update() method and the left-shift operator are overridden by each
112
+ # implementation subclass. (One should be an alias for the other)
113
+ #
114
+ def <<: (string) -> self
115
+
116
+ # <!--
117
+ # rdoc-file=ext/digest/digest.c
118
+ # - digest_obj == another_digest_obj -> boolean
119
+ # - digest_obj == string -> boolean
120
+ # -->
121
+ # If a string is given, checks whether it is equal to the hex-encoded hash value
122
+ # of the digest object. If another digest instance is given, checks whether
123
+ # they have the same hash value. Otherwise returns false.
124
+ #
125
+ def ==: (instance | string) -> bool
126
+
127
+ # <!--
128
+ # rdoc-file=ext/digest/lib/digest.rb
129
+ # - base64digest(str = nil)
130
+ # -->
131
+ # If none is given, returns the resulting hash value of the digest in a base64
132
+ # encoded form, keeping the digest's state.
133
+ #
134
+ # If a `string` is given, returns the hash value for the given `string` in a
135
+ # base64 encoded form, resetting the digest to the initial state before and
136
+ # after the process.
137
+ #
138
+ # In either case, the return value is properly padded with '=' and contains no
139
+ # line feeds.
140
+ #
141
+ def base64digest: (?string? str) -> String
142
+
143
+ # <!--
144
+ # rdoc-file=ext/digest/lib/digest.rb
145
+ # - base64digest!()
146
+ # -->
147
+ # Returns the resulting hash value and resets the digest to the initial state.
148
+ #
149
+ def base64digest!: () -> String
150
+
151
+ # <!--
152
+ # rdoc-file=ext/digest/digest.c
153
+ # - digest_obj.block_length -> integer
154
+ # -->
155
+ # Returns the block length of the digest.
156
+ #
157
+ # This method is overridden by each implementation subclass.
158
+ #
159
+ def block_length: () -> Integer
160
+
161
+ # <!--
162
+ # rdoc-file=ext/digest/bubblebabble/bubblebabble.c
163
+ # - digest_obj.bubblebabble -> hash_string
164
+ # -->
165
+ # Returns the resulting hash value in a Bubblebabble encoded form.
166
+ #
167
+ def bubblebabble: () -> String
168
+
169
+ # <!--
170
+ # rdoc-file=ext/digest/digest.c
171
+ # - digest_obj.digest -> string
172
+ # - digest_obj.digest(string) -> string
173
+ # -->
174
+ # If none is given, returns the resulting hash value of the digest, keeping the
175
+ # digest's state.
176
+ #
177
+ # If a *string* is given, returns the hash value for the given *string*,
178
+ # resetting the digest to the initial state before and after the process.
179
+ #
180
+ def digest: (?string) -> String
181
+
182
+ # <!--
183
+ # rdoc-file=ext/digest/digest.c
184
+ # - digest_obj.digest! -> string
185
+ # -->
186
+ # Returns the resulting hash value and resets the digest to the initial state.
187
+ #
188
+ def digest!: () -> String
189
+
190
+ # <!--
191
+ # rdoc-file=ext/digest/digest.c
192
+ # - digest_obj.digest_length -> integer
193
+ # -->
194
+ # Returns the length of the hash value of the digest.
195
+ #
196
+ # This method should be overridden by each implementation subclass. If not,
197
+ # digest_obj.digest().length() is returned.
198
+ #
199
+ def digest_length: () -> Integer
200
+
201
+ # <!--
202
+ # rdoc-file=ext/digest/lib/digest.rb
203
+ # - file(name)
204
+ # -->
205
+ # Updates the digest with the contents of a given file *name* and returns self.
206
+ #
207
+ def file: (string name) -> instance
208
+
209
+ # <!--
210
+ # rdoc-file=ext/digest/digest.c
211
+ # - digest_obj.hexdigest -> string
212
+ # - digest_obj.hexdigest(string) -> string
213
+ # -->
214
+ # If none is given, returns the resulting hash value of the digest in a
215
+ # hex-encoded form, keeping the digest's state.
216
+ #
217
+ # If a *string* is given, returns the hash value for the given *string* in a
218
+ # hex-encoded form, resetting the digest to the initial state before and after
219
+ # the process.
220
+ #
221
+ def hexdigest: (?string) -> String
222
+
223
+ # <!--
224
+ # rdoc-file=ext/digest/digest.c
225
+ # - digest_obj.hexdigest! -> string
226
+ # -->
227
+ # Returns the resulting hash value in a hex-encoded form and resets the digest
228
+ # to the initial state.
229
+ #
230
+ def hexdigest!: () -> String
231
+
232
+ # <!--
233
+ # rdoc-file=ext/digest/digest.c
234
+ # - digest_obj.inspect -> string
235
+ # -->
236
+ # Creates a printable version of the digest object.
237
+ #
238
+ def inspect: () -> String
239
+
240
+ # <!--
241
+ # rdoc-file=ext/digest/digest.c
242
+ # - digest_obj.length -> integer
243
+ # - digest_obj.size -> integer
244
+ # -->
245
+ # Returns digest_obj.digest_length().
246
+ #
247
+ def length: () -> Integer
248
+
249
+ # <!--
250
+ # rdoc-file=ext/digest/digest.c
251
+ # - digest_obj.new -> another_digest_obj
252
+ # -->
253
+ # Returns a new, initialized copy of the digest object. Equivalent to
254
+ # digest_obj.clone().reset().
255
+ #
256
+ def new: () -> instance
257
+
258
+ # <!--
259
+ # rdoc-file=ext/digest/digest.c
260
+ # - digest_obj.reset -> digest_obj
261
+ # -->
262
+ # Resets the digest to the initial state and returns self.
263
+ #
264
+ # This method is overridden by each implementation subclass.
265
+ #
266
+ def reset: () -> self
267
+
268
+ # <!-- rdoc-file=ext/digest/digest.c -->
269
+ # Returns digest_obj.digest_length().
270
+ #
271
+ def size: () -> Integer
272
+
273
+ # <!--
274
+ # rdoc-file=ext/digest/digest.c
275
+ # - digest_obj.to_s -> string
276
+ # -->
277
+ # Returns digest_obj.hexdigest().
278
+ #
279
+ def to_s: () -> String
280
+
281
+ # <!--
282
+ # rdoc-file=ext/digest/digest.c
283
+ # - digest_obj.update(string) -> digest_obj
284
+ # - digest_obj << string -> digest_obj
285
+ # -->
286
+ # Updates the digest using a given *string* and returns self.
287
+ #
288
+ # The update() method and the left-shift operator are overridden by each
289
+ # implementation subclass. (One should be an alias for the other)
290
+ #
291
+ def update: (string) -> self
292
+
293
+ private
294
+
295
+ # <!--
296
+ # rdoc-file=ext/digest/digest.c
297
+ # - digest_obj.instance_eval { finish } -> digest_obj
298
+ # -->
299
+ # Finishes the digest and returns the resulting hash value.
300
+ #
301
+ # This method is overridden by each implementation subclass and often made
302
+ # private, because some of those subclasses may leave internal data
303
+ # uninitialized. Do not call this method from outside. Use #digest!() instead,
304
+ # which ensures that internal data be reset for security reasons.
305
+ #
306
+ def finish: () -> String
307
+ end
308
+
309
+ # <!-- rdoc-file=ext/digest/digest.c -->
310
+ # This module stands as a base class for digest implementation classes.
311
+ #
312
+ class Digest::Class
313
+ include ::Digest::Instance
314
+
315
+ # <!--
316
+ # rdoc-file=ext/digest/lib/digest.rb
317
+ # - base64digest(str, *args)
318
+ # -->
319
+ # Returns the base64 encoded hash value of a given *string*. The return value
320
+ # is properly padded with '=' and contains no line feeds.
321
+ #
322
+ def self.base64digest: (string str) -> String
323
+
324
+ # <!--
325
+ # rdoc-file=ext/digest/bubblebabble/bubblebabble.c
326
+ # - Digest::Class.bubblebabble(string, ...) -> hash_string
327
+ # -->
328
+ # Returns the BubbleBabble encoded hash value of a given *string*.
329
+ #
330
+ def self.bubblebabble: (string) -> String
331
+
332
+ # <!--
333
+ # rdoc-file=ext/digest/digest.c
334
+ # - Digest::Class.digest(string, *parameters) -> hash_string
335
+ # -->
336
+ # Returns the hash value of a given *string*. This is equivalent to
337
+ # Digest::Class.new(*parameters).digest(string), where extra *parameters*, if
338
+ # any, are passed through to the constructor and the *string* is passed to
339
+ # #digest().
340
+ #
341
+ def self.digest: (string) -> String
342
+
343
+ # <!--
344
+ # rdoc-file=ext/digest/lib/digest.rb
345
+ # - file(name, *args)
346
+ # -->
347
+ # Creates a digest object and reads a given file, *name*. Optional arguments are
348
+ # passed to the constructor of the digest class.
349
+ #
350
+ # p Digest::SHA256.file("X11R6.8.2-src.tar.bz2").hexdigest
351
+ # # => "f02e3c85572dc9ad7cb77c2a638e3be24cc1b5bea9fdbb0b0299c9668475c534"
352
+ #
353
+ def self.file: (string name) -> instance
354
+
355
+ # <!--
356
+ # rdoc-file=ext/digest/digest.c
357
+ # - Digest::Class.hexdigest(string[, ...]) -> hash_string
358
+ # -->
359
+ # Returns the hex-encoded hash value of a given *string*. This is almost
360
+ # equivalent to Digest.hexencode(Digest::Class.new(*parameters).digest(string)).
361
+ #
362
+ def self.hexdigest: (string) -> String
363
+
364
+ private
365
+
366
+ def initialize: () -> void
367
+ end
368
+
369
+ # <!-- rdoc-file=ext/digest/digest.c -->
370
+ # This abstract class provides a common interface to message digest
371
+ # implementation classes written in C.
372
+ #
373
+ # ## Write a Digest subclass in C
374
+ # Digest::Base provides a common interface to message digest classes written in
375
+ # C. These classes must provide a struct of type rb_digest_metadata_t:
376
+ # typedef int (*rb_digest_hash_init_func_t)(void *);
377
+ # typedef void (*rb_digest_hash_update_func_t)(void *, unsigned char *, size_t);
378
+ # typedef int (*rb_digest_hash_finish_func_t)(void *, unsigned char *);
379
+ #
380
+ # typedef struct {
381
+ # int api_version;
382
+ # size_t digest_len;
383
+ # size_t block_len;
384
+ # size_t ctx_size;
385
+ # rb_digest_hash_init_func_t init_func;
386
+ # rb_digest_hash_update_func_t update_func;
387
+ # rb_digest_hash_finish_func_t finish_func;
388
+ # } rb_digest_metadata_t;
389
+ #
390
+ # This structure must be set as an instance variable named `metadata` (without
391
+ # the +@+ in front of the name). By example:
392
+ # static const rb_digest_metadata_t sha1 = {
393
+ # RUBY_DIGEST_API_VERSION,
394
+ # SHA1_DIGEST_LENGTH,
395
+ # SHA1_BLOCK_LENGTH,
396
+ # sizeof(SHA1_CTX),
397
+ # (rb_digest_hash_init_func_t)SHA1_Init,
398
+ # (rb_digest_hash_update_func_t)SHA1_Update,
399
+ # (rb_digest_hash_finish_func_t)SHA1_Finish,
400
+ # };
401
+ #
402
+ # rb_ivar_set(cDigest_SHA1, rb_intern("metadata"),
403
+ # rb_digest_make_metadata(&sha1));
404
+ #
405
+ class Digest::Base < Digest::Class
406
+ # <!-- rdoc-file=ext/digest/digest.c -->
407
+ # Update the digest using given *string* and return `self`.
408
+ #
409
+ def <<: (string) -> self
410
+
411
+ # <!--
412
+ # rdoc-file=ext/digest/digest.c
413
+ # - digest_base.block_length -> Integer
414
+ # -->
415
+ # Return the block length of the digest in bytes.
416
+ #
417
+ def block_length: () -> Integer
418
+
419
+ # <!--
420
+ # rdoc-file=ext/digest/digest.c
421
+ # - digest_base.digest_length -> Integer
422
+ # -->
423
+ # Return the length of the hash value in bytes.
424
+ #
425
+ def digest_length: () -> Integer
426
+
427
+ # <!--
428
+ # rdoc-file=ext/digest/digest.c
429
+ # - digest_base.reset -> digest_base
430
+ # -->
431
+ # Reset the digest to its initial state and return `self`.
432
+ #
433
+ def reset: () -> self
434
+
435
+ %a{annotate:rdoc:skip}
436
+ alias update <<
437
+
438
+ private
439
+
440
+ def finish: () -> String
441
+
442
+ def initialize_copy: (self) -> self
443
+ end
444
+
445
+ # <!-- rdoc-file=ext/digest/sha1/sha1init.c -->
446
+ # A class for calculating message digests using the SHA-1 Secure Hash Algorithm
447
+ # by NIST (the US' National Institute of Standards and Technology), described in
448
+ # FIPS PUB 180-1.
449
+ #
450
+ # See Digest::Instance for digest API.
451
+ #
452
+ # SHA-1 calculates a digest of 160 bits (20 bytes).
453
+ #
454
+ # ## Examples
455
+ # require 'digest'
456
+ #
457
+ # # Compute a complete digest
458
+ # Digest::SHA1.hexdigest 'abc' #=> "a9993e36..."
459
+ #
460
+ # # Compute digest by chunks
461
+ # sha1 = Digest::SHA1.new # =>#<Digest::SHA1>
462
+ # sha1.update "ab"
463
+ # sha1 << "c" # alias for #update
464
+ # sha1.hexdigest # => "a9993e36..."
465
+ #
466
+ # # Use the same object to compute another digest
467
+ # sha1.reset
468
+ # sha1 << "message"
469
+ # sha1.hexdigest # => "6f9b9af3..."
470
+ #
471
+ class Digest::SHA1 < Digest::Base
472
+ end
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
+ private def finish: () -> String
540
+
541
+ # <!--
542
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
543
+ # - <<(str)
544
+ # -->
545
+ #
546
+ alias << update
547
+
548
+ # <!--
549
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
550
+ # - digest_obj.block_length -> Integer
551
+ # -->
552
+ # Return the block length of the digest in bytes.
553
+ #
554
+ # Digest::SHA256.new.block_length * 8
555
+ # # => 512
556
+ # Digest::SHA384.new.block_length * 8
557
+ # # => 1024
558
+ # Digest::SHA512.new.block_length * 8
559
+ # # => 1024
560
+ #
561
+ def block_length: () -> Integer
562
+
563
+ # <!--
564
+ # rdoc-file=ext/digest/sha2/lib/sha2.rb
565
+ # - digest_obj.digest_length -> Integer
566
+ # -->
567
+ # Return the length of the hash value (the digest) in bytes.
568
+ #
569
+ # Digest::SHA256.new.digest_length * 8
570
+ # # => 256
571
+ # Digest::SHA384.new.digest_length * 8
572
+ # # => 384
573
+ # Digest::SHA512.new.digest_length * 8
574
+ # # => 512
575
+ #
576
+ # For example, digests produced by Digest::SHA256 will always be 32 bytes (256
577
+ # bits) in size.
578
+ #
579
+ def digest_length: () -> Integer
580
+
581
+ def initialize_copy: (untyped) -> untyped
582
+ end
583
+
584
+ # <!-- rdoc-file=ext/digest/md5/md5init.c -->
585
+ # A class for calculating message digests using the MD5 Message-Digest Algorithm
586
+ # by RSA Data Security, Inc., described in RFC1321.
587
+ #
588
+ # MD5 calculates a digest of 128 bits (16 bytes).
589
+ #
590
+ # ## Examples
591
+ # require 'digest'
592
+ #
593
+ # # Compute a complete digest
594
+ # Digest::MD5.hexdigest 'abc' #=> "90015098..."
595
+ #
596
+ # # Compute digest by chunks
597
+ # md5 = Digest::MD5.new # =>#<Digest::MD5>
598
+ # md5.update "ab"
599
+ # md5 << "c" # alias for #update
600
+ # md5.hexdigest # => "90015098..."
601
+ #
602
+ # # Use the same object to compute another digest
603
+ # md5.reset
604
+ # md5 << "message"
605
+ # md5.hexdigest # => "78e73102..."
606
+ #
607
+ class Digest::MD5 < Digest::Base
608
+ end
609
+
610
+ # <!-- rdoc-file=ext/digest/rmd160/rmd160init.c -->
611
+ # A class for calculating message digests using RIPEMD-160 cryptographic hash
612
+ # function, designed by Hans Dobbertin, Antoon Bosselaers, and Bart Preneel.
613
+ #
614
+ # RMD160 calculates a digest of 160 bits (20 bytes).
615
+ #
616
+ # ## Examples
617
+ # require 'digest'
618
+ #
619
+ # # Compute a complete digest
620
+ # Digest::RMD160.hexdigest 'abc' #=> "8eb208f7..."
621
+ #
622
+ # # Compute digest by chunks
623
+ # rmd160 = Digest::RMD160.new # =>#<Digest::RMD160>
624
+ # rmd160.update "ab"
625
+ # rmd160 << "c" # alias for #update
626
+ # rmd160.hexdigest # => "8eb208f7..."
627
+ #
628
+ # # Use the same object to compute another digest
629
+ # rmd160.reset
630
+ # rmd160 << "message"
631
+ # rmd160.hexdigest # => "1dddbe1b..."
632
+ #
633
+ class Digest::RMD160 < Digest::Base
634
+ end
635
+
636
+ # <!-- rdoc-file=ext/digest/sha2/sha2init.c -->
637
+ # Classes for calculating message digests using the SHA-256/384/512 Secure Hash
638
+ # Algorithm(s) by NIST (the US' National Institute of Standards and Technology),
639
+ # described in FIPS PUB 180-2.
640
+ #
641
+ # See SHA2.
642
+ #
643
+ class Digest::SHA256 < Digest::Base
644
+ end
645
+
646
+ # <!-- rdoc-file=ext/digest/sha2/sha2init.c -->
647
+ # Classes for calculating message digests using the SHA-256/384/512 Secure Hash
648
+ # Algorithm(s) by NIST (the US' National Institute of Standards and Technology),
649
+ # described in FIPS PUB 180-2.
650
+ #
651
+ # See SHA2.
652
+ #
653
+ class Digest::SHA384 < Digest::Base
654
+ end
655
+
656
+ # <!-- rdoc-file=ext/digest/sha2/sha2init.c -->
657
+ # Classes for calculating message digests using the SHA-256/384/512 Secure Hash
658
+ # Algorithm(s) by NIST (the US' National Institute of Standards and Technology),
659
+ # described in FIPS PUB 180-2.
660
+ #
661
+ # See SHA2.
662
+ #
663
+ class Digest::SHA512 < Digest::Base
664
+ end
665
+
666
+ %a{annotate:rdoc:skip}
667
+ class Object
668
+ # <!--
669
+ # rdoc-file=ext/digest/lib/digest.rb
670
+ # - Digest(name) -> digest_subclass
671
+ # -->
672
+ # Returns a Digest subclass by `name` in a thread-safe manner even when
673
+ # on-demand loading is involved.
674
+ #
675
+ # require 'digest'
676
+ #
677
+ # Digest("MD5")
678
+ # # => Digest::MD5
679
+ #
680
+ # Digest(:SHA256)
681
+ # # => Digest::SHA256
682
+ #
683
+ # Digest(:Foo)
684
+ # # => LoadError: library not found for class Digest::Foo -- digest/foo
685
+ #
686
+ def Digest: (interned name) -> singleton(::Digest::Base)
687
+ end