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
data/core/rational.rbs ADDED
@@ -0,0 +1,502 @@
1
+ # <!-- rdoc-file=rational.c -->
2
+ # A rational number can be represented as a pair of integer numbers: a/b (b>0),
3
+ # where a is the numerator and b is the denominator. Integer a equals rational
4
+ # a/1 mathematically.
5
+ #
6
+ # You can create a Rational object explicitly with:
7
+ #
8
+ # * A [rational literal](rdoc-ref:syntax/literals.rdoc@Rational+Literals).
9
+ #
10
+ # You can convert certain objects to Rationals with:
11
+ #
12
+ # * Method #Rational.
13
+ #
14
+ # Examples
15
+ #
16
+ # Rational(1) #=> (1/1)
17
+ # Rational(2, 3) #=> (2/3)
18
+ # Rational(4, -6) #=> (-2/3) # Reduced.
19
+ # 3.to_r #=> (3/1)
20
+ # 2/3r #=> (2/3)
21
+ #
22
+ # You can also create rational objects from floating-point numbers or strings.
23
+ #
24
+ # Rational(0.3) #=> (5404319552844595/18014398509481984)
25
+ # Rational('0.3') #=> (3/10)
26
+ # Rational('2/3') #=> (2/3)
27
+ #
28
+ # 0.3.to_r #=> (5404319552844595/18014398509481984)
29
+ # '0.3'.to_r #=> (3/10)
30
+ # '2/3'.to_r #=> (2/3)
31
+ # 0.3.rationalize #=> (3/10)
32
+ #
33
+ # A rational object is an exact number, which helps you to write programs
34
+ # without any rounding errors.
35
+ #
36
+ # 10.times.inject(0) {|t| t + 0.1 } #=> 0.9999999999999999
37
+ # 10.times.inject(0) {|t| t + Rational('0.1') } #=> (1/1)
38
+ #
39
+ # However, when an expression includes an inexact component (numerical value or
40
+ # operation), it will produce an inexact result.
41
+ #
42
+ # Rational(10) / 3 #=> (10/3)
43
+ # Rational(10) / 3.0 #=> 3.3333333333333335
44
+ #
45
+ # Rational(-8) ** Rational(1, 3)
46
+ # #=> (1.0000000000000002+1.7320508075688772i)
47
+ #
48
+ class Rational < Numeric
49
+ def %: (Integer) -> Rational
50
+ | (Float) -> Float
51
+ | (Rational) -> Rational
52
+ | (Numeric) -> Numeric
53
+
54
+ # <!--
55
+ # rdoc-file=rational.c
56
+ # - self * other -> numeric
57
+ # -->
58
+ # Returns the numeric product of `self` and `other`:
59
+ #
60
+ # Rational(9, 8) * 4 #=> (9/2)
61
+ # Rational(20, 9) * 9.8 #=> 21.77777777777778
62
+ # Rational(9, 8) * Complex(1, 2) # => ((9/8)+(9/4)*i)
63
+ # Rational(2, 3) * Rational(2, 3) #=> (4/9)
64
+ # Rational(900) * Rational(1) #=> (900/1)
65
+ # Rational(-2, 9) * Rational(-9, 2) #=> (1/1)
66
+ #
67
+ def *: (Integer) -> Rational
68
+ | (Rational) -> Rational
69
+ | [T < Numeric](T) -> T
70
+
71
+ # <!--
72
+ # rdoc-file=rational.c
73
+ # - self ** exponent -> numeric
74
+ # -->
75
+ # Returns `self` raised to the power `exponent`:
76
+ #
77
+ # Rational(2) ** Rational(3) #=> (8/1)
78
+ # Rational(10) ** -2 #=> (1/100)
79
+ # Rational(10) ** -2.0 #=> 0.01
80
+ # Rational(-4) ** Rational(1, 2) #=> (0.0+2.0i)
81
+ # Rational(1, 2) ** 0 #=> (1/1)
82
+ # Rational(1, 2) ** 0.0 #=> 1.0
83
+ #
84
+ def **: (Complex) -> Complex
85
+ | (Numeric) -> Numeric
86
+
87
+ # <!--
88
+ # rdoc-file=rational.c
89
+ # - self + other -> numeric
90
+ # -->
91
+ # Returns the sum of `self` and `other`:
92
+ #
93
+ # Rational(2, 3) + 0 # => (2/3)
94
+ # Rational(2, 3) + 1 # => (5/3)
95
+ # Rational(2, 3) + -1 # => (-1/3)
96
+ #
97
+ # Rational(2, 3) + Complex(1, 0) # => ((5/3)+0i)
98
+ #
99
+ # Rational(2, 3) + Rational(1, 1) # => (5/3)
100
+ # Rational(2, 3) + Rational(3, 2) # => (13/6)
101
+ # Rational(2, 3) + Rational(3.0, 2.0) # => (13/6)
102
+ # Rational(2, 3) + Rational(3.1, 2.1) # => (30399297484750849/14186338826217063)
103
+ #
104
+ # For a computation involving Floats, the result may be inexact (see Float#+):
105
+ #
106
+ # Rational(2, 3) + 1.0 # => 1.6666666666666665
107
+ # Rational(2, 3) + Complex(1.0, 0.0) # => (1.6666666666666665+0.0i)
108
+ #
109
+ def +: (Float) -> Float
110
+ | (Complex) -> Complex
111
+ | (Numeric) -> Rational
112
+
113
+ # <!--
114
+ # rdoc-file=rational.c
115
+ # - self - other -> numeric
116
+ # -->
117
+ # Returns the difference of `self` and `other`:
118
+ #
119
+ # Rational(2, 3) - Rational(2, 3) #=> (0/1)
120
+ # Rational(900) - Rational(1) #=> (899/1)
121
+ # Rational(-2, 9) - Rational(-9, 2) #=> (77/18)
122
+ # Rational(9, 8) - 4 #=> (-23/8)
123
+ # Rational(20, 9) - 9.8 #=> -7.577777777777778
124
+ #
125
+ def -: (Float) -> Float
126
+ | (Complex) -> Complex
127
+ | (Numeric) -> Rational
128
+
129
+ # <!--
130
+ # rdoc-file=rational.c
131
+ # - -self -> rational
132
+ # -->
133
+ # Returns `self`, negated:
134
+ #
135
+ # -(1/3r) # => (-1/3)
136
+ # -(-1/3r) # => (1/3)
137
+ #
138
+ def -@: () -> Rational
139
+
140
+ # <!--
141
+ # rdoc-file=rational.c
142
+ # - self / other -> numeric
143
+ # -->
144
+ # Returns the quotient of `self` and `other`:
145
+ #
146
+ # Rational(2, 3) / Rational(2, 3) #=> (1/1)
147
+ # Rational(900) / Rational(1) #=> (900/1)
148
+ # Rational(-2, 9) / Rational(-9, 2) #=> (4/81)
149
+ # Rational(9, 8) / 4 #=> (9/32)
150
+ # Rational(20, 9) / 9.8 #=> 0.22675736961451246
151
+ #
152
+ def /: (Float) -> Float
153
+ | (Complex) -> Complex
154
+ | (Numeric) -> Rational
155
+
156
+ # <!--
157
+ # rdoc-file=rational.c
158
+ # - self <=> other -> -1, 0, 1, or nil
159
+ # -->
160
+ # Compares `self` and `other`.
161
+ #
162
+ # Returns:
163
+ #
164
+ # * <code>-1</code>, if `self` is less than `other`.
165
+ # * `0`, if the two values are the same.
166
+ # * `1`, if `self` is greater than `other`.
167
+ # * `nil`, if the two values are incomparable.
168
+ #
169
+ # Examples:
170
+ #
171
+ # Rational(2, 3) <=> Rational(4, 3) # => -1
172
+ # Rational(2, 1) <=> Rational(2, 1) # => 0
173
+ # Rational(2, 1) <=> 2 # => 0
174
+ # Rational(2, 1) <=> 2.0 # => 0
175
+ # Rational(2, 1) <=> Complex(2, 0) # => 0
176
+ # Rational(4, 3) <=> Rational(2, 3) # => 1
177
+ # Rational(4, 3) <=> :foo # => nil
178
+ #
179
+ # Class Rational includes module Comparable, each of whose methods uses
180
+ # Rational#<=> for comparison.
181
+ #
182
+ def <=>: (Integer | Rational) -> Integer
183
+ | (untyped) -> Integer?
184
+
185
+ # <!--
186
+ # rdoc-file=rational.c
187
+ # - rat == object -> true or false
188
+ # -->
189
+ # Returns `true` if `rat` equals `object` numerically.
190
+ #
191
+ # Rational(2, 3) == Rational(2, 3) #=> true
192
+ # Rational(5) == 5 #=> true
193
+ # Rational(0) == 0.0 #=> true
194
+ # Rational('1/3') == 0.33 #=> false
195
+ # Rational('1/2') == '1/2' #=> false
196
+ #
197
+ def ==: (untyped) -> bool
198
+
199
+ # <!--
200
+ # rdoc-file=rational.c
201
+ # - rat.abs -> rational
202
+ # - rat.magnitude -> rational
203
+ # -->
204
+ # Returns the absolute value of `rat`.
205
+ #
206
+ # (1/2r).abs #=> (1/2)
207
+ # (-1/2r).abs #=> (1/2)
208
+ #
209
+ def abs: () -> Rational
210
+
211
+ # <!--
212
+ # rdoc-file=rational.c
213
+ # - rat.ceil([ndigits]) -> integer or rational
214
+ # -->
215
+ # Returns the smallest number greater than or equal to `rat` with a precision of
216
+ # `ndigits` decimal digits (default: 0).
217
+ #
218
+ # When the precision is negative, the returned value is an integer with at least
219
+ # <code>ndigits.abs</code> trailing zeros.
220
+ #
221
+ # Returns a rational when `ndigits` is positive, otherwise returns an integer.
222
+ #
223
+ # Rational(3).ceil #=> 3
224
+ # Rational(2, 3).ceil #=> 1
225
+ # Rational(-3, 2).ceil #=> -1
226
+ #
227
+ # # decimal - 1 2 3 . 4 5 6
228
+ # # ^ ^ ^ ^ ^ ^
229
+ # # precision -3 -2 -1 0 +1 +2
230
+ #
231
+ # Rational('-123.456').ceil(+1).to_f #=> -123.4
232
+ # Rational('-123.456').ceil(-1) #=> -120
233
+ #
234
+ def ceil: () -> Integer
235
+ | (Integer digits) -> (Integer | Rational)
236
+
237
+ def coerce: (Numeric) -> [ Numeric, Numeric ]
238
+
239
+ # <!--
240
+ # rdoc-file=rational.c
241
+ # - rat.denominator -> integer
242
+ # -->
243
+ # Returns the denominator (always positive).
244
+ #
245
+ # Rational(7).denominator #=> 1
246
+ # Rational(7, 1).denominator #=> 1
247
+ # Rational(9, -4).denominator #=> 4
248
+ # Rational(-2, -10).denominator #=> 5
249
+ #
250
+ def denominator: () -> Integer
251
+
252
+ def divmod: (Integer | Float | Rational) -> [ Integer, Rational ]
253
+ | (Numeric) -> [ Numeric, Numeric ]
254
+
255
+ # <!--
256
+ # rdoc-file=rational.c
257
+ # - rat.fdiv(numeric) -> float
258
+ # -->
259
+ # Performs division and returns the value as a Float.
260
+ #
261
+ # Rational(2, 3).fdiv(1) #=> 0.6666666666666666
262
+ # Rational(2, 3).fdiv(0.5) #=> 1.3333333333333333
263
+ # Rational(2).fdiv(3) #=> 0.6666666666666666
264
+ #
265
+ def fdiv: (Numeric) -> Float
266
+
267
+ # <!--
268
+ # rdoc-file=rational.c
269
+ # - rat.floor([ndigits]) -> integer or rational
270
+ # -->
271
+ # Returns the largest number less than or equal to `rat` with a precision of
272
+ # `ndigits` decimal digits (default: 0).
273
+ #
274
+ # When the precision is negative, the returned value is an integer with at least
275
+ # <code>ndigits.abs</code> trailing zeros.
276
+ #
277
+ # Returns a rational when `ndigits` is positive, otherwise returns an integer.
278
+ #
279
+ # Rational(3).floor #=> 3
280
+ # Rational(2, 3).floor #=> 0
281
+ # Rational(-3, 2).floor #=> -2
282
+ #
283
+ # # decimal - 1 2 3 . 4 5 6
284
+ # # ^ ^ ^ ^ ^ ^
285
+ # # precision -3 -2 -1 0 +1 +2
286
+ #
287
+ # Rational('-123.456').floor(+1).to_f #=> -123.5
288
+ # Rational('-123.456').floor(-1) #=> -130
289
+ #
290
+ def floor: () -> Integer
291
+ | (Integer digits) -> (Integer | Rational)
292
+
293
+ # <!--
294
+ # rdoc-file=rational.c
295
+ # - hash()
296
+ # -->
297
+ #
298
+ def hash: () -> Integer
299
+
300
+ # <!--
301
+ # rdoc-file=rational.c
302
+ # - rat.inspect -> string
303
+ # -->
304
+ # Returns the value as a string for inspection.
305
+ #
306
+ # Rational(2).inspect #=> "(2/1)"
307
+ # Rational(-8, 6).inspect #=> "(-4/3)"
308
+ # Rational('1/2').inspect #=> "(1/2)"
309
+ #
310
+ def inspect: () -> String
311
+
312
+ # <!-- rdoc-file=rational.c -->
313
+ # Returns the absolute value of `rat`.
314
+ #
315
+ # (1/2r).abs #=> (1/2)
316
+ # (-1/2r).abs #=> (1/2)
317
+ #
318
+ alias magnitude abs
319
+
320
+ def modulo: (Float) -> Float
321
+ | (Numeric) -> Rational
322
+
323
+ # <!--
324
+ # rdoc-file=rational.c
325
+ # - rat.negative? -> true or false
326
+ # -->
327
+ # Returns `true` if `rat` is less than 0.
328
+ #
329
+ def negative?: () -> bool
330
+
331
+ # <!--
332
+ # rdoc-file=rational.c
333
+ # - rat.numerator -> integer
334
+ # -->
335
+ # Returns the numerator.
336
+ #
337
+ # Rational(7).numerator #=> 7
338
+ # Rational(7, 1).numerator #=> 7
339
+ # Rational(9, -4).numerator #=> -9
340
+ # Rational(-2, -10).numerator #=> 1
341
+ #
342
+ def numerator: () -> Integer
343
+
344
+ def polar: () -> [ Rational, Integer | Float ]
345
+
346
+ # <!--
347
+ # rdoc-file=rational.c
348
+ # - rat.positive? -> true or false
349
+ # -->
350
+ # Returns `true` if `rat` is greater than 0.
351
+ #
352
+ def positive?: () -> bool
353
+
354
+ # <!-- rdoc-file=rational.c -->
355
+ # Returns the quotient of `self` and `other`:
356
+ #
357
+ # Rational(2, 3) / Rational(2, 3) #=> (1/1)
358
+ # Rational(900) / Rational(1) #=> (900/1)
359
+ # Rational(-2, 9) / Rational(-9, 2) #=> (4/81)
360
+ # Rational(9, 8) / 4 #=> (9/32)
361
+ # Rational(20, 9) / 9.8 #=> 0.22675736961451246
362
+ #
363
+ def quo: (Float) -> Float
364
+ | (Complex) -> Complex
365
+ | (Numeric) -> Rational
366
+
367
+ # <!--
368
+ # rdoc-file=rational.c
369
+ # - rat.rationalize -> self
370
+ # - rat.rationalize(eps) -> rational
371
+ # -->
372
+ # Returns a simpler approximation of the value if the optional argument `eps` is
373
+ # given (rat-|eps| <= result <= rat+|eps|), self otherwise.
374
+ #
375
+ # r = Rational(5033165, 16777216)
376
+ # r.rationalize #=> (5033165/16777216)
377
+ # r.rationalize(Rational('0.01')) #=> (3/10)
378
+ # r.rationalize(Rational('0.1')) #=> (1/3)
379
+ #
380
+ def rationalize: (?Numeric eps) -> Rational
381
+
382
+ def rect: () -> [ Rational, Numeric ]
383
+
384
+ def remainder: (Float) -> Float
385
+ | (Numeric) -> Rational
386
+
387
+ # <!--
388
+ # rdoc-file=rational.c
389
+ # - rat.round([ndigits] [, half: mode]) -> integer or rational
390
+ # -->
391
+ # Returns `rat` rounded to the nearest value with a precision of `ndigits`
392
+ # decimal digits (default: 0).
393
+ #
394
+ # When the precision is negative, the returned value is an integer with at least
395
+ # <code>ndigits.abs</code> trailing zeros.
396
+ #
397
+ # Returns a rational when `ndigits` is positive, otherwise returns an integer.
398
+ #
399
+ # Rational(3).round #=> 3
400
+ # Rational(2, 3).round #=> 1
401
+ # Rational(-3, 2).round #=> -2
402
+ #
403
+ # # decimal - 1 2 3 . 4 5 6
404
+ # # ^ ^ ^ ^ ^ ^
405
+ # # precision -3 -2 -1 0 +1 +2
406
+ #
407
+ # Rational('-123.456').round(+1).to_f #=> -123.5
408
+ # Rational('-123.456').round(-1) #=> -120
409
+ #
410
+ # The optional `half` keyword argument is available similar to Float#round.
411
+ #
412
+ # Rational(25, 100).round(1, half: :up) #=> (3/10)
413
+ # Rational(25, 100).round(1, half: :down) #=> (1/5)
414
+ # Rational(25, 100).round(1, half: :even) #=> (1/5)
415
+ # Rational(35, 100).round(1, half: :up) #=> (2/5)
416
+ # Rational(35, 100).round(1, half: :down) #=> (3/10)
417
+ # Rational(35, 100).round(1, half: :even) #=> (2/5)
418
+ # Rational(-25, 100).round(1, half: :up) #=> (-3/10)
419
+ # Rational(-25, 100).round(1, half: :down) #=> (-1/5)
420
+ # Rational(-25, 100).round(1, half: :even) #=> (-1/5)
421
+ #
422
+ def round: (?half: :up | :down | :even) -> Integer
423
+ | (Integer digits, ?half: :up | :down | :even) -> (Integer | Rational)
424
+
425
+ # <!--
426
+ # rdoc-file=rational.c
427
+ # - rat.to_f -> float
428
+ # -->
429
+ # Returns the value as a Float.
430
+ #
431
+ # Rational(2).to_f #=> 2.0
432
+ # Rational(9, 4).to_f #=> 2.25
433
+ # Rational(-3, 4).to_f #=> -0.75
434
+ # Rational(20, 3).to_f #=> 6.666666666666667
435
+ #
436
+ def to_f: () -> Float
437
+
438
+ # <!--
439
+ # rdoc-file=rational.c
440
+ # - rat.to_i -> integer
441
+ # -->
442
+ # Returns the truncated value as an integer.
443
+ #
444
+ # Equivalent to Rational#truncate.
445
+ #
446
+ # Rational(2, 3).to_i #=> 0
447
+ # Rational(3).to_i #=> 3
448
+ # Rational(300.6).to_i #=> 300
449
+ # Rational(98, 71).to_i #=> 1
450
+ # Rational(-31, 2).to_i #=> -15
451
+ #
452
+ def to_i: () -> Integer
453
+
454
+ # <!--
455
+ # rdoc-file=rational.c
456
+ # - rat.to_r -> self
457
+ # -->
458
+ # Returns self.
459
+ #
460
+ # Rational(2).to_r #=> (2/1)
461
+ # Rational(-8, 6).to_r #=> (-4/3)
462
+ #
463
+ def to_r: () -> Rational
464
+
465
+ # <!--
466
+ # rdoc-file=rational.c
467
+ # - rat.to_s -> string
468
+ # -->
469
+ # Returns the value as a string.
470
+ #
471
+ # Rational(2).to_s #=> "2/1"
472
+ # Rational(-8, 6).to_s #=> "-4/3"
473
+ # Rational('1/2').to_s #=> "1/2"
474
+ #
475
+ def to_s: () -> String
476
+
477
+ # <!--
478
+ # rdoc-file=rational.c
479
+ # - rat.truncate([ndigits]) -> integer or rational
480
+ # -->
481
+ # Returns `rat` truncated (toward zero) to a precision of `ndigits` decimal
482
+ # digits (default: 0).
483
+ #
484
+ # When the precision is negative, the returned value is an integer with at least
485
+ # <code>ndigits.abs</code> trailing zeros.
486
+ #
487
+ # Returns a rational when `ndigits` is positive, otherwise returns an integer.
488
+ #
489
+ # Rational(3).truncate #=> 3
490
+ # Rational(2, 3).truncate #=> 0
491
+ # Rational(-3, 2).truncate #=> -1
492
+ #
493
+ # # decimal - 1 2 3 . 4 5 6
494
+ # # ^ ^ ^ ^ ^ ^
495
+ # # precision -3 -2 -1 0 +1 +2
496
+ #
497
+ # Rational('-123.456').truncate(+1).to_f #=> -123.4
498
+ # Rational('-123.456').truncate(-1) #=> -120
499
+ #
500
+ def truncate: () -> Integer
501
+ | (Integer ndigits) -> (Integer | Rational)
502
+ end
@@ -0,0 +1,88 @@
1
+ # <!-- rdoc-file=rbconfig.rb -->
2
+ # The module storing Ruby interpreter configurations on building.
3
+ #
4
+ # This file was created by mkconfig.rb when ruby was built. It contains build
5
+ # information for ruby which is used e.g. by mkmf to build compatible native
6
+ # extensions. Any changes made to this file will be lost the next time ruby is
7
+ # built.
8
+ #
9
+ module RbConfig
10
+ # <!-- rdoc-file=rbconfig.rb -->
11
+ # The hash configurations stored.
12
+ #
13
+ CONFIG: Hash[String, String]
14
+
15
+ # <!-- rdoc-file=rbconfig.rb -->
16
+ # DESTDIR on make install.
17
+ #
18
+ DESTDIR: String
19
+
20
+ # <!-- rdoc-file=rbconfig.rb -->
21
+ # Almost same with CONFIG. MAKEFILE_CONFIG has other variable reference like
22
+ # below.
23
+ #
24
+ # MAKEFILE_CONFIG["bindir"] = "$(exec_prefix)/bin"
25
+ #
26
+ # The values of this constant is used for creating Makefile.
27
+ #
28
+ # require 'rbconfig'
29
+ #
30
+ # print <<-END_OF_MAKEFILE
31
+ # prefix = #{RbConfig::MAKEFILE_CONFIG['prefix']}
32
+ # exec_prefix = #{RbConfig::MAKEFILE_CONFIG['exec_prefix']}
33
+ # bindir = #{RbConfig::MAKEFILE_CONFIG['bindir']}
34
+ # END_OF_MAKEFILE
35
+ #
36
+ # => prefix = /usr/local
37
+ # exec_prefix = $(prefix)
38
+ # bindir = $(exec_prefix)/bin MAKEFILE_CONFIG = {}
39
+ #
40
+ # RbConfig.expand is used for resolving references like above in rbconfig.
41
+ #
42
+ # require 'rbconfig'
43
+ # p RbConfig.expand(RbConfig::MAKEFILE_CONFIG["bindir"])
44
+ # # => "/usr/local/bin"
45
+ #
46
+ MAKEFILE_CONFIG: Hash[String, String]
47
+
48
+ # <!-- rdoc-file=rbconfig.rb -->
49
+ # Ruby installed directory.
50
+ #
51
+ TOPDIR: String
52
+
53
+ # <!--
54
+ # rdoc-file=rbconfig.rb
55
+ # - RbConfig.expand(val) -> string
56
+ # - RbConfig.expand(val, config) -> string
57
+ # -->
58
+ # expands variable with given `val` value.
59
+ #
60
+ # RbConfig.expand("$(bindir)") # => /home/foobar/all-ruby/ruby19x/bin
61
+ #
62
+ def self.expand: (String val, ?Hash[String, String] config) -> String
63
+
64
+ # <!--
65
+ # rdoc-file=rbconfig.rb
66
+ # - RbConfig.fire_update!(key, val) -> array
67
+ # - RbConfig.fire_update!(key, val, mkconf, conf) -> array
68
+ # -->
69
+ # updates `key+ in `mkconf` with `val`, and all values depending on
70
+ # the `key` in `mkconf`.
71
+ #
72
+ # RbConfig::MAKEFILE_CONFIG.values_at("CC", "LDSHARED") # => ["gcc", "$(CC) -shared"]
73
+ # RbConfig::CONFIG.values_at("CC", "LDSHARED") # => ["gcc", "gcc -shared"]
74
+ # RbConfig.fire_update!("CC", "gcc-8") # => ["CC", "LDSHARED"]
75
+ # RbConfig::MAKEFILE_CONFIG.values_at("CC", "LDSHARED") # => ["gcc-8", "$(CC) -shared"]
76
+ # RbConfig::CONFIG.values_at("CC", "LDSHARED") # => ["gcc-8", "gcc-8 -shared"]
77
+ #
78
+ # returns updated keys list, or `nil` if nothing changed.
79
+ def self.fire_update!: (String key, String val, ?Hash[String, String] mkconf, ?Hash[String, String] conf) -> Array[String]?
80
+
81
+ # <!--
82
+ # rdoc-file=rbconfig.rb
83
+ # - RbConfig.ruby -> path
84
+ # -->
85
+ #
86
+ # returns the absolute pathname of the ruby command.
87
+ def self.ruby: () -> String
88
+ end