rbs-relaxed 3.9.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. checksums.yaml +7 -0
  2. data/.github/dependabot.yml +22 -0
  3. data/.github/workflows/comments.yml +35 -0
  4. data/.github/workflows/dependabot.yml +30 -0
  5. data/.github/workflows/ruby.yml +82 -0
  6. data/.github/workflows/typecheck.yml +38 -0
  7. data/.github/workflows/windows.yml +43 -0
  8. data/.gitignore +23 -0
  9. data/.rubocop.yml +68 -0
  10. data/BSDL +22 -0
  11. data/CHANGELOG.md +1868 -0
  12. data/COPYING +56 -0
  13. data/README.md +203 -0
  14. data/Rakefile +417 -0
  15. data/Steepfile +44 -0
  16. data/config.yml +313 -0
  17. data/core/array.rbs +4062 -0
  18. data/core/basic_object.rbs +375 -0
  19. data/core/binding.rbs +150 -0
  20. data/core/builtin.rbs +277 -0
  21. data/core/class.rbs +220 -0
  22. data/core/comparable.rbs +171 -0
  23. data/core/complex.rbs +786 -0
  24. data/core/constants.rbs +96 -0
  25. data/core/data.rbs +415 -0
  26. data/core/dir.rbs +981 -0
  27. data/core/encoding.rbs +1371 -0
  28. data/core/enumerable.rbs +2405 -0
  29. data/core/enumerator/product.rbs +92 -0
  30. data/core/enumerator.rbs +630 -0
  31. data/core/env.rbs +6 -0
  32. data/core/errno.rbs +673 -0
  33. data/core/errors.rbs +760 -0
  34. data/core/exception.rbs +485 -0
  35. data/core/false_class.rbs +82 -0
  36. data/core/fiber.rbs +550 -0
  37. data/core/fiber_error.rbs +11 -0
  38. data/core/file.rbs +2936 -0
  39. data/core/file_test.rbs +331 -0
  40. data/core/float.rbs +1151 -0
  41. data/core/gc.rbs +644 -0
  42. data/core/global_variables.rbs +184 -0
  43. data/core/hash.rbs +1861 -0
  44. data/core/integer.rbs +1413 -0
  45. data/core/io/buffer.rbs +984 -0
  46. data/core/io/wait.rbs +70 -0
  47. data/core/io.rbs +3406 -0
  48. data/core/kernel.rbs +3096 -0
  49. data/core/marshal.rbs +207 -0
  50. data/core/match_data.rbs +635 -0
  51. data/core/math.rbs +729 -0
  52. data/core/method.rbs +386 -0
  53. data/core/module.rbs +1704 -0
  54. data/core/nil_class.rbs +209 -0
  55. data/core/numeric.rbs +818 -0
  56. data/core/object.rbs +110 -0
  57. data/core/object_space/weak_key_map.rbs +166 -0
  58. data/core/object_space.rbs +190 -0
  59. data/core/proc.rbs +868 -0
  60. data/core/process.rbs +2296 -0
  61. data/core/ractor.rbs +1068 -0
  62. data/core/random.rbs +237 -0
  63. data/core/range.rbs +1107 -0
  64. data/core/rational.rbs +531 -0
  65. data/core/rb_config.rbs +88 -0
  66. data/core/rbs/unnamed/argf.rbs +1229 -0
  67. data/core/rbs/unnamed/env_class.rbs +1209 -0
  68. data/core/rbs/unnamed/random.rbs +293 -0
  69. data/core/refinement.rbs +59 -0
  70. data/core/regexp.rbs +1930 -0
  71. data/core/ruby_vm.rbs +765 -0
  72. data/core/rubygems/basic_specification.rbs +6 -0
  73. data/core/rubygems/config_file.rbs +38 -0
  74. data/core/rubygems/dependency_installer.rbs +6 -0
  75. data/core/rubygems/errors.rbs +176 -0
  76. data/core/rubygems/installer.rbs +15 -0
  77. data/core/rubygems/path_support.rbs +6 -0
  78. data/core/rubygems/platform.rbs +7 -0
  79. data/core/rubygems/request_set.rbs +49 -0
  80. data/core/rubygems/requirement.rbs +148 -0
  81. data/core/rubygems/rubygems.rbs +1171 -0
  82. data/core/rubygems/source_list.rbs +15 -0
  83. data/core/rubygems/specification.rbs +23 -0
  84. data/core/rubygems/stream_ui.rbs +5 -0
  85. data/core/rubygems/uninstaller.rbs +10 -0
  86. data/core/rubygems/version.rbs +294 -0
  87. data/core/set.rbs +621 -0
  88. data/core/signal.rbs +100 -0
  89. data/core/string.rbs +3583 -0
  90. data/core/struct.rbs +667 -0
  91. data/core/symbol.rbs +475 -0
  92. data/core/thread.rbs +1765 -0
  93. data/core/thread_group.rbs +79 -0
  94. data/core/time.rbs +1762 -0
  95. data/core/trace_point.rbs +477 -0
  96. data/core/true_class.rbs +98 -0
  97. data/core/unbound_method.rbs +329 -0
  98. data/core/warning.rbs +87 -0
  99. data/docs/CONTRIBUTING.md +106 -0
  100. data/docs/architecture.md +110 -0
  101. data/docs/collection.md +192 -0
  102. data/docs/data_and_struct.md +86 -0
  103. data/docs/gem.md +57 -0
  104. data/docs/rbs_by_example.md +309 -0
  105. data/docs/repo.md +125 -0
  106. data/docs/sigs.md +167 -0
  107. data/docs/stdlib.md +147 -0
  108. data/docs/syntax.md +910 -0
  109. data/docs/tools.md +17 -0
  110. data/exe/rbs +7 -0
  111. data/ext/rbs_extension/extconf.rb +15 -0
  112. data/ext/rbs_extension/lexer.c +2728 -0
  113. data/ext/rbs_extension/lexer.h +179 -0
  114. data/ext/rbs_extension/lexer.re +147 -0
  115. data/ext/rbs_extension/lexstate.c +175 -0
  116. data/ext/rbs_extension/location.c +325 -0
  117. data/ext/rbs_extension/location.h +85 -0
  118. data/ext/rbs_extension/main.c +33 -0
  119. data/ext/rbs_extension/parser.c +2973 -0
  120. data/ext/rbs_extension/parser.h +18 -0
  121. data/ext/rbs_extension/parserstate.c +397 -0
  122. data/ext/rbs_extension/parserstate.h +163 -0
  123. data/ext/rbs_extension/rbs_extension.h +31 -0
  124. data/ext/rbs_extension/unescape.c +32 -0
  125. data/goodcheck.yml +91 -0
  126. data/include/rbs/constants.h +82 -0
  127. data/include/rbs/ruby_objs.h +72 -0
  128. data/include/rbs/util/rbs_constant_pool.h +219 -0
  129. data/include/rbs.h +7 -0
  130. data/lib/rbs/ancestor_graph.rb +92 -0
  131. data/lib/rbs/annotate/annotations.rb +199 -0
  132. data/lib/rbs/annotate/formatter.rb +92 -0
  133. data/lib/rbs/annotate/rdoc_annotator.rb +400 -0
  134. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  135. data/lib/rbs/annotate.rb +8 -0
  136. data/lib/rbs/ast/annotation.rb +29 -0
  137. data/lib/rbs/ast/comment.rb +29 -0
  138. data/lib/rbs/ast/declarations.rb +467 -0
  139. data/lib/rbs/ast/directives.rb +49 -0
  140. data/lib/rbs/ast/members.rb +451 -0
  141. data/lib/rbs/ast/type_param.rb +225 -0
  142. data/lib/rbs/ast/visitor.rb +137 -0
  143. data/lib/rbs/buffer.rb +67 -0
  144. data/lib/rbs/builtin_names.rb +58 -0
  145. data/lib/rbs/cli/colored_io.rb +48 -0
  146. data/lib/rbs/cli/diff.rb +83 -0
  147. data/lib/rbs/cli/validate.rb +357 -0
  148. data/lib/rbs/cli.rb +1223 -0
  149. data/lib/rbs/collection/cleaner.rb +38 -0
  150. data/lib/rbs/collection/config/lockfile.rb +92 -0
  151. data/lib/rbs/collection/config/lockfile_generator.rb +218 -0
  152. data/lib/rbs/collection/config.rb +81 -0
  153. data/lib/rbs/collection/installer.rb +32 -0
  154. data/lib/rbs/collection/sources/base.rb +14 -0
  155. data/lib/rbs/collection/sources/git.rb +258 -0
  156. data/lib/rbs/collection/sources/local.rb +81 -0
  157. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  158. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  159. data/lib/rbs/collection/sources.rb +38 -0
  160. data/lib/rbs/collection.rb +16 -0
  161. data/lib/rbs/constant.rb +28 -0
  162. data/lib/rbs/definition.rb +401 -0
  163. data/lib/rbs/definition_builder/ancestor_builder.rb +620 -0
  164. data/lib/rbs/definition_builder/method_builder.rb +254 -0
  165. data/lib/rbs/definition_builder.rb +845 -0
  166. data/lib/rbs/diff.rb +125 -0
  167. data/lib/rbs/environment/use_map.rb +77 -0
  168. data/lib/rbs/environment.rb +829 -0
  169. data/lib/rbs/environment_loader.rb +173 -0
  170. data/lib/rbs/environment_walker.rb +155 -0
  171. data/lib/rbs/errors.rb +645 -0
  172. data/lib/rbs/factory.rb +18 -0
  173. data/lib/rbs/file_finder.rb +28 -0
  174. data/lib/rbs/location_aux.rb +138 -0
  175. data/lib/rbs/locator.rb +243 -0
  176. data/lib/rbs/method_type.rb +143 -0
  177. data/lib/rbs/namespace.rb +125 -0
  178. data/lib/rbs/parser/lex_result.rb +15 -0
  179. data/lib/rbs/parser/token.rb +23 -0
  180. data/lib/rbs/parser_aux.rb +114 -0
  181. data/lib/rbs/prototype/helpers.rb +140 -0
  182. data/lib/rbs/prototype/node_usage.rb +99 -0
  183. data/lib/rbs/prototype/rb.rb +840 -0
  184. data/lib/rbs/prototype/rbi.rb +641 -0
  185. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  186. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  187. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  188. data/lib/rbs/prototype/runtime.rb +667 -0
  189. data/lib/rbs/repository.rb +127 -0
  190. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  191. data/lib/rbs/resolver/type_name_resolver.rb +91 -0
  192. data/lib/rbs/sorter.rb +198 -0
  193. data/lib/rbs/substitution.rb +83 -0
  194. data/lib/rbs/subtractor.rb +201 -0
  195. data/lib/rbs/test/errors.rb +80 -0
  196. data/lib/rbs/test/guaranteed.rb +30 -0
  197. data/lib/rbs/test/hook.rb +212 -0
  198. data/lib/rbs/test/observer.rb +19 -0
  199. data/lib/rbs/test/setup.rb +84 -0
  200. data/lib/rbs/test/setup_helper.rb +50 -0
  201. data/lib/rbs/test/tester.rb +167 -0
  202. data/lib/rbs/test/type_check.rb +435 -0
  203. data/lib/rbs/test.rb +112 -0
  204. data/lib/rbs/type_alias_dependency.rb +100 -0
  205. data/lib/rbs/type_alias_regularity.rb +126 -0
  206. data/lib/rbs/type_name.rb +109 -0
  207. data/lib/rbs/types.rb +1596 -0
  208. data/lib/rbs/unit_test/convertibles.rb +176 -0
  209. data/lib/rbs/unit_test/spy.rb +138 -0
  210. data/lib/rbs/unit_test/type_assertions.rb +347 -0
  211. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  212. data/lib/rbs/unit_test.rb +6 -0
  213. data/lib/rbs/validator.rb +186 -0
  214. data/lib/rbs/variance_calculator.rb +189 -0
  215. data/lib/rbs/vendorer.rb +71 -0
  216. data/lib/rbs/version.rb +5 -0
  217. data/lib/rbs/writer.rb +424 -0
  218. data/lib/rbs.rb +94 -0
  219. data/lib/rdoc/discover.rb +20 -0
  220. data/lib/rdoc_plugin/parser.rb +163 -0
  221. data/rbs-relaxed.gemspec +48 -0
  222. data/schema/annotation.json +14 -0
  223. data/schema/comment.json +26 -0
  224. data/schema/decls.json +326 -0
  225. data/schema/function.json +87 -0
  226. data/schema/location.json +56 -0
  227. data/schema/members.json +266 -0
  228. data/schema/methodType.json +50 -0
  229. data/schema/typeParam.json +36 -0
  230. data/schema/types.json +317 -0
  231. data/sig/ancestor_builder.rbs +163 -0
  232. data/sig/ancestor_graph.rbs +60 -0
  233. data/sig/annotate/annotations.rbs +102 -0
  234. data/sig/annotate/formatter.rbs +24 -0
  235. data/sig/annotate/rdoc_annotater.rbs +82 -0
  236. data/sig/annotate/rdoc_source.rbs +30 -0
  237. data/sig/annotation.rbs +27 -0
  238. data/sig/buffer.rbs +32 -0
  239. data/sig/builtin_names.rbs +44 -0
  240. data/sig/cli/colored_io.rbs +15 -0
  241. data/sig/cli/diff.rbs +21 -0
  242. data/sig/cli/validate.rbs +43 -0
  243. data/sig/cli.rbs +87 -0
  244. data/sig/collection/cleaner.rbs +13 -0
  245. data/sig/collection/config/lockfile.rbs +74 -0
  246. data/sig/collection/config/lockfile_generator.rbs +66 -0
  247. data/sig/collection/config.rbs +46 -0
  248. data/sig/collection/installer.rbs +17 -0
  249. data/sig/collection/sources.rbs +214 -0
  250. data/sig/collection.rbs +4 -0
  251. data/sig/comment.rbs +26 -0
  252. data/sig/constant.rbs +21 -0
  253. data/sig/declarations.rbs +267 -0
  254. data/sig/definition.rbs +173 -0
  255. data/sig/definition_builder.rbs +165 -0
  256. data/sig/diff.rbs +28 -0
  257. data/sig/directives.rbs +77 -0
  258. data/sig/environment.rbs +279 -0
  259. data/sig/environment_loader.rbs +111 -0
  260. data/sig/environment_walker.rbs +65 -0
  261. data/sig/errors.rbs +405 -0
  262. data/sig/factory.rbs +5 -0
  263. data/sig/file_finder.rbs +28 -0
  264. data/sig/location.rbs +110 -0
  265. data/sig/locator.rbs +58 -0
  266. data/sig/manifest.yaml +7 -0
  267. data/sig/members.rbs +258 -0
  268. data/sig/method_builder.rbs +84 -0
  269. data/sig/method_types.rbs +58 -0
  270. data/sig/namespace.rbs +146 -0
  271. data/sig/parser.rbs +100 -0
  272. data/sig/prototype/helpers.rbs +27 -0
  273. data/sig/prototype/node_usage.rbs +20 -0
  274. data/sig/prototype/rb.rbs +96 -0
  275. data/sig/prototype/rbi.rbs +75 -0
  276. data/sig/prototype/runtime.rbs +182 -0
  277. data/sig/rbs.rbs +21 -0
  278. data/sig/rdoc/rbs.rbs +67 -0
  279. data/sig/repository.rbs +85 -0
  280. data/sig/resolver/constant_resolver.rbs +92 -0
  281. data/sig/resolver/context.rbs +34 -0
  282. data/sig/resolver/type_name_resolver.rbs +35 -0
  283. data/sig/shims/bundler.rbs +38 -0
  284. data/sig/shims/enumerable.rbs +5 -0
  285. data/sig/shims/rubygems.rbs +19 -0
  286. data/sig/sorter.rbs +41 -0
  287. data/sig/substitution.rbs +48 -0
  288. data/sig/subtractor.rbs +37 -0
  289. data/sig/test/errors.rbs +52 -0
  290. data/sig/test/guranteed.rbs +9 -0
  291. data/sig/test/type_check.rbs +19 -0
  292. data/sig/test.rbs +82 -0
  293. data/sig/type_alias_dependency.rbs +53 -0
  294. data/sig/type_alias_regularity.rbs +98 -0
  295. data/sig/type_param.rbs +110 -0
  296. data/sig/typename.rbs +79 -0
  297. data/sig/types.rbs +579 -0
  298. data/sig/unit_test/convertibles.rbs +154 -0
  299. data/sig/unit_test/spy.rbs +30 -0
  300. data/sig/unit_test/type_assertions.rbs +196 -0
  301. data/sig/unit_test/with_aliases.rbs +136 -0
  302. data/sig/use_map.rbs +35 -0
  303. data/sig/util.rbs +9 -0
  304. data/sig/validator.rbs +63 -0
  305. data/sig/variance_calculator.rbs +87 -0
  306. data/sig/vendorer.rbs +51 -0
  307. data/sig/version.rbs +3 -0
  308. data/sig/visitor.rbs +47 -0
  309. data/sig/writer.rbs +127 -0
  310. data/src/constants.c +153 -0
  311. data/src/ruby_objs.c +795 -0
  312. data/src/util/rbs_constant_pool.c +342 -0
  313. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  314. data/stdlib/abbrev/0/array.rbs +26 -0
  315. data/stdlib/base64/0/base64.rbs +355 -0
  316. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  317. data/stdlib/bigdecimal/0/big_decimal.rbs +1629 -0
  318. data/stdlib/bigdecimal-math/0/big_math.rbs +119 -0
  319. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  320. data/stdlib/cgi/0/core.rbs +1285 -0
  321. data/stdlib/cgi/0/manifest.yaml +3 -0
  322. data/stdlib/coverage/0/coverage.rbs +263 -0
  323. data/stdlib/csv/0/csv.rbs +3776 -0
  324. data/stdlib/csv/0/manifest.yaml +3 -0
  325. data/stdlib/date/0/date.rbs +1585 -0
  326. data/stdlib/date/0/date_time.rbs +616 -0
  327. data/stdlib/date/0/time.rbs +26 -0
  328. data/stdlib/dbm/0/dbm.rbs +421 -0
  329. data/stdlib/delegate/0/delegator.rbs +184 -0
  330. data/stdlib/delegate/0/kernel.rbs +47 -0
  331. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  332. data/stdlib/did_you_mean/0/did_you_mean.rbs +343 -0
  333. data/stdlib/digest/0/digest.rbs +577 -0
  334. data/stdlib/erb/0/erb.rbs +532 -0
  335. data/stdlib/etc/0/etc.rbs +865 -0
  336. data/stdlib/fileutils/0/fileutils.rbs +1734 -0
  337. data/stdlib/find/0/find.rbs +49 -0
  338. data/stdlib/forwardable/0/forwardable.rbs +268 -0
  339. data/stdlib/io-console/0/io-console.rbs +414 -0
  340. data/stdlib/ipaddr/0/ipaddr.rbs +428 -0
  341. data/stdlib/json/0/json.rbs +1916 -0
  342. data/stdlib/kconv/0/kconv.rbs +166 -0
  343. data/stdlib/logger/0/formatter.rbs +45 -0
  344. data/stdlib/logger/0/log_device.rbs +100 -0
  345. data/stdlib/logger/0/logger.rbs +796 -0
  346. data/stdlib/logger/0/manifest.yaml +2 -0
  347. data/stdlib/logger/0/period.rbs +17 -0
  348. data/stdlib/logger/0/severity.rbs +34 -0
  349. data/stdlib/minitest/0/kernel.rbs +42 -0
  350. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  351. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  352. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  353. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  354. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  355. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  356. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  357. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  358. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  359. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  360. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  361. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  362. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  363. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  364. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  365. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  366. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  367. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  368. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  369. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  370. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  371. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  372. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  373. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  374. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  375. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  376. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  377. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  378. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  379. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  380. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  381. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  382. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  383. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  384. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  385. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  386. data/stdlib/minitest/0/minitest.rbs +115 -0
  387. data/stdlib/monitor/0/monitor.rbs +363 -0
  388. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  389. data/stdlib/net-http/0/manifest.yaml +3 -0
  390. data/stdlib/net-http/0/net-http.rbs +5552 -0
  391. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  392. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  393. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  394. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  395. data/stdlib/nkf/0/nkf.rbs +402 -0
  396. data/stdlib/objspace/0/objspace.rbs +487 -0
  397. data/stdlib/observable/0/observable.rbs +217 -0
  398. data/stdlib/open-uri/0/manifest.yaml +4 -0
  399. data/stdlib/open-uri/0/open-uri.rbs +393 -0
  400. data/stdlib/open3/0/open3.rbs +147 -0
  401. data/stdlib/openssl/0/manifest.yaml +3 -0
  402. data/stdlib/openssl/0/openssl.rbs +12113 -0
  403. data/stdlib/optparse/0/optparse.rbs +1725 -0
  404. data/stdlib/pathname/0/pathname.rbs +1406 -0
  405. data/stdlib/pp/0/manifest.yaml +2 -0
  406. data/stdlib/pp/0/pp.rbs +300 -0
  407. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  408. data/stdlib/pstore/0/pstore.rbs +603 -0
  409. data/stdlib/psych/0/core_ext.rbs +12 -0
  410. data/stdlib/psych/0/dbm.rbs +237 -0
  411. data/stdlib/psych/0/manifest.yaml +3 -0
  412. data/stdlib/psych/0/psych.rbs +402 -0
  413. data/stdlib/psych/0/store.rbs +59 -0
  414. data/stdlib/pty/0/pty.rbs +237 -0
  415. data/stdlib/rdoc/0/code_object.rbs +51 -0
  416. data/stdlib/rdoc/0/comment.rbs +59 -0
  417. data/stdlib/rdoc/0/context.rbs +153 -0
  418. data/stdlib/rdoc/0/markup.rbs +117 -0
  419. data/stdlib/rdoc/0/parser.rbs +56 -0
  420. data/stdlib/rdoc/0/rdoc.rbs +391 -0
  421. data/stdlib/rdoc/0/ri.rbs +17 -0
  422. data/stdlib/rdoc/0/store.rbs +48 -0
  423. data/stdlib/rdoc/0/top_level.rbs +97 -0
  424. data/stdlib/resolv/0/manifest.yaml +3 -0
  425. data/stdlib/resolv/0/resolv.rbs +1830 -0
  426. data/stdlib/ripper/0/ripper.rbs +1648 -0
  427. data/stdlib/securerandom/0/securerandom.rbs +62 -0
  428. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  429. data/stdlib/singleton/0/singleton.rbs +131 -0
  430. data/stdlib/socket/0/addrinfo.rbs +666 -0
  431. data/stdlib/socket/0/basic_socket.rbs +590 -0
  432. data/stdlib/socket/0/constants.rbs +2295 -0
  433. data/stdlib/socket/0/ip_socket.rbs +92 -0
  434. data/stdlib/socket/0/socket.rbs +4157 -0
  435. data/stdlib/socket/0/socket_error.rbs +5 -0
  436. data/stdlib/socket/0/tcp_server.rbs +192 -0
  437. data/stdlib/socket/0/tcp_socket.rbs +79 -0
  438. data/stdlib/socket/0/udp_socket.rbs +133 -0
  439. data/stdlib/socket/0/unix_server.rbs +169 -0
  440. data/stdlib/socket/0/unix_socket.rbs +172 -0
  441. data/stdlib/stringio/0/stringio.rbs +567 -0
  442. data/stdlib/strscan/0/string_scanner.rbs +1627 -0
  443. data/stdlib/tempfile/0/tempfile.rbs +479 -0
  444. data/stdlib/time/0/time.rbs +432 -0
  445. data/stdlib/timeout/0/timeout.rbs +81 -0
  446. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  447. data/stdlib/tsort/0/cyclic.rbs +5 -0
  448. data/stdlib/tsort/0/interfaces.rbs +20 -0
  449. data/stdlib/tsort/0/tsort.rbs +409 -0
  450. data/stdlib/uri/0/common.rbs +582 -0
  451. data/stdlib/uri/0/file.rbs +118 -0
  452. data/stdlib/uri/0/ftp.rbs +13 -0
  453. data/stdlib/uri/0/generic.rbs +1108 -0
  454. data/stdlib/uri/0/http.rbs +104 -0
  455. data/stdlib/uri/0/https.rbs +14 -0
  456. data/stdlib/uri/0/ldap.rbs +230 -0
  457. data/stdlib/uri/0/ldaps.rbs +14 -0
  458. data/stdlib/uri/0/mailto.rbs +92 -0
  459. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  460. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  461. data/stdlib/uri/0/ws.rbs +13 -0
  462. data/stdlib/uri/0/wss.rbs +9 -0
  463. data/stdlib/yaml/0/manifest.yaml +2 -0
  464. data/stdlib/yaml/0/yaml.rbs +1 -0
  465. data/stdlib/zlib/0/buf_error.rbs +10 -0
  466. data/stdlib/zlib/0/data_error.rbs +10 -0
  467. data/stdlib/zlib/0/deflate.rbs +210 -0
  468. data/stdlib/zlib/0/error.rbs +20 -0
  469. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  470. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  471. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  472. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  473. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  474. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  475. data/stdlib/zlib/0/gzip_writer.rbs +166 -0
  476. data/stdlib/zlib/0/inflate.rbs +180 -0
  477. data/stdlib/zlib/0/mem_error.rbs +10 -0
  478. data/stdlib/zlib/0/need_dict.rbs +13 -0
  479. data/stdlib/zlib/0/stream_end.rbs +11 -0
  480. data/stdlib/zlib/0/stream_error.rbs +11 -0
  481. data/stdlib/zlib/0/version_error.rbs +11 -0
  482. data/stdlib/zlib/0/zlib.rbs +449 -0
  483. data/stdlib/zlib/0/zstream.rbs +200 -0
  484. metadata +532 -0
data/core/rational.rbs ADDED
@@ -0,0 +1,531 @@
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
+ # - rat * numeric -> numeric
57
+ # -->
58
+ # Performs multiplication.
59
+ #
60
+ # Rational(2, 3) * Rational(2, 3) #=> (4/9)
61
+ # Rational(900) * Rational(1) #=> (900/1)
62
+ # Rational(-2, 9) * Rational(-9, 2) #=> (1/1)
63
+ # Rational(9, 8) * 4 #=> (9/2)
64
+ # Rational(20, 9) * 9.8 #=> 21.77777777777778
65
+ #
66
+ def *: (Integer) -> Rational
67
+ | (Rational) -> Rational
68
+ | [T < Numeric](T) -> T
69
+
70
+ # <!--
71
+ # rdoc-file=rational.c
72
+ # - rat ** numeric -> numeric
73
+ # -->
74
+ # Performs exponentiation.
75
+ #
76
+ # Rational(2) ** Rational(3) #=> (8/1)
77
+ # Rational(10) ** -2 #=> (1/100)
78
+ # Rational(10) ** -2.0 #=> 0.01
79
+ # Rational(-4) ** Rational(1, 2) #=> (0.0+2.0i)
80
+ # Rational(1, 2) ** 0 #=> (1/1)
81
+ # Rational(1, 2) ** 0.0 #=> 1.0
82
+ #
83
+ def **: (Complex) -> Complex
84
+ | (Numeric) -> Numeric
85
+
86
+ # <!--
87
+ # rdoc-file=rational.c
88
+ # - rat + numeric -> numeric
89
+ # -->
90
+ # Performs addition.
91
+ #
92
+ # Rational(2, 3) + Rational(2, 3) #=> (4/3)
93
+ # Rational(900) + Rational(1) #=> (901/1)
94
+ # Rational(-2, 9) + Rational(-9, 2) #=> (-85/18)
95
+ # Rational(9, 8) + 4 #=> (41/8)
96
+ # Rational(20, 9) + 9.8 #=> 12.022222222222222
97
+ #
98
+ def +: (Float) -> Float
99
+ | (Complex) -> Complex
100
+ | (Numeric) -> Rational
101
+
102
+ def +@: () -> Rational
103
+
104
+ # <!--
105
+ # rdoc-file=rational.c
106
+ # - rat - numeric -> numeric
107
+ # -->
108
+ # Performs subtraction.
109
+ #
110
+ # Rational(2, 3) - Rational(2, 3) #=> (0/1)
111
+ # Rational(900) - Rational(1) #=> (899/1)
112
+ # Rational(-2, 9) - Rational(-9, 2) #=> (77/18)
113
+ # Rational(9, 8) - 4 #=> (-23/8)
114
+ # Rational(20, 9) - 9.8 #=> -7.577777777777778
115
+ #
116
+ def -: (Float) -> Float
117
+ | (Complex) -> Complex
118
+ | (Numeric) -> Rational
119
+
120
+ # <!--
121
+ # rdoc-file=rational.c
122
+ # - -rat -> rational
123
+ # -->
124
+ # Negates `rat`.
125
+ #
126
+ def -@: () -> Rational
127
+
128
+ # <!--
129
+ # rdoc-file=rational.c
130
+ # - rat / numeric -> numeric
131
+ # - rat.quo(numeric) -> numeric
132
+ # -->
133
+ # Performs division.
134
+ #
135
+ # Rational(2, 3) / Rational(2, 3) #=> (1/1)
136
+ # Rational(900) / Rational(1) #=> (900/1)
137
+ # Rational(-2, 9) / Rational(-9, 2) #=> (4/81)
138
+ # Rational(9, 8) / 4 #=> (9/32)
139
+ # Rational(20, 9) / 9.8 #=> 0.22675736961451246
140
+ #
141
+ def /: (Float) -> Float
142
+ | (Complex) -> Complex
143
+ | (Numeric) -> Rational
144
+
145
+ # <!--
146
+ # rdoc-file=rational.c
147
+ # - rational <=> numeric -> -1, 0, +1, or nil
148
+ # -->
149
+ # Returns -1, 0, or +1 depending on whether `rational` is less than, equal to,
150
+ # or greater than `numeric`.
151
+ #
152
+ # `nil` is returned if the two values are incomparable.
153
+ #
154
+ # Rational(2, 3) <=> Rational(2, 3) #=> 0
155
+ # Rational(5) <=> 5 #=> 0
156
+ # Rational(2, 3) <=> Rational(1, 3) #=> 1
157
+ # Rational(1, 3) <=> 1 #=> -1
158
+ # Rational(1, 3) <=> 0.3 #=> 1
159
+ #
160
+ # Rational(1, 3) <=> "0.3" #=> nil
161
+ #
162
+ def <=>: (Integer | Rational) -> Integer
163
+ | (untyped) -> Integer?
164
+
165
+ # <!--
166
+ # rdoc-file=rational.c
167
+ # - rat == object -> true or false
168
+ # -->
169
+ # Returns `true` if `rat` equals `object` numerically.
170
+ #
171
+ # Rational(2, 3) == Rational(2, 3) #=> true
172
+ # Rational(5) == 5 #=> true
173
+ # Rational(0) == 0.0 #=> true
174
+ # Rational('1/3') == 0.33 #=> false
175
+ # Rational('1/2') == '1/2' #=> false
176
+ #
177
+ def ==: (untyped) -> bool
178
+
179
+ # <!--
180
+ # rdoc-file=rational.c
181
+ # - rat.abs -> rational
182
+ # - rat.magnitude -> rational
183
+ # -->
184
+ # Returns the absolute value of `rat`.
185
+ #
186
+ # (1/2r).abs #=> (1/2)
187
+ # (-1/2r).abs #=> (1/2)
188
+ #
189
+ def abs: () -> Rational
190
+
191
+ def abs2: () -> Rational
192
+
193
+ def angle: () -> (Integer | Float)
194
+
195
+ alias arg angle
196
+
197
+ # <!--
198
+ # rdoc-file=rational.c
199
+ # - rat.ceil([ndigits]) -> integer or rational
200
+ # -->
201
+ # Returns the smallest number greater than or equal to `rat` with a precision of
202
+ # `ndigits` decimal digits (default: 0).
203
+ #
204
+ # When the precision is negative, the returned value is an integer with at least
205
+ # `ndigits.abs` trailing zeros.
206
+ #
207
+ # Returns a rational when `ndigits` is positive, otherwise returns an integer.
208
+ #
209
+ # Rational(3).ceil #=> 3
210
+ # Rational(2, 3).ceil #=> 1
211
+ # Rational(-3, 2).ceil #=> -1
212
+ #
213
+ # # decimal - 1 2 3 . 4 5 6
214
+ # # ^ ^ ^ ^ ^ ^
215
+ # # precision -3 -2 -1 0 +1 +2
216
+ #
217
+ # Rational('-123.456').ceil(+1).to_f #=> -123.4
218
+ # Rational('-123.456').ceil(-1) #=> -120
219
+ #
220
+ def ceil: () -> Integer
221
+ | (Integer digits) -> (Integer | Rational)
222
+
223
+ def coerce: (Numeric) -> [ Numeric, Numeric ]
224
+
225
+ def conj: () -> Rational
226
+
227
+ def conjugate: () -> Rational
228
+
229
+ # <!--
230
+ # rdoc-file=rational.c
231
+ # - rat.denominator -> integer
232
+ # -->
233
+ # Returns the denominator (always positive).
234
+ #
235
+ # Rational(7).denominator #=> 1
236
+ # Rational(7, 1).denominator #=> 1
237
+ # Rational(9, -4).denominator #=> 4
238
+ # Rational(-2, -10).denominator #=> 5
239
+ #
240
+ def denominator: () -> Integer
241
+
242
+ def div: (Numeric) -> Integer
243
+
244
+ def divmod: (Integer | Float | Rational) -> [ Integer, Rational ]
245
+ | (Numeric) -> [ Numeric, Numeric ]
246
+
247
+ def dup: () -> self
248
+
249
+ def eql?: (untyped) -> bool
250
+
251
+ # <!--
252
+ # rdoc-file=rational.c
253
+ # - rat.fdiv(numeric) -> float
254
+ # -->
255
+ # Performs division and returns the value as a Float.
256
+ #
257
+ # Rational(2, 3).fdiv(1) #=> 0.6666666666666666
258
+ # Rational(2, 3).fdiv(0.5) #=> 1.3333333333333333
259
+ # Rational(2).fdiv(3) #=> 0.6666666666666666
260
+ #
261
+ def fdiv: (Numeric) -> Float
262
+
263
+ def finite?: () -> bool
264
+
265
+ # <!--
266
+ # rdoc-file=rational.c
267
+ # - rat.floor([ndigits]) -> integer or rational
268
+ # -->
269
+ # Returns the largest number less than or equal to `rat` with a precision of
270
+ # `ndigits` decimal digits (default: 0).
271
+ #
272
+ # When the precision is negative, the returned value is an integer with at least
273
+ # `ndigits.abs` trailing zeros.
274
+ #
275
+ # Returns a rational when `ndigits` is positive, otherwise returns an integer.
276
+ #
277
+ # Rational(3).floor #=> 3
278
+ # Rational(2, 3).floor #=> 0
279
+ # Rational(-3, 2).floor #=> -2
280
+ #
281
+ # # decimal - 1 2 3 . 4 5 6
282
+ # # ^ ^ ^ ^ ^ ^
283
+ # # precision -3 -2 -1 0 +1 +2
284
+ #
285
+ # Rational('-123.456').floor(+1).to_f #=> -123.5
286
+ # Rational('-123.456').floor(-1) #=> -130
287
+ #
288
+ def floor: () -> Integer
289
+ | (Integer digits) -> (Integer | Rational)
290
+
291
+ # <!--
292
+ # rdoc-file=rational.c
293
+ # - hash()
294
+ # -->
295
+ #
296
+ def hash: () -> Integer
297
+
298
+ def i: () -> Complex
299
+
300
+ def imag: () -> Integer
301
+
302
+ def imaginary: () -> Integer
303
+
304
+ def infinite?: () -> Integer?
305
+
306
+ # <!--
307
+ # rdoc-file=rational.c
308
+ # - rat.inspect -> string
309
+ # -->
310
+ # Returns the value as a string for inspection.
311
+ #
312
+ # Rational(2).inspect #=> "(2/1)"
313
+ # Rational(-8, 6).inspect #=> "(-4/3)"
314
+ # Rational('1/2').inspect #=> "(1/2)"
315
+ #
316
+ def inspect: () -> String
317
+
318
+ def integer?: () -> bool
319
+
320
+ # <!-- rdoc-file=rational.c -->
321
+ # Returns the absolute value of `rat`.
322
+ #
323
+ # (1/2r).abs #=> (1/2)
324
+ # (-1/2r).abs #=> (1/2)
325
+ #
326
+ alias magnitude abs
327
+
328
+ def modulo: (Float) -> Float
329
+ | (Numeric) -> Rational
330
+
331
+ # <!--
332
+ # rdoc-file=rational.c
333
+ # - rat.negative? -> true or false
334
+ # -->
335
+ # Returns `true` if `rat` is less than 0.
336
+ #
337
+ def negative?: () -> bool
338
+
339
+ def nonzero?: () -> self?
340
+
341
+ # <!--
342
+ # rdoc-file=rational.c
343
+ # - rat.numerator -> integer
344
+ # -->
345
+ # Returns the numerator.
346
+ #
347
+ # Rational(7).numerator #=> 7
348
+ # Rational(7, 1).numerator #=> 7
349
+ # Rational(9, -4).numerator #=> -9
350
+ # Rational(-2, -10).numerator #=> 1
351
+ #
352
+ def numerator: () -> Integer
353
+
354
+ alias phase angle
355
+
356
+ def polar: () -> [ Rational, Integer | Float ]
357
+
358
+ # <!--
359
+ # rdoc-file=rational.c
360
+ # - rat.positive? -> true or false
361
+ # -->
362
+ # Returns `true` if `rat` is greater than 0.
363
+ #
364
+ def positive?: () -> bool
365
+
366
+ # <!-- rdoc-file=rational.c -->
367
+ # Performs division.
368
+ #
369
+ # Rational(2, 3) / Rational(2, 3) #=> (1/1)
370
+ # Rational(900) / Rational(1) #=> (900/1)
371
+ # Rational(-2, 9) / Rational(-9, 2) #=> (4/81)
372
+ # Rational(9, 8) / 4 #=> (9/32)
373
+ # Rational(20, 9) / 9.8 #=> 0.22675736961451246
374
+ #
375
+ def quo: (Float) -> Float
376
+ | (Complex) -> Complex
377
+ | (Numeric) -> Rational
378
+
379
+ # <!--
380
+ # rdoc-file=rational.c
381
+ # - rat.rationalize -> self
382
+ # - rat.rationalize(eps) -> rational
383
+ # -->
384
+ # Returns a simpler approximation of the value if the optional argument `eps` is
385
+ # given (rat-|eps| <= result <= rat+|eps|), self otherwise.
386
+ #
387
+ # r = Rational(5033165, 16777216)
388
+ # r.rationalize #=> (5033165/16777216)
389
+ # r.rationalize(Rational('0.01')) #=> (3/10)
390
+ # r.rationalize(Rational('0.1')) #=> (1/3)
391
+ #
392
+ def rationalize: (?Numeric eps) -> Rational
393
+
394
+ def real: () -> Rational
395
+
396
+ def real?: () -> true
397
+
398
+ def rect: () -> [ Rational, Numeric ]
399
+
400
+ alias rectangular rect
401
+
402
+ def remainder: (Float) -> Float
403
+ | (Numeric) -> Rational
404
+
405
+ # <!--
406
+ # rdoc-file=rational.c
407
+ # - rat.round([ndigits] [, half: mode]) -> integer or rational
408
+ # -->
409
+ # Returns `rat` rounded to the nearest value with a precision of `ndigits`
410
+ # decimal digits (default: 0).
411
+ #
412
+ # When the precision is negative, the returned value is an integer with at least
413
+ # `ndigits.abs` trailing zeros.
414
+ #
415
+ # Returns a rational when `ndigits` is positive, otherwise returns an integer.
416
+ #
417
+ # Rational(3).round #=> 3
418
+ # Rational(2, 3).round #=> 1
419
+ # Rational(-3, 2).round #=> -2
420
+ #
421
+ # # decimal - 1 2 3 . 4 5 6
422
+ # # ^ ^ ^ ^ ^ ^
423
+ # # precision -3 -2 -1 0 +1 +2
424
+ #
425
+ # Rational('-123.456').round(+1).to_f #=> -123.5
426
+ # Rational('-123.456').round(-1) #=> -120
427
+ #
428
+ # The optional `half` keyword argument is available similar to Float#round.
429
+ #
430
+ # Rational(25, 100).round(1, half: :up) #=> (3/10)
431
+ # Rational(25, 100).round(1, half: :down) #=> (1/5)
432
+ # Rational(25, 100).round(1, half: :even) #=> (1/5)
433
+ # Rational(35, 100).round(1, half: :up) #=> (2/5)
434
+ # Rational(35, 100).round(1, half: :down) #=> (3/10)
435
+ # Rational(35, 100).round(1, half: :even) #=> (2/5)
436
+ # Rational(-25, 100).round(1, half: :up) #=> (-3/10)
437
+ # Rational(-25, 100).round(1, half: :down) #=> (-1/5)
438
+ # Rational(-25, 100).round(1, half: :even) #=> (-1/5)
439
+ #
440
+ def round: (?half: :up | :down | :even) -> Integer
441
+ | (Integer digits, ?half: :up | :down | :even) -> (Integer | Rational)
442
+
443
+ def step: (?Numeric limit, ?Numeric step) { (Rational) -> void } -> self
444
+ | (?Numeric limit, ?Numeric step) -> Enumerator[Rational, self]
445
+ | (?by: Numeric, ?to: Numeric) { (Rational) -> void } -> self
446
+ | (?by: Numeric, ?to: Numeric) -> Enumerator[Rational, self]
447
+
448
+ def to_c: () -> Complex
449
+
450
+ # <!--
451
+ # rdoc-file=rational.c
452
+ # - rat.to_f -> float
453
+ # -->
454
+ # Returns the value as a Float.
455
+ #
456
+ # Rational(2).to_f #=> 2.0
457
+ # Rational(9, 4).to_f #=> 2.25
458
+ # Rational(-3, 4).to_f #=> -0.75
459
+ # Rational(20, 3).to_f #=> 6.666666666666667
460
+ #
461
+ def to_f: () -> Float
462
+
463
+ # <!--
464
+ # rdoc-file=rational.c
465
+ # - rat.to_i -> integer
466
+ # -->
467
+ # Returns the truncated value as an integer.
468
+ #
469
+ # Equivalent to Rational#truncate.
470
+ #
471
+ # Rational(2, 3).to_i #=> 0
472
+ # Rational(3).to_i #=> 3
473
+ # Rational(300.6).to_i #=> 300
474
+ # Rational(98, 71).to_i #=> 1
475
+ # Rational(-31, 2).to_i #=> -15
476
+ #
477
+ def to_i: () -> Integer
478
+
479
+ alias to_int to_i
480
+
481
+ # <!--
482
+ # rdoc-file=rational.c
483
+ # - rat.to_r -> self
484
+ # -->
485
+ # Returns self.
486
+ #
487
+ # Rational(2).to_r #=> (2/1)
488
+ # Rational(-8, 6).to_r #=> (-4/3)
489
+ #
490
+ def to_r: () -> Rational
491
+
492
+ # <!--
493
+ # rdoc-file=rational.c
494
+ # - rat.to_s -> string
495
+ # -->
496
+ # Returns the value as a string.
497
+ #
498
+ # Rational(2).to_s #=> "2/1"
499
+ # Rational(-8, 6).to_s #=> "-4/3"
500
+ # Rational('1/2').to_s #=> "1/2"
501
+ #
502
+ def to_s: () -> String
503
+
504
+ # <!--
505
+ # rdoc-file=rational.c
506
+ # - rat.truncate([ndigits]) -> integer or rational
507
+ # -->
508
+ # Returns `rat` truncated (toward zero) to a precision of `ndigits` decimal
509
+ # digits (default: 0).
510
+ #
511
+ # When the precision is negative, the returned value is an integer with at least
512
+ # `ndigits.abs` trailing zeros.
513
+ #
514
+ # Returns a rational when `ndigits` is positive, otherwise returns an integer.
515
+ #
516
+ # Rational(3).truncate #=> 3
517
+ # Rational(2, 3).truncate #=> 0
518
+ # Rational(-3, 2).truncate #=> -1
519
+ #
520
+ # # decimal - 1 2 3 . 4 5 6
521
+ # # ^ ^ ^ ^ ^ ^
522
+ # # precision -3 -2 -1 0 +1 +2
523
+ #
524
+ # Rational('-123.456').truncate(+1).to_f #=> -123.4
525
+ # Rational('-123.456').truncate(-1) #=> -120
526
+ #
527
+ def truncate: () -> Integer
528
+ | (Integer ndigits) -> (Integer | Rational)
529
+
530
+ def zero?: () -> bool
531
+ 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