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,1236 @@
1
+ module RBS
2
+ module Unnamed
3
+ # <!-- rdoc-file=io.c -->
4
+ # ## ARGF and `ARGV`
5
+ #
6
+ # The ARGF object works with the array at global variable `ARGV` to make
7
+ # <code>$stdin</code> and file streams available in the Ruby program:
8
+ #
9
+ # * **ARGV** may be thought of as the **argument vector** array.
10
+ #
11
+ # Initially, it contains the command-line arguments and options that are
12
+ # passed to the Ruby program; the program can modify that array as it likes.
13
+ #
14
+ # * **ARGF** may be thought of as the **argument files** object.
15
+ #
16
+ # It can access file streams and/or the <code>$stdin</code> stream, based on
17
+ # what it finds in `ARGV`. This provides a convenient way for the command
18
+ # line to specify streams for a Ruby program to read.
19
+ #
20
+ # ## Reading
21
+ #
22
+ # ARGF may read from *source* streams, which at any particular time are
23
+ # determined by the content of `ARGV`.
24
+ #
25
+ # ### Simplest Case
26
+ #
27
+ # When the *very first* ARGF read occurs with an empty `ARGV` (<code>[]</code>),
28
+ # the source is <code>$stdin</code>:
29
+ #
30
+ # * File <code>t.rb</code>:
31
+ #
32
+ # p ['ARGV', ARGV]
33
+ # p ['ARGF.read', ARGF.read]
34
+ #
35
+ # * Commands and outputs (see below for the content of files
36
+ # <code>foo.txt</code> and <code>bar.txt</code>):
37
+ #
38
+ # $ echo "Open the pod bay doors, Hal." | ruby t.rb
39
+ # ["ARGV", []]
40
+ # ["ARGF.read", "Open the pod bay doors, Hal.\n"]
41
+ #
42
+ # $ cat foo.txt bar.txt | ruby t.rb
43
+ # ["ARGV", []]
44
+ # ["ARGF.read", "Foo 0\nFoo 1\nBar 0\nBar 1\nBar 2\nBar 3\n"]
45
+ #
46
+ # ### About the Examples
47
+ #
48
+ # Many examples here assume the existence of files <code>foo.txt</code> and
49
+ # <code>bar.txt</code>:
50
+ #
51
+ # $ cat foo.txt
52
+ # Foo 0
53
+ # Foo 1
54
+ # $ cat bar.txt
55
+ # Bar 0
56
+ # Bar 1
57
+ # Bar 2
58
+ # Bar 3
59
+ #
60
+ # ### Sources in `ARGV`
61
+ #
62
+ # For any ARGF read *except* the [simplest case](rdoc-ref:ARGF@Simplest+Case)
63
+ # (that is, *except* for the *very first* ARGF read with an empty `ARGV`), the
64
+ # sources are found in `ARGV`.
65
+ #
66
+ # ARGF assumes that each element in array `ARGV` is a potential source, and is
67
+ # one of:
68
+ #
69
+ # * The string path to a file that may be opened as a stream.
70
+ # * The character <code>'-'</code>, meaning stream <code>$stdin</code>.
71
+ #
72
+ # Each element that is *not* one of these should be removed from `ARGV` before
73
+ # ARGF accesses that source.
74
+ #
75
+ # In the following example:
76
+ #
77
+ # * Filepaths <code>foo.txt</code> and <code>bar.txt</code> may be retained as
78
+ # potential sources.
79
+ # * Options <code>--xyzzy</code> and <code>--mojo</code> should be removed.
80
+ #
81
+ # Example:
82
+ #
83
+ # * File <code>t.rb</code>:
84
+ #
85
+ # # Print arguments (and options, if any) found on command line.
86
+ # p ['ARGV', ARGV]
87
+ #
88
+ # * Command and output:
89
+ #
90
+ # $ ruby t.rb --xyzzy --mojo foo.txt bar.txt
91
+ # ["ARGV", ["--xyzzy", "--mojo", "foo.txt", "bar.txt"]]
92
+ #
93
+ # ARGF's stream access considers the elements of `ARGV`, left to right:
94
+ #
95
+ # * File <code>t.rb</code>:
96
+ #
97
+ # p "ARGV: #{ARGV}"
98
+ # p "Read: #{ARGF.read}" # Read everything from all specified streams.
99
+ #
100
+ # * Command and output:
101
+ #
102
+ # $ ruby t.rb foo.txt bar.txt
103
+ # "ARGV: [\"foo.txt\", \"bar.txt\"]"
104
+ # "Read: Foo 0\nFoo 1\nBar 0\nBar 1\nBar 2\nBar 3\n"
105
+ #
106
+ # Because the value at `ARGV` is an ordinary array, you can manipulate it to
107
+ # control which sources ARGF considers:
108
+ #
109
+ # * If you remove an element from `ARGV`, ARGF will not consider the
110
+ # corresponding source.
111
+ # * If you add an element to `ARGV`, ARGF will consider the corresponding
112
+ # source.
113
+ #
114
+ # Each element in `ARGV` is removed when its corresponding source is accessed;
115
+ # when all sources have been accessed, the array is empty:
116
+ #
117
+ # * File <code>t.rb</code>:
118
+ #
119
+ # until ARGV.empty? && ARGF.eof?
120
+ # p "ARGV: #{ARGV}"
121
+ # p "Line: #{ARGF.readline}" # Read each line from each specified stream.
122
+ # end
123
+ #
124
+ # * Command and output:
125
+ #
126
+ # $ ruby t.rb foo.txt bar.txt
127
+ # "ARGV: [\"foo.txt\", \"bar.txt\"]"
128
+ # "Line: Foo 0\n"
129
+ # "ARGV: [\"bar.txt\"]"
130
+ # "Line: Foo 1\n"
131
+ # "ARGV: [\"bar.txt\"]"
132
+ # "Line: Bar 0\n"
133
+ # "ARGV: []"
134
+ # "Line: Bar 1\n"
135
+ # "ARGV: []"
136
+ # "Line: Bar 2\n"
137
+ # "ARGV: []"
138
+ # "Line: Bar 3\n"
139
+ #
140
+ # #### Filepaths in `ARGV`
141
+ #
142
+ # The `ARGV` array may contain filepaths the specify sources for ARGF reading.
143
+ #
144
+ # This program prints what it reads from files at the paths specified on the
145
+ # command line:
146
+ #
147
+ # * File <code>t.rb</code>:
148
+ #
149
+ # p ['ARGV', ARGV]
150
+ # # Read and print all content from the specified sources.
151
+ # p ['ARGF.read', ARGF.read]
152
+ #
153
+ # * Command and output:
154
+ #
155
+ # $ ruby t.rb foo.txt bar.txt
156
+ # ["ARGV", [foo.txt, bar.txt]
157
+ # ["ARGF.read", "Foo 0\nFoo 1\nBar 0\nBar 1\nBar 2\nBar 3\n"]
158
+ #
159
+ # #### Specifying <code>$stdin</code> in `ARGV`
160
+ #
161
+ # To specify stream <code>$stdin</code> in `ARGV`, us the character
162
+ # <code>'-'</code>:
163
+ #
164
+ # * File <code>t.rb</code>:
165
+ #
166
+ # p ['ARGV', ARGV]
167
+ # p ['ARGF.read', ARGF.read]
168
+ #
169
+ # * Command and output:
170
+ #
171
+ # $ echo "Open the pod bay doors, Hal." | ruby t.rb -
172
+ # ["ARGV", ["-"]]
173
+ # ["ARGF.read", "Open the pod bay doors, Hal.\n"]
174
+ #
175
+ # When no character <code>'-'</code> is given, stream <code>$stdin</code> is
176
+ # ignored (exception: see [Specifying $stdin in
177
+ # ARGV](rdoc-ref:ARGF@Specifying+-24stdin+in+ARGV)):
178
+ #
179
+ # * Command and output:
180
+ #
181
+ # $ echo "Open the pod bay doors, Hal." | ruby t.rb foo.txt bar.txt
182
+ # "ARGV: [\"foo.txt\", \"bar.txt\"]"
183
+ # "Read: Foo 0\nFoo 1\nBar 0\nBar 1\nBar 2\nBar 3\n"
184
+ #
185
+ # #### Mixtures and Repetitions in `ARGV`
186
+ #
187
+ # For an ARGF reader, `ARGV` may contain any mixture of filepaths and character
188
+ # <code>'-'</code>, including repetitions.
189
+ #
190
+ # #### Modifications to `ARGV`
191
+ #
192
+ # The running Ruby program may make any modifications to the `ARGV` array; the
193
+ # current value of `ARGV` affects ARGF reading.
194
+ #
195
+ # #### Empty `ARGV`
196
+ #
197
+ # For an empty `ARGV`, an ARGF read method either returns `nil` or raises an
198
+ # exception, depending on the specific method.
199
+ #
200
+ # ### More Read Methods
201
+ #
202
+ # As seen above, method ARGF#read reads the content of all sources into a single
203
+ # string. Other ARGF methods provide other ways to access that content; these
204
+ # include:
205
+ #
206
+ # * Byte access: #each_byte, #getbyte, #readbyte.
207
+ # * Character access: #each_char, #getc, #readchar.
208
+ # * Codepoint access: #each_codepoint.
209
+ # * Line access: #each_line, #gets, #readline, #readlines.
210
+ # * Source access: #read, #read_nonblock, #readpartial.
211
+ #
212
+ # ### About Enumerable
213
+ #
214
+ # ARGF includes module Enumerable. Virtually all methods in Enumerable call
215
+ # method <code>#each</code> in the including class.
216
+ #
217
+ # **Note well**: In ARGF, method #each returns data from the *sources*, *not*
218
+ # from `ARGV`; therefore, for example, <code>ARGF#entries</code> returns an
219
+ # array of lines from the sources, not an array of the strings from `ARGV`:
220
+ #
221
+ # * File <code>t.rb</code>:
222
+ #
223
+ # p ['ARGV', ARGV]
224
+ # p ['ARGF.entries', ARGF.entries]
225
+ #
226
+ # * Command and output:
227
+ #
228
+ # $ ruby t.rb foo.txt bar.txt
229
+ # ["ARGV", ["foo.txt", "bar.txt"]]
230
+ # ["ARGF.entries", ["Foo 0\n", "Foo 1\n", "Bar 0\n", "Bar 1\n", "Bar 2\n", "Bar 3\n"]]
231
+ #
232
+ # ## Writing
233
+ #
234
+ # If *inplace mode* is in effect, ARGF may write to target streams, which at any
235
+ # particular time are determined by the content of ARGV.
236
+ #
237
+ # Methods about inplace mode:
238
+ #
239
+ # * #inplace_mode
240
+ # * #inplace_mode=
241
+ # * #to_write_io
242
+ #
243
+ # Methods for writing:
244
+ #
245
+ # * #print
246
+ # * #printf
247
+ # * #putc
248
+ # * #puts
249
+ # * #write
250
+ #
251
+ %a{annotate:rdoc:copy:ARGF}
252
+ class ARGFClass
253
+ include Enumerable[String]
254
+
255
+ # <!--
256
+ # rdoc-file=io.c
257
+ # - ARGF.argv -> ARGV
258
+ # -->
259
+ # Returns the `ARGV` array, which contains the arguments passed to your script,
260
+ # one per element.
261
+ #
262
+ # For example:
263
+ #
264
+ # $ ruby argf.rb -v glark.txt
265
+ #
266
+ # ARGF.argv #=> ["-v", "glark.txt"]
267
+ #
268
+ %a{annotate:rdoc:copy:ARGF#argv}
269
+ def argv: () -> ::Array[String]
270
+
271
+ # <!--
272
+ # rdoc-file=io.c
273
+ # - ARGF.binmode -> ARGF
274
+ # -->
275
+ # Puts ARGF into binary mode. Once a stream is in binary mode, it cannot be
276
+ # reset to non-binary mode. This option has the following effects:
277
+ #
278
+ # * Newline conversion is disabled.
279
+ # * Encoding conversion is disabled.
280
+ # * Content is treated as ASCII-8BIT.
281
+ #
282
+ %a{annotate:rdoc:copy:ARGF#binmode}
283
+ def binmode: () -> self
284
+
285
+ # <!--
286
+ # rdoc-file=io.c
287
+ # - ARGF.binmode? -> true or false
288
+ # -->
289
+ # Returns true if ARGF is being read in binary mode; false otherwise. To enable
290
+ # binary mode use ARGF.binmode.
291
+ #
292
+ # For example:
293
+ #
294
+ # ARGF.binmode? #=> false
295
+ # ARGF.binmode
296
+ # ARGF.binmode? #=> true
297
+ #
298
+ %a{annotate:rdoc:copy:ARGF#binmode?}
299
+ def binmode?: () -> bool
300
+
301
+ # <!--
302
+ # rdoc-file=io.c
303
+ # - ARGF.close -> ARGF
304
+ # -->
305
+ # Closes the current file and skips to the next file in ARGV. If there are no
306
+ # more files to open, just closes the current file. STDIN will not be closed.
307
+ #
308
+ # For example:
309
+ #
310
+ # $ ruby argf.rb foo bar
311
+ #
312
+ # ARGF.filename #=> "foo"
313
+ # ARGF.close
314
+ # ARGF.filename #=> "bar"
315
+ # ARGF.close
316
+ #
317
+ %a{annotate:rdoc:copy:ARGF#close}
318
+ def close: () -> self
319
+
320
+ # <!--
321
+ # rdoc-file=io.c
322
+ # - ARGF.closed? -> true or false
323
+ # -->
324
+ # Returns *true* if the current file has been closed; *false* otherwise. Use
325
+ # ARGF.close to actually close the current file.
326
+ #
327
+ %a{annotate:rdoc:copy:ARGF#closed?}
328
+ def closed?: () -> bool
329
+
330
+ # <!--
331
+ # rdoc-file=io.c
332
+ # - ARGF.each(sep=$/) {|line| block } -> ARGF
333
+ # - ARGF.each(sep=$/, limit) {|line| block } -> ARGF
334
+ # - ARGF.each(...) -> an_enumerator
335
+ # - ARGF.each_line(sep=$/) {|line| block } -> ARGF
336
+ # - ARGF.each_line(sep=$/, limit) {|line| block } -> ARGF
337
+ # - ARGF.each_line(...) -> an_enumerator
338
+ # -->
339
+ # Returns an enumerator which iterates over each line (separated by *sep*, which
340
+ # defaults to your platform's newline character) of each file in `ARGV`. If a
341
+ # block is supplied, each line in turn will be yielded to the block, otherwise
342
+ # an enumerator is returned. The optional *limit* argument is an Integer
343
+ # specifying the maximum length of each line; longer lines will be split
344
+ # according to this limit.
345
+ #
346
+ # This method allows you to treat the files supplied on the command line as a
347
+ # single file consisting of the concatenation of each named file. After the last
348
+ # line of the first file has been returned, the first line of the second file is
349
+ # returned. The ARGF.filename and ARGF.lineno methods can be used to determine
350
+ # the filename of the current line and line number of the whole input,
351
+ # respectively.
352
+ #
353
+ # For example, the following code prints out each line of each named file
354
+ # prefixed with its line number, displaying the filename once per file:
355
+ #
356
+ # ARGF.each_line do |line|
357
+ # puts ARGF.filename if ARGF.file.lineno == 1
358
+ # puts "#{ARGF.file.lineno}: #{line}"
359
+ # end
360
+ #
361
+ # While the following code prints only the first file's name at first, and the
362
+ # contents with line number counted through all named files.
363
+ #
364
+ # ARGF.each_line do |line|
365
+ # puts ARGF.filename if ARGF.lineno == 1
366
+ # puts "#{ARGF.lineno}: #{line}"
367
+ # end
368
+ #
369
+ %a{annotate:rdoc:copy:ARGF#each}
370
+ def each: (?String sep, ?Integer limit) { (String line) -> untyped } -> self
371
+ | (?String sep, ?Integer limit) -> ::Enumerator[String, self]
372
+
373
+ # <!--
374
+ # rdoc-file=io.c
375
+ # - ARGF.each_byte {|byte| block } -> ARGF
376
+ # - ARGF.each_byte -> an_enumerator
377
+ # -->
378
+ # Iterates over each byte of each file in `ARGV`. A byte is returned as an
379
+ # Integer in the range 0..255.
380
+ #
381
+ # This method allows you to treat the files supplied on the command line as a
382
+ # single file consisting of the concatenation of each named file. After the last
383
+ # byte of the first file has been returned, the first byte of the second file is
384
+ # returned. The ARGF.filename method can be used to determine the filename of
385
+ # the current byte.
386
+ #
387
+ # If no block is given, an enumerator is returned instead.
388
+ #
389
+ # For example:
390
+ #
391
+ # ARGF.bytes.to_a #=> [35, 32, ... 95, 10]
392
+ #
393
+ %a{annotate:rdoc:copy:ARGF#each_byte}
394
+ def each_byte: () { (Integer byte) -> untyped } -> self
395
+ | () -> ::Enumerator[Integer, self]
396
+
397
+ # <!--
398
+ # rdoc-file=io.c
399
+ # - ARGF.each_char {|char| block } -> ARGF
400
+ # - ARGF.each_char -> an_enumerator
401
+ # -->
402
+ # Iterates over each character of each file in ARGF.
403
+ #
404
+ # This method allows you to treat the files supplied on the command line as a
405
+ # single file consisting of the concatenation of each named file. After the last
406
+ # character of the first file has been returned, the first character of the
407
+ # second file is returned. The ARGF.filename method can be used to determine the
408
+ # name of the file in which the current character appears.
409
+ #
410
+ # If no block is given, an enumerator is returned instead.
411
+ #
412
+ %a{annotate:rdoc:copy:ARGF#each_char}
413
+ def each_char: () { (String char) -> untyped } -> self
414
+ | () -> ::Enumerator[String, self]
415
+
416
+ # <!--
417
+ # rdoc-file=io.c
418
+ # - ARGF.each_codepoint {|codepoint| block } -> ARGF
419
+ # - ARGF.each_codepoint -> an_enumerator
420
+ # -->
421
+ # Iterates over each codepoint of each file in ARGF.
422
+ #
423
+ # This method allows you to treat the files supplied on the command line as a
424
+ # single file consisting of the concatenation of each named file. After the last
425
+ # codepoint of the first file has been returned, the first codepoint of the
426
+ # second file is returned. The ARGF.filename method can be used to determine the
427
+ # name of the file in which the current codepoint appears.
428
+ #
429
+ # If no block is given, an enumerator is returned instead.
430
+ #
431
+ %a{annotate:rdoc:copy:ARGF#each_codepoint}
432
+ def each_codepoint: () { (Integer codepoint) -> untyped } -> self
433
+ | () -> ::Enumerator[Integer, self]
434
+
435
+ # <!-- rdoc-file=io.c -->
436
+ # Returns an enumerator which iterates over each line (separated by *sep*, which
437
+ # defaults to your platform's newline character) of each file in `ARGV`. If a
438
+ # block is supplied, each line in turn will be yielded to the block, otherwise
439
+ # an enumerator is returned. The optional *limit* argument is an Integer
440
+ # specifying the maximum length of each line; longer lines will be split
441
+ # according to this limit.
442
+ #
443
+ # This method allows you to treat the files supplied on the command line as a
444
+ # single file consisting of the concatenation of each named file. After the last
445
+ # line of the first file has been returned, the first line of the second file is
446
+ # returned. The ARGF.filename and ARGF.lineno methods can be used to determine
447
+ # the filename of the current line and line number of the whole input,
448
+ # respectively.
449
+ #
450
+ # For example, the following code prints out each line of each named file
451
+ # prefixed with its line number, displaying the filename once per file:
452
+ #
453
+ # ARGF.each_line do |line|
454
+ # puts ARGF.filename if ARGF.file.lineno == 1
455
+ # puts "#{ARGF.file.lineno}: #{line}"
456
+ # end
457
+ #
458
+ # While the following code prints only the first file's name at first, and the
459
+ # contents with line number counted through all named files.
460
+ #
461
+ # ARGF.each_line do |line|
462
+ # puts ARGF.filename if ARGF.lineno == 1
463
+ # puts "#{ARGF.lineno}: #{line}"
464
+ # end
465
+ #
466
+ %a{annotate:rdoc:copy:ARGF#each_line}
467
+ def each_line: (?String sep, ?Integer limit) { (String line) -> untyped } -> self
468
+ | (?String sep, ?Integer limit) -> ::Enumerator[String, self]
469
+
470
+ # <!--
471
+ # rdoc-file=io.c
472
+ # - ARGF.eof? -> true or false
473
+ # - ARGF.eof -> true or false
474
+ # -->
475
+ # Returns true if the current file in ARGF is at end of file, i.e. it has no
476
+ # data to read. The stream must be opened for reading or an IOError will be
477
+ # raised.
478
+ #
479
+ # $ echo "eof" | ruby argf.rb
480
+ #
481
+ # ARGF.eof? #=> false
482
+ # 3.times { ARGF.readchar }
483
+ # ARGF.eof? #=> false
484
+ # ARGF.readchar #=> "\n"
485
+ # ARGF.eof? #=> true
486
+ #
487
+ %a{annotate:rdoc:copy:ARGF#eof}
488
+ def eof: () -> bool
489
+
490
+ # <!-- rdoc-file=io.c -->
491
+ # Returns true if the current file in ARGF is at end of file, i.e. it has no
492
+ # data to read. The stream must be opened for reading or an IOError will be
493
+ # raised.
494
+ #
495
+ # $ echo "eof" | ruby argf.rb
496
+ #
497
+ # ARGF.eof? #=> false
498
+ # 3.times { ARGF.readchar }
499
+ # ARGF.eof? #=> false
500
+ # ARGF.readchar #=> "\n"
501
+ # ARGF.eof? #=> true
502
+ #
503
+ %a{annotate:rdoc:copy:ARGF#eof?}
504
+ def eof?: () -> bool
505
+
506
+ # <!--
507
+ # rdoc-file=io.c
508
+ # - ARGF.external_encoding -> encoding
509
+ # -->
510
+ # Returns the external encoding for files read from ARGF as an Encoding object.
511
+ # The external encoding is the encoding of the text as stored in a file.
512
+ # Contrast with ARGF.internal_encoding, which is the encoding used to represent
513
+ # this text within Ruby.
514
+ #
515
+ # To set the external encoding use ARGF.set_encoding.
516
+ #
517
+ # For example:
518
+ #
519
+ # ARGF.external_encoding #=> #<Encoding:UTF-8>
520
+ #
521
+ %a{annotate:rdoc:copy:ARGF#external_encoding}
522
+ def external_encoding: () -> Encoding
523
+
524
+ # <!--
525
+ # rdoc-file=io.c
526
+ # - ARGF.file -> IO or File object
527
+ # -->
528
+ # Returns the current file as an IO or File object. <code>$stdin</code> is
529
+ # returned when the current file is STDIN.
530
+ #
531
+ # For example:
532
+ #
533
+ # $ echo "foo" > foo
534
+ # $ echo "bar" > bar
535
+ #
536
+ # $ ruby argf.rb foo bar
537
+ #
538
+ # ARGF.file #=> #<File:foo>
539
+ # ARGF.read(5) #=> "foo\nb"
540
+ # ARGF.file #=> #<File:bar>
541
+ #
542
+ %a{annotate:rdoc:copy:ARGF#file}
543
+ def file: () -> (IO | File)
544
+
545
+ # <!--
546
+ # rdoc-file=io.c
547
+ # - ARGF.filename -> String
548
+ # - ARGF.path -> String
549
+ # -->
550
+ # Returns the current filename. "-" is returned when the current file is STDIN.
551
+ #
552
+ # For example:
553
+ #
554
+ # $ echo "foo" > foo
555
+ # $ echo "bar" > bar
556
+ # $ echo "glark" > glark
557
+ #
558
+ # $ ruby argf.rb foo bar glark
559
+ #
560
+ # ARGF.filename #=> "foo"
561
+ # ARGF.read(5) #=> "foo\nb"
562
+ # ARGF.filename #=> "bar"
563
+ # ARGF.skip
564
+ # ARGF.filename #=> "glark"
565
+ #
566
+ %a{annotate:rdoc:copy:ARGF#filename}
567
+ def filename: () -> String
568
+
569
+ # <!--
570
+ # rdoc-file=io.c
571
+ # - ARGF.fileno -> integer
572
+ # - ARGF.to_i -> integer
573
+ # -->
574
+ # Returns an integer representing the numeric file descriptor for the current
575
+ # file. Raises an ArgumentError if there isn't a current file.
576
+ #
577
+ # ARGF.fileno #=> 3
578
+ #
579
+ %a{annotate:rdoc:copy:ARGF#fileno}
580
+ def fileno: () -> Integer
581
+
582
+ # <!--
583
+ # rdoc-file=io.c
584
+ # - ARGF.getbyte -> Integer or nil
585
+ # -->
586
+ # Gets the next 8-bit byte (0..255) from ARGF. Returns `nil` if called at the
587
+ # end of the stream.
588
+ #
589
+ # For example:
590
+ #
591
+ # $ echo "foo" > file
592
+ # $ ruby argf.rb file
593
+ #
594
+ # ARGF.getbyte #=> 102
595
+ # ARGF.getbyte #=> 111
596
+ # ARGF.getbyte #=> 111
597
+ # ARGF.getbyte #=> 10
598
+ # ARGF.getbyte #=> nil
599
+ #
600
+ %a{annotate:rdoc:copy:ARGF#getbyte}
601
+ def getbyte: () -> Integer?
602
+
603
+ # <!--
604
+ # rdoc-file=io.c
605
+ # - ARGF.getc -> String or nil
606
+ # -->
607
+ # Reads the next character from ARGF and returns it as a String. Returns `nil`
608
+ # at the end of the stream.
609
+ #
610
+ # ARGF treats the files named on the command line as a single file created by
611
+ # concatenating their contents. After returning the last character of the first
612
+ # file, it returns the first character of the second file, and so on.
613
+ #
614
+ # For example:
615
+ #
616
+ # $ echo "foo" > file
617
+ # $ ruby argf.rb file
618
+ #
619
+ # ARGF.getc #=> "f"
620
+ # ARGF.getc #=> "o"
621
+ # ARGF.getc #=> "o"
622
+ # ARGF.getc #=> "\n"
623
+ # ARGF.getc #=> nil
624
+ # ARGF.getc #=> nil
625
+ #
626
+ %a{annotate:rdoc:copy:ARGF#getc}
627
+ def getc: () -> String?
628
+
629
+ # <!--
630
+ # rdoc-file=io.c
631
+ # - ARGF.gets(sep=$/ [, getline_args]) -> string or nil
632
+ # - ARGF.gets(limit [, getline_args]) -> string or nil
633
+ # - ARGF.gets(sep, limit [, getline_args]) -> string or nil
634
+ # -->
635
+ # Returns the next line from the current file in ARGF.
636
+ #
637
+ # By default lines are assumed to be separated by <code>$/</code>; to use a
638
+ # different character as a separator, supply it as a String for the *sep*
639
+ # argument.
640
+ #
641
+ # The optional *limit* argument specifies how many characters of each line to
642
+ # return. By default all characters are returned.
643
+ #
644
+ # See IO.readlines for details about getline_args.
645
+ #
646
+ %a{annotate:rdoc:copy:ARGF#gets}
647
+ def gets: (?String sep, ?Integer limit, ?chomp: boolish) -> String?
648
+
649
+ # <!--
650
+ # rdoc-file=io.c
651
+ # - ARGF.inplace_mode -> String
652
+ # -->
653
+ # Returns the file extension appended to the names of backup copies of modified
654
+ # files under in-place edit mode. This value can be set using ARGF.inplace_mode=
655
+ # or passing the <code>-i</code> switch to the Ruby binary.
656
+ #
657
+ %a{annotate:rdoc:copy:ARGF#inplace_mode}
658
+ def inplace_mode: () -> String?
659
+
660
+ # <!--
661
+ # rdoc-file=io.c
662
+ # - ARGF.inplace_mode = ext -> ARGF
663
+ # -->
664
+ # Sets the filename extension for in-place editing mode to the given String. The
665
+ # backup copy of each file being edited has this value appended to its filename.
666
+ #
667
+ # For example:
668
+ #
669
+ # $ ruby argf.rb file.txt
670
+ #
671
+ # ARGF.inplace_mode = '.bak'
672
+ # ARGF.each_line do |line|
673
+ # print line.sub("foo","bar")
674
+ # end
675
+ #
676
+ # First, <em>file.txt.bak</em> is created as a backup copy of <em>file.txt</em>.
677
+ # Then, each line of <em>file.txt</em> has the first occurrence of "foo"
678
+ # replaced with "bar".
679
+ #
680
+ %a{annotate:rdoc:copy:ARGF#inplace_mode=}
681
+ def inplace_mode=: (String) -> self
682
+
683
+ alias inspect to_s
684
+
685
+ # <!--
686
+ # rdoc-file=io.c
687
+ # - ARGF.internal_encoding -> encoding
688
+ # -->
689
+ # Returns the internal encoding for strings read from ARGF as an Encoding
690
+ # object.
691
+ #
692
+ # If ARGF.set_encoding has been called with two encoding names, the second is
693
+ # returned. Otherwise, if <code>Encoding.default_external</code> has been set,
694
+ # that value is returned. Failing that, if a default external encoding was
695
+ # specified on the command-line, that value is used. If the encoding is unknown,
696
+ # `nil` is returned.
697
+ #
698
+ %a{annotate:rdoc:copy:ARGF#internal_encoding}
699
+ def internal_encoding: () -> Encoding
700
+
701
+ # <!--
702
+ # rdoc-file=io.c
703
+ # - ARGF.lineno -> integer
704
+ # -->
705
+ # Returns the current line number of ARGF as a whole. This value can be set
706
+ # manually with ARGF.lineno=.
707
+ #
708
+ # For example:
709
+ #
710
+ # ARGF.lineno #=> 0
711
+ # ARGF.readline #=> "This is line 1\n"
712
+ # ARGF.lineno #=> 1
713
+ #
714
+ %a{annotate:rdoc:copy:ARGF#lineno}
715
+ def lineno: () -> Integer
716
+
717
+ # <!--
718
+ # rdoc-file=io.c
719
+ # - ARGF.lineno = integer -> integer
720
+ # -->
721
+ # Sets the line number of ARGF as a whole to the given Integer.
722
+ #
723
+ # ARGF sets the line number automatically as you read data, so normally you will
724
+ # not need to set it explicitly. To access the current line number use
725
+ # ARGF.lineno.
726
+ #
727
+ # For example:
728
+ #
729
+ # ARGF.lineno #=> 0
730
+ # ARGF.readline #=> "This is line 1\n"
731
+ # ARGF.lineno #=> 1
732
+ # ARGF.lineno = 0 #=> 0
733
+ # ARGF.lineno #=> 0
734
+ #
735
+ %a{annotate:rdoc:copy:ARGF#lineno=}
736
+ def lineno=: (Integer) -> untyped
737
+
738
+ # <!-- rdoc-file=io.c -->
739
+ # Returns the current filename. "-" is returned when the current file is STDIN.
740
+ #
741
+ # For example:
742
+ #
743
+ # $ echo "foo" > foo
744
+ # $ echo "bar" > bar
745
+ # $ echo "glark" > glark
746
+ #
747
+ # $ ruby argf.rb foo bar glark
748
+ #
749
+ # ARGF.filename #=> "foo"
750
+ # ARGF.read(5) #=> "foo\nb"
751
+ # ARGF.filename #=> "bar"
752
+ # ARGF.skip
753
+ # ARGF.filename #=> "glark"
754
+ #
755
+ %a{annotate:rdoc:copy:ARGF#path}
756
+ def path: () -> String
757
+
758
+ # <!-- rdoc-file=io.c -->
759
+ # Returns the current offset (in bytes) of the current file in ARGF.
760
+ #
761
+ # ARGF.pos #=> 0
762
+ # ARGF.gets #=> "This is line one\n"
763
+ # ARGF.pos #=> 17
764
+ #
765
+ %a{annotate:rdoc:copy:ARGF#pos}
766
+ def pos: () -> Integer
767
+
768
+ # <!--
769
+ # rdoc-file=io.c
770
+ # - ARGF.pos = position -> Integer
771
+ # -->
772
+ # Seeks to the position given by *position* (in bytes) in ARGF.
773
+ #
774
+ # For example:
775
+ #
776
+ # ARGF.pos = 17
777
+ # ARGF.gets #=> "This is line two\n"
778
+ #
779
+ %a{annotate:rdoc:copy:ARGF#pos=}
780
+ def pos=: (Integer) -> Integer
781
+
782
+ # <!--
783
+ # rdoc-file=io.c
784
+ # - print(*objects) -> nil
785
+ # -->
786
+ # Writes the given objects to the stream; returns `nil`. Appends the output
787
+ # record separator <code>$OUTPUT_RECORD_SEPARATOR</code> (<code>$\</code>), if
788
+ # it is not `nil`. See [Line IO](rdoc-ref:IO@Line+IO).
789
+ #
790
+ # With argument `objects` given, for each object:
791
+ #
792
+ # * Converts via its method `to_s` if not a string.
793
+ # * Writes to the stream.
794
+ # * If not the last object, writes the output field separator
795
+ # <code>$OUTPUT_FIELD_SEPARATOR</code> (<code>$,</code>) if it is not `nil`.
796
+ #
797
+ # With default separators:
798
+ #
799
+ # f = File.open('t.tmp', 'w+')
800
+ # objects = [0, 0.0, Rational(0, 1), Complex(0, 0), :zero, 'zero']
801
+ # p $OUTPUT_RECORD_SEPARATOR
802
+ # p $OUTPUT_FIELD_SEPARATOR
803
+ # f.print(*objects)
804
+ # f.rewind
805
+ # p f.read
806
+ # f.close
807
+ #
808
+ # Output:
809
+ #
810
+ # nil
811
+ # nil
812
+ # "00.00/10+0izerozero"
813
+ #
814
+ # With specified separators:
815
+ #
816
+ # $\ = "\n"
817
+ # $, = ','
818
+ # f.rewind
819
+ # f.print(*objects)
820
+ # f.rewind
821
+ # p f.read
822
+ #
823
+ # Output:
824
+ #
825
+ # "0,0.0,0/1,0+0i,zero,zero\n"
826
+ #
827
+ # With no argument given, writes the content of <code>$_</code> (which is
828
+ # usually the most recent user input):
829
+ #
830
+ # f = File.open('t.tmp', 'w+')
831
+ # gets # Sets $_ to the most recent user input.
832
+ # f.print
833
+ # f.close
834
+ #
835
+ %a{annotate:rdoc:copy:ARGF#print}
836
+ def print: (*untyped args) -> nil
837
+
838
+ # <!--
839
+ # rdoc-file=io.c
840
+ # - printf(format_string, *objects) -> nil
841
+ # -->
842
+ # Formats and writes `objects` to the stream.
843
+ #
844
+ # For details on `format_string`, see [Format
845
+ # Specifications](rdoc-ref:language/format_specifications.rdoc).
846
+ #
847
+ %a{annotate:rdoc:copy:ARGF#printf}
848
+ def printf: (String format_string, *untyped args) -> nil
849
+
850
+ # <!--
851
+ # rdoc-file=io.c
852
+ # - putc(object) -> object
853
+ # -->
854
+ # Writes a character to the stream. See [Character
855
+ # IO](rdoc-ref:IO@Character+IO).
856
+ #
857
+ # If `object` is numeric, converts to integer if necessary, then writes the
858
+ # character whose code is the least significant byte; if `object` is a string,
859
+ # writes the first character:
860
+ #
861
+ # $stdout.putc "A"
862
+ # $stdout.putc 65
863
+ #
864
+ # Output:
865
+ #
866
+ # AA
867
+ #
868
+ %a{annotate:rdoc:copy:ARGF#putc}
869
+ def putc: (Numeric | String obj) -> untyped
870
+
871
+ # <!--
872
+ # rdoc-file=io.c
873
+ # - puts(*objects) -> nil
874
+ # -->
875
+ # Writes the given `objects` to the stream, which must be open for writing;
876
+ # returns `nil`.\ Writes a newline after each that does not already end with a
877
+ # newline sequence. If called without arguments, writes a newline. See [Line
878
+ # IO](rdoc-ref:IO@Line+IO).
879
+ #
880
+ # Note that each added newline is the character <code>"\n"<//tt>, not the output
881
+ # record separator (<tt>$\</code>).
882
+ #
883
+ # Treatment for each object:
884
+ #
885
+ # * String: writes the string.
886
+ # * Neither string nor array: writes <code>object.to_s</code>.
887
+ # * Array: writes each element of the array; arrays may be nested.
888
+ #
889
+ # To keep these examples brief, we define this helper method:
890
+ #
891
+ # def show(*objects)
892
+ # # Puts objects to file.
893
+ # f = File.new('t.tmp', 'w+')
894
+ # f.puts(objects)
895
+ # # Return file content.
896
+ # f.rewind
897
+ # p f.read
898
+ # f.close
899
+ # end
900
+ #
901
+ # # Strings without newlines.
902
+ # show('foo', 'bar', 'baz') # => "foo\nbar\nbaz\n"
903
+ # # Strings, some with newlines.
904
+ # show("foo\n", 'bar', "baz\n") # => "foo\nbar\nbaz\n"
905
+ #
906
+ # # Neither strings nor arrays:
907
+ # show(0, 0.0, Rational(0, 1), Complex(9, 0), :zero)
908
+ # # => "0\n0.0\n0/1\n9+0i\nzero\n"
909
+ #
910
+ # # Array of strings.
911
+ # show(['foo', "bar\n", 'baz']) # => "foo\nbar\nbaz\n"
912
+ # # Nested arrays.
913
+ # show([[[0, 1], 2, 3], 4, 5]) # => "0\n1\n2\n3\n4\n5\n"
914
+ #
915
+ %a{annotate:rdoc:copy:ARGF#puts}
916
+ def puts: (*untyped obj) -> nil
917
+
918
+ # <!--
919
+ # rdoc-file=io.c
920
+ # - ARGF.read([length [, outbuf]]) -> string, outbuf, or nil
921
+ # -->
922
+ # Reads *length* bytes from ARGF. The files named on the command line are
923
+ # concatenated and treated as a single file by this method, so when called
924
+ # without arguments the contents of this pseudo file are returned in their
925
+ # entirety.
926
+ #
927
+ # *length* must be a non-negative integer or `nil`.
928
+ #
929
+ # If *length* is a positive integer, `read` tries to read *length* bytes without
930
+ # any conversion (binary mode). It returns `nil` if an EOF is encountered before
931
+ # anything can be read. Fewer than *length* bytes are returned if an EOF is
932
+ # encountered during the read. In the case of an integer *length*, the resulting
933
+ # string is always in ASCII-8BIT encoding.
934
+ #
935
+ # If *length* is omitted or is `nil`, it reads until EOF and the encoding
936
+ # conversion is applied, if applicable. A string is returned even if EOF is
937
+ # encountered before any data is read.
938
+ #
939
+ # If *length* is zero, it returns an empty string (<code>""</code>).
940
+ #
941
+ # If the optional *outbuf* argument is present, it must reference a String,
942
+ # which will receive the data. The *outbuf* will contain only the received data
943
+ # after the method call even if it is not empty at the beginning.
944
+ #
945
+ # For example:
946
+ #
947
+ # $ echo "small" > small.txt
948
+ # $ echo "large" > large.txt
949
+ # $ ./glark.rb small.txt large.txt
950
+ #
951
+ # ARGF.read #=> "small\nlarge"
952
+ # ARGF.read(200) #=> "small\nlarge"
953
+ # ARGF.read(2) #=> "sm"
954
+ # ARGF.read(0) #=> ""
955
+ #
956
+ # Note that this method behaves like the fread() function in C. This means it
957
+ # retries to invoke read(2) system calls to read data with the specified length.
958
+ # If you need the behavior like a single read(2) system call, consider
959
+ # ARGF#readpartial or ARGF#read_nonblock.
960
+ #
961
+ %a{annotate:rdoc:copy:ARGF#read}
962
+ def read: (?int? length, ?string? outbuf) -> String?
963
+
964
+ # <!--
965
+ # rdoc-file=io.c
966
+ # - ARGF.read_nonblock(maxlen[, options]) -> string
967
+ # - ARGF.read_nonblock(maxlen, outbuf[, options]) -> outbuf
968
+ # -->
969
+ # Reads at most *maxlen* bytes from the ARGF stream in non-blocking mode.
970
+ #
971
+ %a{annotate:rdoc:copy:ARGF#read_nonblock}
972
+ def read_nonblock: (int maxlen, ?string? buf, **untyped options) -> String
973
+
974
+ # <!--
975
+ # rdoc-file=io.c
976
+ # - ARGF.readbyte -> Integer
977
+ # -->
978
+ # Reads the next 8-bit byte from ARGF and returns it as an Integer. Raises an
979
+ # EOFError after the last byte of the last file has been read.
980
+ #
981
+ # For example:
982
+ #
983
+ # $ echo "foo" > file
984
+ # $ ruby argf.rb file
985
+ #
986
+ # ARGF.readbyte #=> 102
987
+ # ARGF.readbyte #=> 111
988
+ # ARGF.readbyte #=> 111
989
+ # ARGF.readbyte #=> 10
990
+ # ARGF.readbyte #=> end of file reached (EOFError)
991
+ #
992
+ %a{annotate:rdoc:copy:ARGF#readbyte}
993
+ def readbyte: () -> Integer
994
+
995
+ # <!--
996
+ # rdoc-file=io.c
997
+ # - ARGF.readchar -> String or nil
998
+ # -->
999
+ # Reads the next character from ARGF and returns it as a String. Raises an
1000
+ # EOFError after the last character of the last file has been read.
1001
+ #
1002
+ # For example:
1003
+ #
1004
+ # $ echo "foo" > file
1005
+ # $ ruby argf.rb file
1006
+ #
1007
+ # ARGF.readchar #=> "f"
1008
+ # ARGF.readchar #=> "o"
1009
+ # ARGF.readchar #=> "o"
1010
+ # ARGF.readchar #=> "\n"
1011
+ # ARGF.readchar #=> end of file reached (EOFError)
1012
+ #
1013
+ %a{annotate:rdoc:copy:ARGF#readchar}
1014
+ def readchar: () -> String
1015
+
1016
+ # <!--
1017
+ # rdoc-file=io.c
1018
+ # - ARGF.readline(sep=$/) -> string
1019
+ # - ARGF.readline(limit) -> string
1020
+ # - ARGF.readline(sep, limit) -> string
1021
+ # -->
1022
+ # Returns the next line from the current file in ARGF.
1023
+ #
1024
+ # By default lines are assumed to be separated by <code>$/</code>; to use a
1025
+ # different character as a separator, supply it as a String for the *sep*
1026
+ # argument.
1027
+ #
1028
+ # The optional *limit* argument specifies how many characters of each line to
1029
+ # return. By default all characters are returned.
1030
+ #
1031
+ # An EOFError is raised at the end of the file.
1032
+ #
1033
+ %a{annotate:rdoc:copy:ARGF#readline}
1034
+ def readline: (?String sep, ?Integer limit, ?chomp: boolish) -> String
1035
+
1036
+ # <!--
1037
+ # rdoc-file=io.c
1038
+ # - ARGF.readlines(sep = $/, chomp: false) -> array
1039
+ # - ARGF.readlines(limit, chomp: false) -> array
1040
+ # - ARGF.readlines(sep, limit, chomp: false) -> array
1041
+ # - ARGF.to_a(sep = $/, chomp: false) -> array
1042
+ # - ARGF.to_a(limit, chomp: false) -> array
1043
+ # - ARGF.to_a(sep, limit, chomp: false) -> array
1044
+ # -->
1045
+ # Reads each file in ARGF in its entirety, returning an Array containing lines
1046
+ # from the files. Lines are assumed to be separated by *sep*.
1047
+ #
1048
+ # lines = ARGF.readlines
1049
+ # lines[0] #=> "This is line one\n"
1050
+ #
1051
+ # See <code>IO.readlines</code> for a full description of all options.
1052
+ #
1053
+ %a{annotate:rdoc:copy:ARGF#readlines}
1054
+ def readlines: (?String sep, ?Integer limit, ?chomp: boolish) -> ::Array[String]
1055
+
1056
+ # <!--
1057
+ # rdoc-file=io.c
1058
+ # - ARGF.readpartial(maxlen) -> string
1059
+ # - ARGF.readpartial(maxlen, outbuf) -> outbuf
1060
+ # -->
1061
+ # Reads at most *maxlen* bytes from the ARGF stream.
1062
+ #
1063
+ # If the optional *outbuf* argument is present, it must reference a String,
1064
+ # which will receive the data. The *outbuf* will contain only the received data
1065
+ # after the method call even if it is not empty at the beginning.
1066
+ #
1067
+ # It raises EOFError on end of ARGF stream. Since ARGF stream is a concatenation
1068
+ # of multiple files, internally EOF is occur for each file. ARGF.readpartial
1069
+ # returns empty strings for EOFs except the last one and raises EOFError for the
1070
+ # last one.
1071
+ #
1072
+ %a{annotate:rdoc:copy:ARGF#readpartial}
1073
+ def readpartial: (int maxlen, ?string? outbuf) -> String
1074
+
1075
+ # <!--
1076
+ # rdoc-file=io.c
1077
+ # - ARGF.rewind -> 0
1078
+ # -->
1079
+ # Positions the current file to the beginning of input, resetting ARGF.lineno to
1080
+ # zero.
1081
+ #
1082
+ # ARGF.readline #=> "This is line one\n"
1083
+ # ARGF.rewind #=> 0
1084
+ # ARGF.lineno #=> 0
1085
+ # ARGF.readline #=> "This is line one\n"
1086
+ #
1087
+ %a{annotate:rdoc:copy:ARGF#rewind}
1088
+ def rewind: () -> Integer
1089
+
1090
+ # <!--
1091
+ # rdoc-file=io.c
1092
+ # - ARGF.seek(amount, whence=IO::SEEK_SET) -> 0
1093
+ # -->
1094
+ # Seeks to offset *amount* (an Integer) in the ARGF stream according to the
1095
+ # value of *whence*. See IO#seek for further details.
1096
+ #
1097
+ %a{annotate:rdoc:copy:ARGF#seek}
1098
+ def seek: (Integer amount, ?Integer whence) -> Integer
1099
+
1100
+ # <!--
1101
+ # rdoc-file=io.c
1102
+ # - ARGF.set_encoding(ext_enc) -> ARGF
1103
+ # - ARGF.set_encoding("ext_enc:int_enc") -> ARGF
1104
+ # - ARGF.set_encoding(ext_enc, int_enc) -> ARGF
1105
+ # - ARGF.set_encoding("ext_enc:int_enc", opt) -> ARGF
1106
+ # - ARGF.set_encoding(ext_enc, int_enc, opt) -> ARGF
1107
+ # -->
1108
+ # If single argument is specified, strings read from ARGF are tagged with the
1109
+ # encoding specified.
1110
+ #
1111
+ # If two encoding names separated by a colon are given, e.g. "ascii:utf-8", the
1112
+ # read string is converted from the first encoding (external encoding) to the
1113
+ # second encoding (internal encoding), then tagged with the second encoding.
1114
+ #
1115
+ # If two arguments are specified, they must be encoding objects or encoding
1116
+ # names. Again, the first specifies the external encoding; the second specifies
1117
+ # the internal encoding.
1118
+ #
1119
+ # If the external encoding and the internal encoding are specified, the optional
1120
+ # Hash argument can be used to adjust the conversion process. The structure of
1121
+ # this hash is explained in the String#encode documentation.
1122
+ #
1123
+ # For example:
1124
+ #
1125
+ # ARGF.set_encoding('ascii') # Tag the input as US-ASCII text
1126
+ # ARGF.set_encoding(Encoding::UTF_8) # Tag the input as UTF-8 text
1127
+ # ARGF.set_encoding('utf-8','ascii') # Transcode the input from US-ASCII
1128
+ # # to UTF-8.
1129
+ #
1130
+ %a{annotate:rdoc:copy:ARGF#set_encoding}
1131
+ def set_encoding: (String | Encoding ext_or_ext_int_enc, ?String | Encoding int_enc) -> self
1132
+
1133
+ # <!--
1134
+ # rdoc-file=io.c
1135
+ # - ARGF.skip -> ARGF
1136
+ # -->
1137
+ # Sets the current file to the next file in ARGV. If there aren't any more files
1138
+ # it has no effect.
1139
+ #
1140
+ # For example:
1141
+ #
1142
+ # $ ruby argf.rb foo bar
1143
+ # ARGF.filename #=> "foo"
1144
+ # ARGF.skip
1145
+ # ARGF.filename #=> "bar"
1146
+ #
1147
+ %a{annotate:rdoc:copy:ARGF#skip}
1148
+ def skip: () -> self
1149
+
1150
+ # <!--
1151
+ # rdoc-file=io.c
1152
+ # - ARGF.tell -> Integer
1153
+ # - ARGF.pos -> Integer
1154
+ # -->
1155
+ # Returns the current offset (in bytes) of the current file in ARGF.
1156
+ #
1157
+ # ARGF.pos #=> 0
1158
+ # ARGF.gets #=> "This is line one\n"
1159
+ # ARGF.pos #=> 17
1160
+ #
1161
+ %a{annotate:rdoc:copy:ARGF#tell}
1162
+ def tell: () -> Integer
1163
+
1164
+ # <!-- rdoc-file=io.c -->
1165
+ # Reads each file in ARGF in its entirety, returning an Array containing lines
1166
+ # from the files. Lines are assumed to be separated by *sep*.
1167
+ #
1168
+ # lines = ARGF.readlines
1169
+ # lines[0] #=> "This is line one\n"
1170
+ #
1171
+ # See <code>IO.readlines</code> for a full description of all options.
1172
+ #
1173
+ %a{annotate:rdoc:copy:ARGF#to_a}
1174
+ def to_a: (?String sep, ?Integer limit) -> ::Array[String]
1175
+
1176
+ # <!-- rdoc-file=io.c -->
1177
+ # Returns an integer representing the numeric file descriptor for the current
1178
+ # file. Raises an ArgumentError if there isn't a current file.
1179
+ #
1180
+ # ARGF.fileno #=> 3
1181
+ #
1182
+ %a{annotate:rdoc:copy:ARGF#to_i}
1183
+ def to_i: () -> Integer
1184
+
1185
+ # <!--
1186
+ # rdoc-file=io.c
1187
+ # - ARGF.to_io -> IO
1188
+ # -->
1189
+ # Returns an IO object representing the current file. This will be a File object
1190
+ # unless the current file is a stream such as STDIN.
1191
+ #
1192
+ # For example:
1193
+ #
1194
+ # ARGF.to_io #=> #<File:glark.txt>
1195
+ # ARGF.to_io #=> #<IO:<STDIN>>
1196
+ #
1197
+ %a{annotate:rdoc:copy:ARGF#to_io}
1198
+ def to_io: () -> IO
1199
+
1200
+ # <!--
1201
+ # rdoc-file=io.c
1202
+ # - ARGF.to_s -> String
1203
+ # -->
1204
+ # Returns "ARGF".
1205
+ #
1206
+ %a{annotate:rdoc:copy:ARGF#to_s}
1207
+ def to_s: () -> String
1208
+
1209
+ # <!--
1210
+ # rdoc-file=io.c
1211
+ # - ARGF.to_write_io -> io
1212
+ # -->
1213
+ # Returns IO instance tied to *ARGF* for writing if inplace mode is enabled.
1214
+ #
1215
+ %a{annotate:rdoc:copy:ARGF#to_write_io}
1216
+ def to_write_io: () -> IO
1217
+
1218
+ # <!--
1219
+ # rdoc-file=io.c
1220
+ # - ARGF.write(*objects) -> integer
1221
+ # -->
1222
+ # Writes each of the given `objects` if inplace mode.
1223
+ #
1224
+ %a{annotate:rdoc:copy:ARGF#write}
1225
+ def write: (_ToS string) -> Integer
1226
+
1227
+ private
1228
+
1229
+ %a{annotate:rdoc:copy:ARGF#initialize}
1230
+ def initialize: (*String argv) -> void
1231
+
1232
+ %a{annotate:rdoc:copy:ARGF#initialize_copy}
1233
+ def initialize_copy: (self orig) -> self
1234
+ end
1235
+ end
1236
+ end