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,57 @@
1
+ # <!-- rdoc-file=lib/yaml/store.rb -->
2
+ # YAML::Store provides the same functionality as PStore, except it uses YAML to
3
+ # dump objects instead of Marshal.
4
+ #
5
+ # ## Example
6
+ #
7
+ # require 'yaml/store'
8
+ #
9
+ # Person = Struct.new :first_name, :last_name
10
+ #
11
+ # people = [Person.new("Bob", "Smith"), Person.new("Mary", "Johnson")]
12
+ #
13
+ # store = YAML::Store.new "test.store"
14
+ #
15
+ # store.transaction do
16
+ # store["people"] = people
17
+ # store["greeting"] = { "hello" => "world" }
18
+ # end
19
+ #
20
+ # After running the above code, the contents of "test.store" will be:
21
+ #
22
+ # ---
23
+ # people:
24
+ # - !ruby/struct:Person
25
+ # first_name: Bob
26
+ # last_name: Smith
27
+ # - !ruby/struct:Person
28
+ # first_name: Mary
29
+ # last_name: Johnson
30
+ # greeting:
31
+ # hello: world
32
+ #
33
+ class Psych::Store < ::PStore[string, untyped]
34
+ # <!--
35
+ # rdoc-file=lib/yaml/store.rb
36
+ # - initialize( file_name, yaml_opts = {} )
37
+ # - initialize( file_name, thread_safe = false, yaml_opts = {} )
38
+ # -->
39
+ # Creates a new YAML::Store object, which will store data in `file_name`. If the
40
+ # file does not already exist, it will be created.
41
+ #
42
+ # YAML::Store objects are always reentrant. But if *thread_safe* is set to true,
43
+ # then it will become thread-safe at the cost of a minor performance hit.
44
+ #
45
+ # Options passed in through `yaml_opts` will be used when converting the store
46
+ # to YAML via Hash#to_yaml().
47
+ #
48
+ def dump: (untyped table) -> String
49
+
50
+ def empty_marshal_checksum: () -> String
51
+
52
+ def empty_marshal_data: () -> String
53
+
54
+ def load: (String) -> untyped
55
+
56
+ def marshal_dump_supports_canonical_option?: () -> bool
57
+ end
@@ -0,0 +1,240 @@
1
+ # <!-- rdoc-file=ext/pty/pty.c -->
2
+ # Creates and manages pseudo terminals (PTYs). See also
3
+ # https://en.wikipedia.org/wiki/Pseudo_terminal
4
+ #
5
+ # PTY allows you to allocate new terminals using ::open or ::spawn a new
6
+ # terminal with a specific command.
7
+ #
8
+ # ## Example
9
+ #
10
+ # In this example we will change the buffering type in the `factor` command,
11
+ # assuming that factor uses stdio for stdout buffering.
12
+ #
13
+ # If IO.pipe is used instead of PTY.open, this code deadlocks because factor's
14
+ # stdout is fully buffered.
15
+ #
16
+ # # start by requiring the standard library PTY
17
+ # require 'pty'
18
+ #
19
+ # master, slave = PTY.open
20
+ # read, write = IO.pipe
21
+ # pid = spawn("factor", :in=>read, :out=>slave)
22
+ # read.close # we dont need the read
23
+ # slave.close # or the slave
24
+ #
25
+ # # pipe "42" to the factor command
26
+ # write.puts "42"
27
+ # # output the response from factor
28
+ # p master.gets #=> "42: 2 3 7\n"
29
+ #
30
+ # # pipe "144" to factor and print out the response
31
+ # write.puts "144"
32
+ # p master.gets #=> "144: 2 2 2 2 3 3\n"
33
+ # write.close # close the pipe
34
+ #
35
+ # # The result of read operation when pty slave is closed is platform
36
+ # # dependent.
37
+ # ret = begin
38
+ # master.gets # FreeBSD returns nil.
39
+ # rescue Errno::EIO # GNU/Linux raises EIO.
40
+ # nil
41
+ # end
42
+ # p ret #=> nil
43
+ #
44
+ # ## License
45
+ #
46
+ # (c) Copyright 1998 by Akinori Ito.
47
+ #
48
+ # This software may be redistributed freely for this purpose, in full or in
49
+ # part, provided that this entire copyright notice is included on any copies of
50
+ # this software and applications and derivations thereof.
51
+ #
52
+ # This software is provided on an "as is" basis, without warranty of any kind,
53
+ # either expressed or implied, as to any matter including, but not limited to
54
+ # warranty of fitness of purpose, or merchantability, or results obtained from
55
+ # use of this software.
56
+ #
57
+ module PTY
58
+ # <!--
59
+ # rdoc-file=ext/pty/pty.c
60
+ # - PTY.check(pid, raise = false) => Process::Status or nil
61
+ # - PTY.check(pid, true) => nil or raises PTY::ChildExited
62
+ # -->
63
+ # Checks the status of the child process specified by `pid`. Returns `nil` if
64
+ # the process is still alive.
65
+ #
66
+ # If the process is not alive, and `raise` was true, a PTY::ChildExited
67
+ # exception will be raised. Otherwise it will return a Process::Status instance.
68
+ #
69
+ # `pid`
70
+ # : The process id of the process to check
71
+ #
72
+ # `raise`
73
+ # : If `true` and the process identified by `pid` is no longer alive a
74
+ # PTY::ChildExited is raised.
75
+ #
76
+ def self.check: (Integer pid, ?boolish raise) -> Process::Status?
77
+
78
+ # <!-- rdoc-file=ext/pty/pty.c -->
79
+ # Spawns the specified command on a newly allocated pty. You can also use the
80
+ # alias ::getpty.
81
+ #
82
+ # The command's controlling tty is set to the slave device of the pty and its
83
+ # standard input/output/error is redirected to the slave device.
84
+ #
85
+ # `env` is an optional hash that provides additional environment variables to
86
+ # the spawned pty.
87
+ #
88
+ # # sets FOO to "bar"
89
+ # PTY.spawn({"FOO"=>"bar"}, "printenv", "FOO") do |r, w, pid|
90
+ # p r.read #=> "bar\r\n"
91
+ # ensure
92
+ # r.close; w.close; Process.wait(pid)
93
+ # end
94
+ # # unsets FOO
95
+ # PTY.spawn({"FOO"=>nil}, "printenv", "FOO") do |r, w, pid|
96
+ # p r.read #=> ""
97
+ # ensure
98
+ # r.close; w.close; Process.wait(pid)
99
+ # end
100
+ #
101
+ # `command` and `command_line` are the full commands to run, given a String. Any
102
+ # additional `arguments` will be passed to the command.
103
+ #
104
+ # ### Return values
105
+ #
106
+ # In the non-block form this returns an array of size three, <code>[r, w,
107
+ # pid]</code>.
108
+ #
109
+ # In the block form these same values will be yielded to the block:
110
+ #
111
+ # `r`
112
+ # : A readable IO that contains the command's standard output and standard
113
+ # error
114
+ #
115
+ # `w`
116
+ # : A writable IO that is the command's standard input
117
+ #
118
+ # `pid`
119
+ # : The process identifier for the command.
120
+ #
121
+ #
122
+ # ### Clean up
123
+ #
124
+ # This method does not clean up like closing IOs or waiting for child process,
125
+ # except that the process is detached in the block form to prevent it from
126
+ # becoming a zombie (see Process.detach). Any other cleanup is the
127
+ # responsibility of the caller. If waiting for `pid`, be sure to close both `r`
128
+ # and `w` before doing so; doing it in the reverse order may cause deadlock on
129
+ # some OSes.
130
+ #
131
+ alias self.getpty self.spawn
132
+
133
+ # <!--
134
+ # rdoc-file=ext/pty/pty.c
135
+ # - PTY.open => [master_io, slave_file]
136
+ # - PTY.open {|(master_io, slave_file)| ... } => block value
137
+ # -->
138
+ # Allocates a pty (pseudo-terminal).
139
+ #
140
+ # In the block form, yields an array of two elements (<code>master_io,
141
+ # slave_file</code>) and the value of the block is returned from `open`.
142
+ #
143
+ # The IO and File are both closed after the block completes if they haven't been
144
+ # already closed.
145
+ #
146
+ # PTY.open {|master, slave|
147
+ # p master #=> #<IO:masterpty:/dev/pts/1>
148
+ # p slave #=> #<File:/dev/pts/1>
149
+ # p slave.path #=> "/dev/pts/1"
150
+ # }
151
+ #
152
+ # In the non-block form, returns a two element array, <code>[master_io,
153
+ # slave_file]</code>.
154
+ #
155
+ # master, slave = PTY.open
156
+ # # do something with master for IO, or the slave file
157
+ #
158
+ # The arguments in both forms are:
159
+ #
160
+ # `master_io`
161
+ # : the master of the pty, as an IO.
162
+ #
163
+ # `slave_file`
164
+ # : the slave of the pty, as a File. The path to the terminal device is
165
+ # available via <code>slave_file.path</code>
166
+ #
167
+ #
168
+ # IO#raw! is usable to disable newline conversions:
169
+ #
170
+ # require 'io/console'
171
+ # PTY.open {|m, s|
172
+ # s.raw!
173
+ # # ...
174
+ # }
175
+ #
176
+ def self.open: () -> [ IO, File ]
177
+ | [A] () { ([ IO, File ]) -> A } -> A
178
+
179
+ # <!--
180
+ # rdoc-file=ext/pty/pty.c
181
+ # - PTY.spawn([env,] command_line) { |r, w, pid| ... }
182
+ # - PTY.spawn([env,] command_line) => [r, w, pid]
183
+ # - PTY.spawn([env,] command, arguments, ...) { |r, w, pid| ... }
184
+ # - PTY.spawn([env,] command, arguments, ...) => [r, w, pid]
185
+ # -->
186
+ # Spawns the specified command on a newly allocated pty. You can also use the
187
+ # alias ::getpty.
188
+ #
189
+ # The command's controlling tty is set to the slave device of the pty and its
190
+ # standard input/output/error is redirected to the slave device.
191
+ #
192
+ # `env` is an optional hash that provides additional environment variables to
193
+ # the spawned pty.
194
+ #
195
+ # # sets FOO to "bar"
196
+ # PTY.spawn({"FOO"=>"bar"}, "printenv", "FOO") do |r, w, pid|
197
+ # p r.read #=> "bar\r\n"
198
+ # ensure
199
+ # r.close; w.close; Process.wait(pid)
200
+ # end
201
+ # # unsets FOO
202
+ # PTY.spawn({"FOO"=>nil}, "printenv", "FOO") do |r, w, pid|
203
+ # p r.read #=> ""
204
+ # ensure
205
+ # r.close; w.close; Process.wait(pid)
206
+ # end
207
+ #
208
+ # `command` and `command_line` are the full commands to run, given a String. Any
209
+ # additional `arguments` will be passed to the command.
210
+ #
211
+ # ### Return values
212
+ #
213
+ # In the non-block form this returns an array of size three, <code>[r, w,
214
+ # pid]</code>.
215
+ #
216
+ # In the block form these same values will be yielded to the block:
217
+ #
218
+ # `r`
219
+ # : A readable IO that contains the command's standard output and standard
220
+ # error
221
+ #
222
+ # `w`
223
+ # : A writable IO that is the command's standard input
224
+ #
225
+ # `pid`
226
+ # : The process identifier for the command.
227
+ #
228
+ #
229
+ # ### Clean up
230
+ #
231
+ # This method does not clean up like closing IOs or waiting for child process,
232
+ # except that the process is detached in the block form to prevent it from
233
+ # becoming a zombie (see Process.detach). Any other cleanup is the
234
+ # responsibility of the caller. If waiting for `pid`, be sure to close both `r`
235
+ # and `w` before doing so; doing it in the reverse order may cause deadlock on
236
+ # some OSes.
237
+ #
238
+ def self.spawn: (*String command) -> [ IO, IO, Integer ]
239
+ | (*String command) { ([ IO, IO, Integer ]) -> void } -> void
240
+ end
@@ -0,0 +1,277 @@
1
+ module RBS
2
+ module Unnamed
3
+ module Random_Formatter
4
+ # <!--
5
+ # rdoc-file=lib/random/formatter.rb
6
+ # - base64(n=nil)
7
+ # -->
8
+ # Generate a random base64 string.
9
+ #
10
+ # The argument *n* specifies the length, in bytes, of the random number to be
11
+ # generated. The length of the result string is about 4/3 of *n*.
12
+ #
13
+ # If *n* is not specified or is nil, 16 is assumed. It may be larger in the
14
+ # future.
15
+ #
16
+ # The result may contain A-Z, a-z, 0-9, "+", "/" and "=".
17
+ #
18
+ # require 'random/formatter'
19
+ #
20
+ # Random.base64 #=> "/2BuBuLf3+WfSKyQbRcc/A=="
21
+ # # or
22
+ # prng = Random.new
23
+ # prng.base64 #=> "6BbW0pxO0YENxn38HMUbcQ=="
24
+ #
25
+ # See RFC 3548 for the definition of base64.
26
+ #
27
+ %a{annotate:rdoc:copy:Random::Formatter#base64}
28
+ def base64: (?Integer? n) -> String
29
+
30
+ # <!--
31
+ # rdoc-file=lib/random/formatter.rb
32
+ # - hex(n=nil)
33
+ # -->
34
+ # Generate a random hexadecimal string.
35
+ #
36
+ # The argument *n* specifies the length, in bytes, of the random number to be
37
+ # generated. The length of the resulting hexadecimal string is twice of *n*.
38
+ #
39
+ # If *n* is not specified or is nil, 16 is assumed. It may be larger in the
40
+ # future.
41
+ #
42
+ # The result may contain 0-9 and a-f.
43
+ #
44
+ # require 'random/formatter'
45
+ #
46
+ # Random.hex #=> "eb693ec8252cd630102fd0d0fb7c3485"
47
+ # # or
48
+ # prng = Random.new
49
+ # prng.hex #=> "91dc3bfb4de5b11d029d376634589b61"
50
+ #
51
+ %a{annotate:rdoc:copy:Random::Formatter#hex}
52
+ def hex: (?Integer? n) -> String
53
+
54
+ # <!--
55
+ # rdoc-file=lib/random/formatter.rb
56
+ # - random_bytes(n=nil)
57
+ # -->
58
+ # Generate a random binary string.
59
+ #
60
+ # The argument *n* specifies the length of the result string.
61
+ #
62
+ # If *n* is not specified or is nil, 16 is assumed. It may be larger in future.
63
+ #
64
+ # The result may contain any byte: "x00" - "xff".
65
+ #
66
+ # require 'random/formatter'
67
+ #
68
+ # Random.random_bytes #=> "\xD8\\\xE0\xF4\r\xB2\xFC*WM\xFF\x83\x18\xF45\xB6"
69
+ # # or
70
+ # prng = Random.new
71
+ # prng.random_bytes #=> "m\xDC\xFC/\a\x00Uf\xB2\xB2P\xBD\xFF6S\x97"
72
+ #
73
+ %a{annotate:rdoc:copy:Random::Formatter#random_bytes}
74
+ def random_bytes: (?Integer? n) -> String
75
+
76
+ # <!--
77
+ # rdoc-file=lib/random/formatter.rb
78
+ # - urlsafe_base64(n=nil, padding=false)
79
+ # -->
80
+ # Generate a random URL-safe base64 string.
81
+ #
82
+ # The argument *n* specifies the length, in bytes, of the random number to be
83
+ # generated. The length of the result string is about 4/3 of *n*.
84
+ #
85
+ # If *n* is not specified or is nil, 16 is assumed. It may be larger in the
86
+ # future.
87
+ #
88
+ # The boolean argument *padding* specifies the padding. If it is false or nil,
89
+ # padding is not generated. Otherwise padding is generated. By default, padding
90
+ # is not generated because "=" may be used as a URL delimiter.
91
+ #
92
+ # The result may contain A-Z, a-z, 0-9, "-" and "_". "=" is also used if
93
+ # *padding* is true.
94
+ #
95
+ # require 'random/formatter'
96
+ #
97
+ # Random.urlsafe_base64 #=> "b4GOKm4pOYU_-BOXcrUGDg"
98
+ # # or
99
+ # prng = Random.new
100
+ # prng.urlsafe_base64 #=> "UZLdOkzop70Ddx-IJR0ABg"
101
+ #
102
+ # prng.urlsafe_base64(nil, true) #=> "i0XQ-7gglIsHGV2_BNPrdQ=="
103
+ # prng.urlsafe_base64(nil, true) #=> "-M8rLhr7JEpJlqFGUMmOxg=="
104
+ #
105
+ # See RFC 3548 for the definition of URL-safe base64.
106
+ #
107
+ %a{annotate:rdoc:copy:Random::Formatter#urlsafe_base64}
108
+ def urlsafe_base64: (?Integer? n, ?boolish padding) -> String
109
+
110
+ # <!--
111
+ # rdoc-file=lib/random/formatter.rb
112
+ # - uuid()
113
+ # -->
114
+ # Generate a random v4 UUID (Universally Unique IDentifier).
115
+ #
116
+ # require 'random/formatter'
117
+ #
118
+ # Random.uuid #=> "2d931510-d99f-494a-8c67-87feb05e1594"
119
+ # Random.uuid #=> "bad85eb9-0713-4da7-8d36-07a8e4b00eab"
120
+ # # or
121
+ # prng = Random.new
122
+ # prng.uuid #=> "62936e70-1815-439b-bf89-8492855a7e6b"
123
+ #
124
+ # The version 4 UUID is purely random (except the version). It doesn't contain
125
+ # meaningful information such as MAC addresses, timestamps, etc.
126
+ #
127
+ # The result contains 122 random bits (15.25 random bytes).
128
+ #
129
+ # See [RFC9562](https://www.rfc-editor.org/rfc/rfc9562) for details of UUIDv4.
130
+ #
131
+ %a{annotate:rdoc:copy:Random::Formatter#uuid}
132
+ def uuid: () -> String
133
+
134
+ # <!--
135
+ # rdoc-file=lib/random/formatter.rb
136
+ # - uuid_v4()
137
+ # -->
138
+ #
139
+ %a{annotate:rdoc:copy:Random::Formatter#uuid_v4}
140
+ alias uuid_v4 uuid
141
+
142
+ # <!--
143
+ # rdoc-file=lib/random/formatter.rb
144
+ # - uuid_v7(extra_timestamp_bits: 0)
145
+ # -->
146
+ # Generate a random v7 UUID (Universally Unique IDentifier).
147
+ #
148
+ # require 'random/formatter'
149
+ #
150
+ # Random.uuid_v7 # => "0188d4c3-1311-7f96-85c7-242a7aa58f1e"
151
+ # Random.uuid_v7 # => "0188d4c3-16fe-744f-86af-38fa04c62bb5"
152
+ # Random.uuid_v7 # => "0188d4c3-1af8-764f-b049-c204ce0afa23"
153
+ # Random.uuid_v7 # => "0188d4c3-1e74-7085-b14f-ef6415dc6f31"
154
+ # # |<--sorted-->| |<----- random ---->|
155
+ #
156
+ # # or
157
+ # prng = Random.new
158
+ # prng.uuid_v7 # => "0188ca51-5e72-7950-a11d-def7ff977c98"
159
+ #
160
+ # The version 7 UUID starts with the least significant 48 bits of a 64 bit Unix
161
+ # timestamp (milliseconds since the epoch) and fills the remaining bits with
162
+ # random data, excluding the version and variant bits.
163
+ #
164
+ # This allows version 7 UUIDs to be sorted by creation time. Time ordered UUIDs
165
+ # can be used for better database index locality of newly inserted records,
166
+ # which may have a significant performance benefit compared to random data
167
+ # inserts.
168
+ #
169
+ # The result contains 74 random bits (9.25 random bytes).
170
+ #
171
+ # Note that this method cannot be made reproducible because its output includes
172
+ # not only random bits but also timestamp.
173
+ #
174
+ # See [RFC9562](https://www.rfc-editor.org/rfc/rfc9562) for details of UUIDv7.
175
+ #
176
+ # #### Monotonicity
177
+ #
178
+ # UUIDv7 has millisecond precision by default, so multiple UUIDs created within
179
+ # the same millisecond are not issued in monotonically increasing order. To
180
+ # create UUIDs that are time-ordered with sub-millisecond precision, up to 12
181
+ # bits of additional timestamp may added with `extra_timestamp_bits`. The extra
182
+ # timestamp precision comes at the expense of random bits. Setting
183
+ # <code>extra_timestamp_bits: 12</code> provides ~244ns of precision, but only
184
+ # 62 random bits (7.75 random bytes).
185
+ #
186
+ # prng = Random.new
187
+ # Array.new(4) { prng.uuid_v7(extra_timestamp_bits: 12) }
188
+ # # =>
189
+ # ["0188d4c7-13da-74f9-8b53-22a786ffdd5a",
190
+ # "0188d4c7-13da-753b-83a5-7fb9b2afaeea",
191
+ # "0188d4c7-13da-754a-88ea-ac0baeedd8db",
192
+ # "0188d4c7-13da-7557-83e1-7cad9cda0d8d"]
193
+ # # |<--- sorted --->| |<-- random --->|
194
+ #
195
+ # Array.new(4) { prng.uuid_v7(extra_timestamp_bits: 8) }
196
+ # # =>
197
+ # ["0188d4c7-3333-7a95-850a-de6edb858f7e",
198
+ # "0188d4c7-3333-7ae8-842e-bc3a8b7d0cf9", # <- out of order
199
+ # "0188d4c7-3333-7ae2-995a-9f135dc44ead", # <- out of order
200
+ # "0188d4c7-3333-7af9-87c3-8f612edac82e"]
201
+ # # |<--- sorted -->||<---- random --->|
202
+ #
203
+ # Any rollbacks of the system clock will break monotonicity. UUIDv7 is based on
204
+ # UTC, which excludes leap seconds and can rollback the clock. To avoid this,
205
+ # the system clock can synchronize with an NTP server configured to use a "leap
206
+ # smear" approach. NTP or PTP will also be needed to synchronize across
207
+ # distributed nodes.
208
+ #
209
+ # Counters and other mechanisms for stronger guarantees of monotonicity are not
210
+ # implemented. Applications with stricter requirements should follow [Section
211
+ # 6.2](https://www.rfc-editor.org/rfc/rfc9562.html#name-monotonicity-and-counter
212
+ # s) of the specification.
213
+ #
214
+ %a{annotate:rdoc:copy:Random::Formatter#uuid_v7}
215
+ def uuid_v7: (?extra_timestamp_bits: Integer) -> String
216
+
217
+ # <!--
218
+ # rdoc-file=lib/random/formatter.rb
219
+ # - alphanumeric(n = nil, chars: ALPHANUMERIC)
220
+ # -->
221
+ # Generate a random alphanumeric string.
222
+ #
223
+ # The argument *n* specifies the length, in characters, of the alphanumeric
224
+ # string to be generated. The argument *chars* specifies the character list
225
+ # which the result is consist of.
226
+ #
227
+ # If *n* is not specified or is nil, 16 is assumed. It may be larger in the
228
+ # future.
229
+ #
230
+ # The result may contain A-Z, a-z and 0-9, unless *chars* is specified.
231
+ #
232
+ # require 'random/formatter'
233
+ #
234
+ # Random.alphanumeric #=> "2BuBuLf3WfSKyQbR"
235
+ # # or
236
+ # prng = Random.new
237
+ # prng.alphanumeric(10) #=> "i6K93NdqiH"
238
+ #
239
+ # Random.alphanumeric(4, chars: [*"0".."9"]) #=> "2952"
240
+ # # or
241
+ # prng = Random.new
242
+ # prng.alphanumeric(10, chars: [*"!".."/"]) #=> ",.,++%/''."
243
+ #
244
+ %a{annotate:rdoc:copy:Random::Formatter#alphanumeric}
245
+ def alphanumeric: (?Numeric?, ?chars: Array[String]) -> String
246
+
247
+ # <!--
248
+ # rdoc-file=lib/random/formatter.rb
249
+ # - gen_random(n)
250
+ # -->
251
+ # Internal interface to Random; Generate random data *n* bytes.
252
+ #
253
+ %a{annotate:rdoc:copy:Random::Formatter#gen_random}
254
+ private def gen_random: (Integer n) -> String
255
+
256
+ # <!--
257
+ # rdoc-file=lib/random/formatter.rb
258
+ # - choose(source, n)
259
+ # -->
260
+ # Generate a string that randomly draws from a source array of characters.
261
+ #
262
+ # The argument *source* specifies the array of characters from which to generate
263
+ # the string. The argument *n* specifies the length, in characters, of the
264
+ # string to be generated.
265
+ #
266
+ # The result may contain whatever characters are in the source array.
267
+ #
268
+ # require 'random/formatter'
269
+ #
270
+ # prng.choose([*'l'..'r'], 16) #=> "lmrqpoonmmlqlron"
271
+ # prng.choose([*'0'..'9'], 5) #=> "27309"
272
+ #
273
+ %a{annotate:rdoc:copy:Random::Formatter#choose}
274
+ private def choose: (Array[String] source, Integer n) -> String
275
+ end
276
+ end
277
+ end
@@ -0,0 +1,52 @@
1
+ %a{annotate:rdoc:skip}
2
+ module RDoc
3
+ # <!-- rdoc-file=lib/rdoc/code_object.rb -->
4
+ # Base class for the RDoc code tree.
5
+ #
6
+ # We contain the common stuff for contexts (which are containers) and other
7
+ # elements (methods, attributes and so on)
8
+ #
9
+ # Here's the tree of the CodeObject subclasses:
10
+ #
11
+ # * RDoc::Context
12
+ # * RDoc::TopLevel
13
+ # * RDoc::ClassModule
14
+ # * RDoc::AnonClass (never used so far)
15
+ # * RDoc::NormalClass
16
+ # * RDoc::NormalModule
17
+ # * RDoc::SingleClass
18
+ # * RDoc::MethodAttr
19
+ # * RDoc::Attr
20
+ # * RDoc::AnyMethod
21
+ # * RDoc::GhostMethod
22
+ # * RDoc::MetaMethod
23
+ # * RDoc::Alias
24
+ # * RDoc::Constant
25
+ # * RDoc::Require
26
+ # * RDoc::Mixin
27
+ # * RDoc::Include
28
+ # * RDoc::Extend
29
+ #
30
+ class CodeObject
31
+ # <!-- rdoc-file=lib/rdoc/code_object.rb -->
32
+ # Our comment
33
+ #
34
+ attr_reader comment: Comment | String
35
+
36
+ # <!--
37
+ # rdoc-file=lib/rdoc/code_object.rb
38
+ # - new()
39
+ # -->
40
+ # Creates a new CodeObject that will document itself and its children
41
+ #
42
+ def initialize: () -> void
43
+
44
+ # <!--
45
+ # rdoc-file=lib/rdoc/code_object.rb
46
+ # - comment=(comment)
47
+ # -->
48
+ # Replaces our comment with `comment`, unless it is empty.
49
+ #
50
+ def comment=: (Comment | String | nil) -> (Comment | String | nil)
51
+ end
52
+ end
@@ -0,0 +1,61 @@
1
+ %a{annotate:rdoc:skip}
2
+ module RDoc
3
+ # <!-- rdoc-file=lib/rdoc/comment.rb -->
4
+ # A comment holds the text comment for a RDoc::CodeObject and provides a unified
5
+ # way of cleaning it up and parsing it into an RDoc::Markup::Document.
6
+ #
7
+ # Each comment may have a different markup format set by #format=. By default
8
+ # 'rdoc' is used. The :markup: directive tells RDoc which format to use.
9
+ #
10
+ # See RDoc::MarkupReference@Directive+for+Specifying+RDoc+Source+Format.
11
+ #
12
+ class Comment
13
+ # <!-- rdoc-file=lib/rdoc/comment.rb -->
14
+ # The format of this comment. Defaults to RDoc::Markup
15
+ #
16
+ attr_reader format: String
17
+
18
+ # <!-- rdoc-file=lib/rdoc/comment.rb -->
19
+ # The RDoc::TopLevel this comment was found in
20
+ #
21
+ attr_accessor location: String
22
+
23
+ alias file location
24
+
25
+ # <!--
26
+ # rdoc-file=lib/rdoc/comment.rb
27
+ # - new(text = nil, location = nil, language = nil)
28
+ # -->
29
+ # Creates a new comment with `text` that is found in the RDoc::TopLevel
30
+ # `location`.
31
+ #
32
+ def initialize: (?String? text, ?RDoc::Context? location, ?String? language) -> void
33
+
34
+ # <!--
35
+ # rdoc-file=lib/rdoc/comment.rb
36
+ # - format=(format)
37
+ # -->
38
+ # Sets the format of this comment and resets any parsed document
39
+ #
40
+ def format=: (String format) -> void
41
+
42
+ def normalized?: () -> bool
43
+
44
+ # <!--
45
+ # rdoc-file=lib/rdoc/comment.rb
46
+ # - normalize()
47
+ # -->
48
+ # Normalizes the text. See RDoc::Text#normalize_comment for details
49
+ #
50
+ def normalize: () -> self
51
+
52
+ # <!--
53
+ # rdoc-file=lib/rdoc/comment.rb
54
+ # - parse()
55
+ # -->
56
+ # Parses the comment into an RDoc::Markup::Document. The parsed document is
57
+ # cached until the text is changed.
58
+ #
59
+ def parse: () -> Markup::Document
60
+ end
61
+ end