rbs-relaxed 3.9.0.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 (484) hide show
  1. checksums.yaml +7 -0
  2. data/.github/dependabot.yml +22 -0
  3. data/.github/workflows/comments.yml +35 -0
  4. data/.github/workflows/dependabot.yml +30 -0
  5. data/.github/workflows/ruby.yml +82 -0
  6. data/.github/workflows/typecheck.yml +38 -0
  7. data/.github/workflows/windows.yml +43 -0
  8. data/.gitignore +23 -0
  9. data/.rubocop.yml +68 -0
  10. data/BSDL +22 -0
  11. data/CHANGELOG.md +1868 -0
  12. data/COPYING +56 -0
  13. data/README.md +203 -0
  14. data/Rakefile +417 -0
  15. data/Steepfile +44 -0
  16. data/config.yml +313 -0
  17. data/core/array.rbs +4062 -0
  18. data/core/basic_object.rbs +375 -0
  19. data/core/binding.rbs +150 -0
  20. data/core/builtin.rbs +277 -0
  21. data/core/class.rbs +220 -0
  22. data/core/comparable.rbs +171 -0
  23. data/core/complex.rbs +786 -0
  24. data/core/constants.rbs +96 -0
  25. data/core/data.rbs +415 -0
  26. data/core/dir.rbs +981 -0
  27. data/core/encoding.rbs +1371 -0
  28. data/core/enumerable.rbs +2405 -0
  29. data/core/enumerator/product.rbs +92 -0
  30. data/core/enumerator.rbs +630 -0
  31. data/core/env.rbs +6 -0
  32. data/core/errno.rbs +673 -0
  33. data/core/errors.rbs +760 -0
  34. data/core/exception.rbs +485 -0
  35. data/core/false_class.rbs +82 -0
  36. data/core/fiber.rbs +550 -0
  37. data/core/fiber_error.rbs +11 -0
  38. data/core/file.rbs +2936 -0
  39. data/core/file_test.rbs +331 -0
  40. data/core/float.rbs +1151 -0
  41. data/core/gc.rbs +644 -0
  42. data/core/global_variables.rbs +184 -0
  43. data/core/hash.rbs +1861 -0
  44. data/core/integer.rbs +1413 -0
  45. data/core/io/buffer.rbs +984 -0
  46. data/core/io/wait.rbs +70 -0
  47. data/core/io.rbs +3406 -0
  48. data/core/kernel.rbs +3096 -0
  49. data/core/marshal.rbs +207 -0
  50. data/core/match_data.rbs +635 -0
  51. data/core/math.rbs +729 -0
  52. data/core/method.rbs +386 -0
  53. data/core/module.rbs +1704 -0
  54. data/core/nil_class.rbs +209 -0
  55. data/core/numeric.rbs +818 -0
  56. data/core/object.rbs +110 -0
  57. data/core/object_space/weak_key_map.rbs +166 -0
  58. data/core/object_space.rbs +190 -0
  59. data/core/proc.rbs +868 -0
  60. data/core/process.rbs +2296 -0
  61. data/core/ractor.rbs +1068 -0
  62. data/core/random.rbs +237 -0
  63. data/core/range.rbs +1107 -0
  64. data/core/rational.rbs +531 -0
  65. data/core/rb_config.rbs +88 -0
  66. data/core/rbs/unnamed/argf.rbs +1229 -0
  67. data/core/rbs/unnamed/env_class.rbs +1209 -0
  68. data/core/rbs/unnamed/random.rbs +293 -0
  69. data/core/refinement.rbs +59 -0
  70. data/core/regexp.rbs +1930 -0
  71. data/core/ruby_vm.rbs +765 -0
  72. data/core/rubygems/basic_specification.rbs +6 -0
  73. data/core/rubygems/config_file.rbs +38 -0
  74. data/core/rubygems/dependency_installer.rbs +6 -0
  75. data/core/rubygems/errors.rbs +176 -0
  76. data/core/rubygems/installer.rbs +15 -0
  77. data/core/rubygems/path_support.rbs +6 -0
  78. data/core/rubygems/platform.rbs +7 -0
  79. data/core/rubygems/request_set.rbs +49 -0
  80. data/core/rubygems/requirement.rbs +148 -0
  81. data/core/rubygems/rubygems.rbs +1171 -0
  82. data/core/rubygems/source_list.rbs +15 -0
  83. data/core/rubygems/specification.rbs +23 -0
  84. data/core/rubygems/stream_ui.rbs +5 -0
  85. data/core/rubygems/uninstaller.rbs +10 -0
  86. data/core/rubygems/version.rbs +294 -0
  87. data/core/set.rbs +621 -0
  88. data/core/signal.rbs +100 -0
  89. data/core/string.rbs +3583 -0
  90. data/core/struct.rbs +667 -0
  91. data/core/symbol.rbs +475 -0
  92. data/core/thread.rbs +1765 -0
  93. data/core/thread_group.rbs +79 -0
  94. data/core/time.rbs +1762 -0
  95. data/core/trace_point.rbs +477 -0
  96. data/core/true_class.rbs +98 -0
  97. data/core/unbound_method.rbs +329 -0
  98. data/core/warning.rbs +87 -0
  99. data/docs/CONTRIBUTING.md +106 -0
  100. data/docs/architecture.md +110 -0
  101. data/docs/collection.md +192 -0
  102. data/docs/data_and_struct.md +86 -0
  103. data/docs/gem.md +57 -0
  104. data/docs/rbs_by_example.md +309 -0
  105. data/docs/repo.md +125 -0
  106. data/docs/sigs.md +167 -0
  107. data/docs/stdlib.md +147 -0
  108. data/docs/syntax.md +910 -0
  109. data/docs/tools.md +17 -0
  110. data/exe/rbs +7 -0
  111. data/ext/rbs_extension/extconf.rb +15 -0
  112. data/ext/rbs_extension/lexer.c +2728 -0
  113. data/ext/rbs_extension/lexer.h +179 -0
  114. data/ext/rbs_extension/lexer.re +147 -0
  115. data/ext/rbs_extension/lexstate.c +175 -0
  116. data/ext/rbs_extension/location.c +325 -0
  117. data/ext/rbs_extension/location.h +85 -0
  118. data/ext/rbs_extension/main.c +33 -0
  119. data/ext/rbs_extension/parser.c +2973 -0
  120. data/ext/rbs_extension/parser.h +18 -0
  121. data/ext/rbs_extension/parserstate.c +397 -0
  122. data/ext/rbs_extension/parserstate.h +163 -0
  123. data/ext/rbs_extension/rbs_extension.h +31 -0
  124. data/ext/rbs_extension/unescape.c +32 -0
  125. data/goodcheck.yml +91 -0
  126. data/include/rbs/constants.h +82 -0
  127. data/include/rbs/ruby_objs.h +72 -0
  128. data/include/rbs/util/rbs_constant_pool.h +219 -0
  129. data/include/rbs.h +7 -0
  130. data/lib/rbs/ancestor_graph.rb +92 -0
  131. data/lib/rbs/annotate/annotations.rb +199 -0
  132. data/lib/rbs/annotate/formatter.rb +92 -0
  133. data/lib/rbs/annotate/rdoc_annotator.rb +400 -0
  134. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  135. data/lib/rbs/annotate.rb +8 -0
  136. data/lib/rbs/ast/annotation.rb +29 -0
  137. data/lib/rbs/ast/comment.rb +29 -0
  138. data/lib/rbs/ast/declarations.rb +467 -0
  139. data/lib/rbs/ast/directives.rb +49 -0
  140. data/lib/rbs/ast/members.rb +451 -0
  141. data/lib/rbs/ast/type_param.rb +225 -0
  142. data/lib/rbs/ast/visitor.rb +137 -0
  143. data/lib/rbs/buffer.rb +67 -0
  144. data/lib/rbs/builtin_names.rb +58 -0
  145. data/lib/rbs/cli/colored_io.rb +48 -0
  146. data/lib/rbs/cli/diff.rb +83 -0
  147. data/lib/rbs/cli/validate.rb +357 -0
  148. data/lib/rbs/cli.rb +1223 -0
  149. data/lib/rbs/collection/cleaner.rb +38 -0
  150. data/lib/rbs/collection/config/lockfile.rb +92 -0
  151. data/lib/rbs/collection/config/lockfile_generator.rb +218 -0
  152. data/lib/rbs/collection/config.rb +81 -0
  153. data/lib/rbs/collection/installer.rb +32 -0
  154. data/lib/rbs/collection/sources/base.rb +14 -0
  155. data/lib/rbs/collection/sources/git.rb +258 -0
  156. data/lib/rbs/collection/sources/local.rb +81 -0
  157. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  158. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  159. data/lib/rbs/collection/sources.rb +38 -0
  160. data/lib/rbs/collection.rb +16 -0
  161. data/lib/rbs/constant.rb +28 -0
  162. data/lib/rbs/definition.rb +401 -0
  163. data/lib/rbs/definition_builder/ancestor_builder.rb +620 -0
  164. data/lib/rbs/definition_builder/method_builder.rb +254 -0
  165. data/lib/rbs/definition_builder.rb +845 -0
  166. data/lib/rbs/diff.rb +125 -0
  167. data/lib/rbs/environment/use_map.rb +77 -0
  168. data/lib/rbs/environment.rb +829 -0
  169. data/lib/rbs/environment_loader.rb +173 -0
  170. data/lib/rbs/environment_walker.rb +155 -0
  171. data/lib/rbs/errors.rb +645 -0
  172. data/lib/rbs/factory.rb +18 -0
  173. data/lib/rbs/file_finder.rb +28 -0
  174. data/lib/rbs/location_aux.rb +138 -0
  175. data/lib/rbs/locator.rb +243 -0
  176. data/lib/rbs/method_type.rb +143 -0
  177. data/lib/rbs/namespace.rb +125 -0
  178. data/lib/rbs/parser/lex_result.rb +15 -0
  179. data/lib/rbs/parser/token.rb +23 -0
  180. data/lib/rbs/parser_aux.rb +114 -0
  181. data/lib/rbs/prototype/helpers.rb +140 -0
  182. data/lib/rbs/prototype/node_usage.rb +99 -0
  183. data/lib/rbs/prototype/rb.rb +840 -0
  184. data/lib/rbs/prototype/rbi.rb +641 -0
  185. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  186. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  187. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  188. data/lib/rbs/prototype/runtime.rb +667 -0
  189. data/lib/rbs/repository.rb +127 -0
  190. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  191. data/lib/rbs/resolver/type_name_resolver.rb +91 -0
  192. data/lib/rbs/sorter.rb +198 -0
  193. data/lib/rbs/substitution.rb +83 -0
  194. data/lib/rbs/subtractor.rb +201 -0
  195. data/lib/rbs/test/errors.rb +80 -0
  196. data/lib/rbs/test/guaranteed.rb +30 -0
  197. data/lib/rbs/test/hook.rb +212 -0
  198. data/lib/rbs/test/observer.rb +19 -0
  199. data/lib/rbs/test/setup.rb +84 -0
  200. data/lib/rbs/test/setup_helper.rb +50 -0
  201. data/lib/rbs/test/tester.rb +167 -0
  202. data/lib/rbs/test/type_check.rb +435 -0
  203. data/lib/rbs/test.rb +112 -0
  204. data/lib/rbs/type_alias_dependency.rb +100 -0
  205. data/lib/rbs/type_alias_regularity.rb +126 -0
  206. data/lib/rbs/type_name.rb +109 -0
  207. data/lib/rbs/types.rb +1596 -0
  208. data/lib/rbs/unit_test/convertibles.rb +176 -0
  209. data/lib/rbs/unit_test/spy.rb +138 -0
  210. data/lib/rbs/unit_test/type_assertions.rb +347 -0
  211. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  212. data/lib/rbs/unit_test.rb +6 -0
  213. data/lib/rbs/validator.rb +186 -0
  214. data/lib/rbs/variance_calculator.rb +189 -0
  215. data/lib/rbs/vendorer.rb +71 -0
  216. data/lib/rbs/version.rb +5 -0
  217. data/lib/rbs/writer.rb +424 -0
  218. data/lib/rbs.rb +94 -0
  219. data/lib/rdoc/discover.rb +20 -0
  220. data/lib/rdoc_plugin/parser.rb +163 -0
  221. data/rbs-relaxed.gemspec +48 -0
  222. data/schema/annotation.json +14 -0
  223. data/schema/comment.json +26 -0
  224. data/schema/decls.json +326 -0
  225. data/schema/function.json +87 -0
  226. data/schema/location.json +56 -0
  227. data/schema/members.json +266 -0
  228. data/schema/methodType.json +50 -0
  229. data/schema/typeParam.json +36 -0
  230. data/schema/types.json +317 -0
  231. data/sig/ancestor_builder.rbs +163 -0
  232. data/sig/ancestor_graph.rbs +60 -0
  233. data/sig/annotate/annotations.rbs +102 -0
  234. data/sig/annotate/formatter.rbs +24 -0
  235. data/sig/annotate/rdoc_annotater.rbs +82 -0
  236. data/sig/annotate/rdoc_source.rbs +30 -0
  237. data/sig/annotation.rbs +27 -0
  238. data/sig/buffer.rbs +32 -0
  239. data/sig/builtin_names.rbs +44 -0
  240. data/sig/cli/colored_io.rbs +15 -0
  241. data/sig/cli/diff.rbs +21 -0
  242. data/sig/cli/validate.rbs +43 -0
  243. data/sig/cli.rbs +87 -0
  244. data/sig/collection/cleaner.rbs +13 -0
  245. data/sig/collection/config/lockfile.rbs +74 -0
  246. data/sig/collection/config/lockfile_generator.rbs +66 -0
  247. data/sig/collection/config.rbs +46 -0
  248. data/sig/collection/installer.rbs +17 -0
  249. data/sig/collection/sources.rbs +214 -0
  250. data/sig/collection.rbs +4 -0
  251. data/sig/comment.rbs +26 -0
  252. data/sig/constant.rbs +21 -0
  253. data/sig/declarations.rbs +267 -0
  254. data/sig/definition.rbs +173 -0
  255. data/sig/definition_builder.rbs +165 -0
  256. data/sig/diff.rbs +28 -0
  257. data/sig/directives.rbs +77 -0
  258. data/sig/environment.rbs +279 -0
  259. data/sig/environment_loader.rbs +111 -0
  260. data/sig/environment_walker.rbs +65 -0
  261. data/sig/errors.rbs +405 -0
  262. data/sig/factory.rbs +5 -0
  263. data/sig/file_finder.rbs +28 -0
  264. data/sig/location.rbs +110 -0
  265. data/sig/locator.rbs +58 -0
  266. data/sig/manifest.yaml +7 -0
  267. data/sig/members.rbs +258 -0
  268. data/sig/method_builder.rbs +84 -0
  269. data/sig/method_types.rbs +58 -0
  270. data/sig/namespace.rbs +146 -0
  271. data/sig/parser.rbs +100 -0
  272. data/sig/prototype/helpers.rbs +27 -0
  273. data/sig/prototype/node_usage.rbs +20 -0
  274. data/sig/prototype/rb.rbs +96 -0
  275. data/sig/prototype/rbi.rbs +75 -0
  276. data/sig/prototype/runtime.rbs +182 -0
  277. data/sig/rbs.rbs +21 -0
  278. data/sig/rdoc/rbs.rbs +67 -0
  279. data/sig/repository.rbs +85 -0
  280. data/sig/resolver/constant_resolver.rbs +92 -0
  281. data/sig/resolver/context.rbs +34 -0
  282. data/sig/resolver/type_name_resolver.rbs +35 -0
  283. data/sig/shims/bundler.rbs +38 -0
  284. data/sig/shims/enumerable.rbs +5 -0
  285. data/sig/shims/rubygems.rbs +19 -0
  286. data/sig/sorter.rbs +41 -0
  287. data/sig/substitution.rbs +48 -0
  288. data/sig/subtractor.rbs +37 -0
  289. data/sig/test/errors.rbs +52 -0
  290. data/sig/test/guranteed.rbs +9 -0
  291. data/sig/test/type_check.rbs +19 -0
  292. data/sig/test.rbs +82 -0
  293. data/sig/type_alias_dependency.rbs +53 -0
  294. data/sig/type_alias_regularity.rbs +98 -0
  295. data/sig/type_param.rbs +110 -0
  296. data/sig/typename.rbs +79 -0
  297. data/sig/types.rbs +579 -0
  298. data/sig/unit_test/convertibles.rbs +154 -0
  299. data/sig/unit_test/spy.rbs +30 -0
  300. data/sig/unit_test/type_assertions.rbs +196 -0
  301. data/sig/unit_test/with_aliases.rbs +136 -0
  302. data/sig/use_map.rbs +35 -0
  303. data/sig/util.rbs +9 -0
  304. data/sig/validator.rbs +63 -0
  305. data/sig/variance_calculator.rbs +87 -0
  306. data/sig/vendorer.rbs +51 -0
  307. data/sig/version.rbs +3 -0
  308. data/sig/visitor.rbs +47 -0
  309. data/sig/writer.rbs +127 -0
  310. data/src/constants.c +153 -0
  311. data/src/ruby_objs.c +795 -0
  312. data/src/util/rbs_constant_pool.c +342 -0
  313. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  314. data/stdlib/abbrev/0/array.rbs +26 -0
  315. data/stdlib/base64/0/base64.rbs +355 -0
  316. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  317. data/stdlib/bigdecimal/0/big_decimal.rbs +1629 -0
  318. data/stdlib/bigdecimal-math/0/big_math.rbs +119 -0
  319. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  320. data/stdlib/cgi/0/core.rbs +1285 -0
  321. data/stdlib/cgi/0/manifest.yaml +3 -0
  322. data/stdlib/coverage/0/coverage.rbs +263 -0
  323. data/stdlib/csv/0/csv.rbs +3776 -0
  324. data/stdlib/csv/0/manifest.yaml +3 -0
  325. data/stdlib/date/0/date.rbs +1585 -0
  326. data/stdlib/date/0/date_time.rbs +616 -0
  327. data/stdlib/date/0/time.rbs +26 -0
  328. data/stdlib/dbm/0/dbm.rbs +421 -0
  329. data/stdlib/delegate/0/delegator.rbs +184 -0
  330. data/stdlib/delegate/0/kernel.rbs +47 -0
  331. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  332. data/stdlib/did_you_mean/0/did_you_mean.rbs +343 -0
  333. data/stdlib/digest/0/digest.rbs +577 -0
  334. data/stdlib/erb/0/erb.rbs +532 -0
  335. data/stdlib/etc/0/etc.rbs +865 -0
  336. data/stdlib/fileutils/0/fileutils.rbs +1734 -0
  337. data/stdlib/find/0/find.rbs +49 -0
  338. data/stdlib/forwardable/0/forwardable.rbs +268 -0
  339. data/stdlib/io-console/0/io-console.rbs +414 -0
  340. data/stdlib/ipaddr/0/ipaddr.rbs +428 -0
  341. data/stdlib/json/0/json.rbs +1916 -0
  342. data/stdlib/kconv/0/kconv.rbs +166 -0
  343. data/stdlib/logger/0/formatter.rbs +45 -0
  344. data/stdlib/logger/0/log_device.rbs +100 -0
  345. data/stdlib/logger/0/logger.rbs +796 -0
  346. data/stdlib/logger/0/manifest.yaml +2 -0
  347. data/stdlib/logger/0/period.rbs +17 -0
  348. data/stdlib/logger/0/severity.rbs +34 -0
  349. data/stdlib/minitest/0/kernel.rbs +42 -0
  350. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  351. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  352. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  353. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  354. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  355. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  356. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  357. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  358. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  359. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  360. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  361. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  362. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  363. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  364. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  365. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  366. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  367. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  368. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  369. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  370. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  371. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  372. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  373. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  374. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  375. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  376. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  377. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  378. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  379. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  380. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  381. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  382. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  383. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  384. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  385. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  386. data/stdlib/minitest/0/minitest.rbs +115 -0
  387. data/stdlib/monitor/0/monitor.rbs +363 -0
  388. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  389. data/stdlib/net-http/0/manifest.yaml +3 -0
  390. data/stdlib/net-http/0/net-http.rbs +5552 -0
  391. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  392. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  393. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  394. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  395. data/stdlib/nkf/0/nkf.rbs +402 -0
  396. data/stdlib/objspace/0/objspace.rbs +487 -0
  397. data/stdlib/observable/0/observable.rbs +217 -0
  398. data/stdlib/open-uri/0/manifest.yaml +4 -0
  399. data/stdlib/open-uri/0/open-uri.rbs +393 -0
  400. data/stdlib/open3/0/open3.rbs +147 -0
  401. data/stdlib/openssl/0/manifest.yaml +3 -0
  402. data/stdlib/openssl/0/openssl.rbs +12113 -0
  403. data/stdlib/optparse/0/optparse.rbs +1725 -0
  404. data/stdlib/pathname/0/pathname.rbs +1406 -0
  405. data/stdlib/pp/0/manifest.yaml +2 -0
  406. data/stdlib/pp/0/pp.rbs +300 -0
  407. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  408. data/stdlib/pstore/0/pstore.rbs +603 -0
  409. data/stdlib/psych/0/core_ext.rbs +12 -0
  410. data/stdlib/psych/0/dbm.rbs +237 -0
  411. data/stdlib/psych/0/manifest.yaml +3 -0
  412. data/stdlib/psych/0/psych.rbs +402 -0
  413. data/stdlib/psych/0/store.rbs +59 -0
  414. data/stdlib/pty/0/pty.rbs +237 -0
  415. data/stdlib/rdoc/0/code_object.rbs +51 -0
  416. data/stdlib/rdoc/0/comment.rbs +59 -0
  417. data/stdlib/rdoc/0/context.rbs +153 -0
  418. data/stdlib/rdoc/0/markup.rbs +117 -0
  419. data/stdlib/rdoc/0/parser.rbs +56 -0
  420. data/stdlib/rdoc/0/rdoc.rbs +391 -0
  421. data/stdlib/rdoc/0/ri.rbs +17 -0
  422. data/stdlib/rdoc/0/store.rbs +48 -0
  423. data/stdlib/rdoc/0/top_level.rbs +97 -0
  424. data/stdlib/resolv/0/manifest.yaml +3 -0
  425. data/stdlib/resolv/0/resolv.rbs +1830 -0
  426. data/stdlib/ripper/0/ripper.rbs +1648 -0
  427. data/stdlib/securerandom/0/securerandom.rbs +62 -0
  428. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  429. data/stdlib/singleton/0/singleton.rbs +131 -0
  430. data/stdlib/socket/0/addrinfo.rbs +666 -0
  431. data/stdlib/socket/0/basic_socket.rbs +590 -0
  432. data/stdlib/socket/0/constants.rbs +2295 -0
  433. data/stdlib/socket/0/ip_socket.rbs +92 -0
  434. data/stdlib/socket/0/socket.rbs +4157 -0
  435. data/stdlib/socket/0/socket_error.rbs +5 -0
  436. data/stdlib/socket/0/tcp_server.rbs +192 -0
  437. data/stdlib/socket/0/tcp_socket.rbs +79 -0
  438. data/stdlib/socket/0/udp_socket.rbs +133 -0
  439. data/stdlib/socket/0/unix_server.rbs +169 -0
  440. data/stdlib/socket/0/unix_socket.rbs +172 -0
  441. data/stdlib/stringio/0/stringio.rbs +567 -0
  442. data/stdlib/strscan/0/string_scanner.rbs +1627 -0
  443. data/stdlib/tempfile/0/tempfile.rbs +479 -0
  444. data/stdlib/time/0/time.rbs +432 -0
  445. data/stdlib/timeout/0/timeout.rbs +81 -0
  446. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  447. data/stdlib/tsort/0/cyclic.rbs +5 -0
  448. data/stdlib/tsort/0/interfaces.rbs +20 -0
  449. data/stdlib/tsort/0/tsort.rbs +409 -0
  450. data/stdlib/uri/0/common.rbs +582 -0
  451. data/stdlib/uri/0/file.rbs +118 -0
  452. data/stdlib/uri/0/ftp.rbs +13 -0
  453. data/stdlib/uri/0/generic.rbs +1108 -0
  454. data/stdlib/uri/0/http.rbs +104 -0
  455. data/stdlib/uri/0/https.rbs +14 -0
  456. data/stdlib/uri/0/ldap.rbs +230 -0
  457. data/stdlib/uri/0/ldaps.rbs +14 -0
  458. data/stdlib/uri/0/mailto.rbs +92 -0
  459. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  460. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  461. data/stdlib/uri/0/ws.rbs +13 -0
  462. data/stdlib/uri/0/wss.rbs +9 -0
  463. data/stdlib/yaml/0/manifest.yaml +2 -0
  464. data/stdlib/yaml/0/yaml.rbs +1 -0
  465. data/stdlib/zlib/0/buf_error.rbs +10 -0
  466. data/stdlib/zlib/0/data_error.rbs +10 -0
  467. data/stdlib/zlib/0/deflate.rbs +210 -0
  468. data/stdlib/zlib/0/error.rbs +20 -0
  469. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  470. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  471. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  472. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  473. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  474. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  475. data/stdlib/zlib/0/gzip_writer.rbs +166 -0
  476. data/stdlib/zlib/0/inflate.rbs +180 -0
  477. data/stdlib/zlib/0/mem_error.rbs +10 -0
  478. data/stdlib/zlib/0/need_dict.rbs +13 -0
  479. data/stdlib/zlib/0/stream_end.rbs +11 -0
  480. data/stdlib/zlib/0/stream_error.rbs +11 -0
  481. data/stdlib/zlib/0/version_error.rbs +11 -0
  482. data/stdlib/zlib/0/zlib.rbs +449 -0
  483. data/stdlib/zlib/0/zstream.rbs +200 -0
  484. metadata +532 -0
@@ -0,0 +1,577 @@
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: () -> self
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/md5/md5init.c -->
475
+ # A class for calculating message digests using the MD5 Message-Digest Algorithm
476
+ # by RSA Data Security, Inc., described in RFC1321.
477
+ #
478
+ # MD5 calculates a digest of 128 bits (16 bytes).
479
+ #
480
+ # ## Examples
481
+ # require 'digest'
482
+ #
483
+ # # Compute a complete digest
484
+ # Digest::MD5.hexdigest 'abc' #=> "90015098..."
485
+ #
486
+ # # Compute digest by chunks
487
+ # md5 = Digest::MD5.new # =>#<Digest::MD5>
488
+ # md5.update "ab"
489
+ # md5 << "c" # alias for #update
490
+ # md5.hexdigest # => "90015098..."
491
+ #
492
+ # # Use the same object to compute another digest
493
+ # md5.reset
494
+ # md5 << "message"
495
+ # md5.hexdigest # => "78e73102..."
496
+ #
497
+ class Digest::MD5 < Digest::Base
498
+ end
499
+
500
+ # <!-- rdoc-file=ext/digest/rmd160/rmd160init.c -->
501
+ # A class for calculating message digests using RIPEMD-160 cryptographic hash
502
+ # function, designed by Hans Dobbertin, Antoon Bosselaers, and Bart Preneel.
503
+ #
504
+ # RMD160 calculates a digest of 160 bits (20 bytes).
505
+ #
506
+ # ## Examples
507
+ # require 'digest'
508
+ #
509
+ # # Compute a complete digest
510
+ # Digest::RMD160.hexdigest 'abc' #=> "8eb208f7..."
511
+ #
512
+ # # Compute digest by chunks
513
+ # rmd160 = Digest::RMD160.new # =>#<Digest::RMD160>
514
+ # rmd160.update "ab"
515
+ # rmd160 << "c" # alias for #update
516
+ # rmd160.hexdigest # => "8eb208f7..."
517
+ #
518
+ # # Use the same object to compute another digest
519
+ # rmd160.reset
520
+ # rmd160 << "message"
521
+ # rmd160.hexdigest # => "1dddbe1b..."
522
+ #
523
+ class Digest::RMD160 < Digest::Base
524
+ end
525
+
526
+ # <!-- rdoc-file=ext/digest/sha2/sha2init.c -->
527
+ # Classes for calculating message digests using the SHA-256/384/512 Secure Hash
528
+ # Algorithm(s) by NIST (the US' National Institute of Standards and Technology),
529
+ # described in FIPS PUB 180-2.
530
+ #
531
+ # See SHA2.
532
+ #
533
+ class Digest::SHA256 < Digest::Base
534
+ end
535
+
536
+ # <!-- rdoc-file=ext/digest/sha2/sha2init.c -->
537
+ # Classes for calculating message digests using the SHA-256/384/512 Secure Hash
538
+ # Algorithm(s) by NIST (the US' National Institute of Standards and Technology),
539
+ # described in FIPS PUB 180-2.
540
+ #
541
+ # See SHA2.
542
+ #
543
+ class Digest::SHA384 < Digest::Base
544
+ end
545
+
546
+ # <!-- rdoc-file=ext/digest/sha2/sha2init.c -->
547
+ # Classes for calculating message digests using the SHA-256/384/512 Secure Hash
548
+ # Algorithm(s) by NIST (the US' National Institute of Standards and Technology),
549
+ # described in FIPS PUB 180-2.
550
+ #
551
+ # See SHA2.
552
+ #
553
+ class Digest::SHA512 < Digest::Base
554
+ end
555
+
556
+ %a{annotate:rdoc:skip}
557
+ class Object
558
+ # <!--
559
+ # rdoc-file=ext/digest/lib/digest.rb
560
+ # - Digest(name) -> digest_subclass
561
+ # -->
562
+ # Returns a Digest subclass by `name` in a thread-safe manner even when
563
+ # on-demand loading is involved.
564
+ #
565
+ # require 'digest'
566
+ #
567
+ # Digest("MD5")
568
+ # # => Digest::MD5
569
+ #
570
+ # Digest(:SHA256)
571
+ # # => Digest::SHA256
572
+ #
573
+ # Digest(:Foo)
574
+ # # => LoadError: library not found for class Digest::Foo -- digest/foo
575
+ #
576
+ def Digest: (interned name) -> singleton(::Digest::Base)
577
+ end