rbs 2.8.4 → 3.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +12 -4
- data/.github/workflows/comments.yml +11 -11
- data/.github/workflows/dependabot.yml +30 -0
- data/.github/workflows/ruby.yml +40 -49
- data/.github/workflows/typecheck.yml +36 -0
- data/.github/workflows/windows.yml +28 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +42 -2
- data/CHANGELOG.md +845 -1
- data/README.md +64 -4
- data/Rakefile +198 -18
- data/Steepfile +11 -11
- data/config.yml +311 -0
- data/core/array.rbs +2189 -1914
- data/core/basic_object.rbs +59 -84
- data/core/binding.rbs +7 -69
- data/core/builtin.rbs +210 -11
- data/core/class.rbs +37 -0
- data/core/comparable.rbs +23 -25
- data/core/complex.rbs +449 -227
- data/core/constants.rbs +29 -21
- data/core/data.rbs +415 -0
- data/core/dir.rbs +698 -415
- data/core/encoding.rbs +468 -843
- data/core/enumerable.rbs +495 -455
- data/core/enumerator/product.rbs +92 -0
- data/core/enumerator.rbs +106 -9
- data/core/env.rbs +1 -1
- data/core/errno.rbs +506 -605
- data/core/errors.rbs +15 -17
- data/core/exception.rbs +361 -145
- data/core/false_class.rbs +39 -26
- data/core/fiber.rbs +121 -14
- data/core/file.rbs +1262 -320
- data/core/file_test.rbs +62 -45
- data/core/float.rbs +187 -208
- data/core/gc.rbs +446 -196
- data/core/global_variables.rbs +29 -29
- data/core/hash.rbs +242 -349
- data/core/integer.rbs +246 -308
- data/core/io/buffer.rbs +373 -122
- data/core/io/wait.rbs +29 -17
- data/core/io.rbs +1881 -1518
- data/core/kernel.rbs +2116 -1538
- data/core/marshal.rbs +24 -14
- data/core/match_data.rbs +413 -166
- data/core/math.rbs +531 -291
- data/core/method.rbs +101 -32
- data/core/module.rbs +228 -64
- data/core/nil_class.rbs +106 -47
- data/core/numeric.rbs +206 -292
- data/core/object.rbs +73 -1168
- data/core/object_space/weak_key_map.rbs +166 -0
- data/core/object_space.rbs +5 -3
- data/core/proc.rbs +280 -39
- data/core/process.rbs +1318 -658
- data/core/ractor.rbs +200 -134
- data/core/random.rbs +21 -4
- data/core/range.rbs +309 -153
- data/core/rational.rbs +4 -12
- data/core/rb_config.rbs +64 -43
- data/core/rbs/unnamed/argf.rbs +411 -147
- data/core/rbs/unnamed/env_class.rbs +137 -253
- data/core/rbs/unnamed/random.rbs +49 -26
- data/core/refinement.rbs +16 -1
- data/core/regexp.rbs +1568 -862
- data/core/ruby_vm.rbs +719 -7
- data/core/rubygems/config_file.rbs +3 -0
- data/core/rubygems/errors.rbs +69 -6
- data/core/rubygems/rubygems.rbs +71 -17
- data/core/rubygems/version.rbs +11 -7
- data/{stdlib/set/0 → core}/set.rbs +80 -91
- data/core/signal.rbs +14 -8
- data/core/string.rbs +1732 -1607
- data/core/struct.rbs +467 -95
- data/core/symbol.rbs +215 -245
- data/core/thread.rbs +133 -89
- data/core/thread_group.rbs +9 -9
- data/core/time.rbs +1141 -841
- data/core/trace_point.rbs +181 -121
- data/core/true_class.rbs +58 -32
- data/core/unbound_method.rbs +103 -30
- data/core/warning.rbs +50 -5
- data/docs/CONTRIBUTING.md +1 -1
- data/docs/architecture.md +110 -0
- data/docs/collection.md +59 -5
- data/docs/data_and_struct.md +86 -0
- data/docs/gem.md +57 -0
- data/docs/rbs_by_example.md +16 -35
- data/docs/repo.md +1 -1
- data/docs/sigs.md +7 -7
- data/docs/stdlib.md +63 -5
- data/docs/syntax.md +255 -61
- data/docs/tools.md +1 -0
- data/ext/rbs_extension/extconf.rb +10 -0
- data/ext/rbs_extension/lexer.c +1741 -1548
- data/ext/rbs_extension/lexer.h +11 -1
- data/ext/rbs_extension/lexer.re +12 -6
- data/ext/rbs_extension/lexstate.c +26 -3
- data/ext/rbs_extension/location.c +119 -111
- data/ext/rbs_extension/location.h +32 -7
- data/ext/rbs_extension/main.c +3 -0
- data/ext/rbs_extension/parser.c +883 -481
- data/ext/rbs_extension/parserstate.c +65 -25
- data/ext/rbs_extension/parserstate.h +13 -3
- data/ext/rbs_extension/rbs_extension.h +1 -10
- data/ext/rbs_extension/unescape.c +7 -47
- data/goodcheck.yml +2 -2
- data/{ext/rbs_extension → include/rbs}/constants.h +26 -15
- data/include/rbs/ruby_objs.h +72 -0
- data/include/rbs.h +7 -0
- data/lib/rbs/annotate/annotations.rb +3 -3
- data/lib/rbs/annotate/formatter.rb +13 -3
- data/lib/rbs/annotate/rdoc_annotator.rb +1 -1
- data/lib/rbs/annotate/rdoc_source.rb +12 -3
- data/lib/rbs/ast/declarations.rb +85 -2
- data/lib/rbs/ast/directives.rb +39 -0
- data/lib/rbs/ast/members.rb +49 -15
- data/lib/rbs/ast/type_param.rb +104 -15
- data/lib/rbs/ast/visitor.rb +137 -0
- data/lib/rbs/buffer.rb +5 -0
- data/lib/rbs/cli/colored_io.rb +48 -0
- data/lib/rbs/cli/diff.rb +83 -0
- data/lib/rbs/cli/validate.rb +356 -0
- data/lib/rbs/cli.rb +253 -143
- data/lib/rbs/collection/cleaner.rb +8 -1
- data/lib/rbs/collection/config/lockfile.rb +92 -0
- data/lib/rbs/collection/config/lockfile_generator.rb +154 -65
- data/lib/rbs/collection/config.rb +19 -46
- data/lib/rbs/collection/installer.rb +12 -13
- data/lib/rbs/collection/sources/base.rb +2 -2
- data/lib/rbs/collection/sources/git.rb +146 -69
- data/lib/rbs/collection/sources/local.rb +81 -0
- data/lib/rbs/collection/sources/rubygems.rb +10 -12
- data/lib/rbs/collection/sources/stdlib.rb +14 -13
- data/lib/rbs/collection/sources.rb +15 -2
- data/lib/rbs/collection.rb +2 -1
- data/lib/rbs/definition.rb +13 -16
- data/lib/rbs/definition_builder/ancestor_builder.rb +100 -24
- data/lib/rbs/definition_builder/method_builder.rb +4 -4
- data/lib/rbs/definition_builder.rb +489 -584
- data/lib/rbs/diff.rb +125 -0
- data/lib/rbs/environment/use_map.rb +77 -0
- data/lib/rbs/environment.rb +406 -105
- data/lib/rbs/environment_loader.rb +48 -44
- data/lib/rbs/environment_walker.rb +1 -1
- data/lib/rbs/errors.rb +175 -56
- data/lib/rbs/file_finder.rb +28 -0
- data/lib/rbs/location_aux.rb +8 -7
- data/lib/rbs/locator.rb +37 -15
- data/lib/rbs/method_type.rb +23 -0
- data/lib/rbs/namespace.rb +1 -0
- data/lib/rbs/parser/lex_result.rb +15 -0
- data/lib/rbs/parser/token.rb +23 -0
- data/lib/rbs/parser_aux.rb +22 -13
- data/lib/rbs/prototype/helpers.rb +48 -22
- data/lib/rbs/prototype/node_usage.rb +99 -0
- data/lib/rbs/prototype/rb.rb +125 -31
- data/lib/rbs/prototype/rbi.rb +49 -36
- data/lib/rbs/prototype/runtime/helpers.rb +59 -0
- data/lib/rbs/prototype/runtime/reflection.rb +19 -0
- data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
- data/lib/rbs/prototype/runtime.rb +273 -159
- data/lib/rbs/resolver/constant_resolver.rb +24 -8
- data/lib/rbs/resolver/type_name_resolver.rb +41 -7
- data/lib/rbs/sorter.rb +153 -123
- data/lib/rbs/substitution.rb +19 -0
- data/lib/rbs/subtractor.rb +201 -0
- data/lib/rbs/test/errors.rb +24 -11
- data/lib/rbs/test/guaranteed.rb +30 -0
- data/lib/rbs/test/hook.rb +45 -40
- data/lib/rbs/test/setup.rb +1 -1
- data/lib/rbs/test/tester.rb +1 -1
- data/lib/rbs/test/type_check.rb +120 -23
- data/lib/rbs/test.rb +6 -3
- data/lib/rbs/type_alias_dependency.rb +13 -3
- data/lib/rbs/type_alias_regularity.rb +21 -14
- data/lib/rbs/type_name.rb +18 -13
- data/lib/rbs/types.rb +352 -18
- data/lib/rbs/unit_test/convertibles.rb +176 -0
- data/lib/rbs/unit_test/spy.rb +136 -0
- data/lib/rbs/unit_test/type_assertions.rb +341 -0
- data/lib/rbs/unit_test/with_aliases.rb +143 -0
- data/lib/rbs/unit_test.rb +6 -0
- data/lib/rbs/validator.rb +55 -30
- data/lib/rbs/variance_calculator.rb +26 -23
- data/lib/rbs/vendorer.rb +3 -3
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +69 -22
- data/lib/rbs.rb +7 -2
- data/lib/rdoc/discover.rb +1 -1
- data/lib/rdoc_plugin/parser.rb +5 -5
- data/rbs.gemspec +12 -2
- data/schema/decls.json +1 -1
- data/schema/members.json +15 -10
- data/sig/ancestor_builder.rbs +4 -0
- data/sig/ancestor_graph.rbs +22 -2
- data/sig/annotate/formatter.rbs +2 -2
- data/sig/annotate/rdoc_annotater.rbs +1 -1
- data/sig/cli/colored_io.rbs +15 -0
- data/sig/cli/diff.rbs +21 -0
- data/sig/cli/validate.rbs +43 -0
- data/sig/cli.rbs +4 -0
- data/sig/collection/config/lockfile.rbs +74 -0
- data/sig/collection/config/lockfile_generator.rbs +66 -0
- data/sig/collection/config.rbs +5 -48
- data/sig/collection/installer.rbs +1 -1
- data/sig/collection/sources.rbs +105 -33
- data/sig/constant.rbs +1 -1
- data/sig/declarations.rbs +42 -3
- data/sig/definition.rbs +26 -10
- data/sig/definition_builder.rbs +103 -81
- data/sig/diff.rbs +28 -0
- data/sig/directives.rbs +61 -0
- data/sig/environment.rbs +175 -29
- data/sig/environment_loader.rbs +20 -18
- data/sig/errors.rbs +123 -2
- data/sig/file_finder.rbs +28 -0
- data/sig/location.rbs +0 -3
- data/sig/locator.rbs +14 -2
- data/sig/manifest.yaml +0 -1
- data/sig/members.rbs +32 -9
- data/sig/method_types.rbs +10 -4
- data/sig/namespace.rbs +2 -3
- data/sig/parser.rbs +55 -16
- data/sig/prototype/helpers.rbs +4 -0
- data/sig/prototype/node_usage.rbs +20 -0
- data/sig/prototype/rb.rbs +10 -2
- data/sig/prototype/rbi.rbs +2 -0
- data/sig/prototype/runtime.rbs +182 -0
- data/sig/rbs.rbs +1 -1
- data/sig/rdoc/rbs.rbs +4 -0
- data/sig/repository.rbs +7 -5
- data/sig/resolver/constant_resolver.rbs +3 -4
- data/sig/resolver/context.rbs +1 -1
- data/sig/resolver/type_name_resolver.rbs +5 -1
- data/sig/shims/bundler.rbs +38 -0
- data/sig/shims/rubygems.rbs +19 -0
- data/sig/sorter.rbs +23 -5
- data/sig/substitution.rbs +6 -0
- data/sig/subtractor.rbs +37 -0
- data/sig/test/errors.rbs +52 -0
- data/sig/test/guranteed.rbs +9 -0
- data/sig/test/type_check.rbs +19 -0
- data/sig/test.rbs +82 -0
- data/sig/type_alias_dependency.rbs +31 -0
- data/sig/type_alias_regularity.rbs +12 -6
- data/sig/type_param.rbs +45 -9
- data/sig/typename.rbs +8 -5
- data/sig/types.rbs +119 -12
- data/sig/unit_test/convertibles.rbs +154 -0
- data/sig/unit_test/spy.rbs +28 -0
- data/sig/unit_test/type_assertions.rbs +194 -0
- data/sig/unit_test/with_aliases.rbs +136 -0
- data/sig/use_map.rbs +35 -0
- data/sig/validator.rbs +12 -5
- data/sig/variance_calculator.rbs +3 -1
- data/sig/vendorer.rbs +1 -1
- data/sig/visitor.rbs +47 -0
- data/sig/writer.rbs +6 -2
- data/src/constants.c +153 -0
- data/src/ruby_objs.c +793 -0
- data/stdlib/base64/0/base64.rbs +298 -45
- data/stdlib/benchmark/0/benchmark.rbs +12 -3
- data/stdlib/bigdecimal/0/big_decimal.rbs +62 -198
- data/stdlib/cgi/0/core.rbs +68 -15
- data/stdlib/cgi/0/manifest.yaml +1 -0
- data/stdlib/coverage/0/coverage.rbs +50 -11
- data/stdlib/csv/0/csv.rbs +90 -119
- data/stdlib/csv/0/manifest.yaml +1 -0
- data/stdlib/date/0/date.rbs +806 -735
- data/stdlib/date/0/date_time.rbs +70 -211
- data/stdlib/dbm/0/dbm.rbs +0 -2
- data/stdlib/delegate/0/delegator.rbs +184 -0
- data/stdlib/delegate/0/kernel.rbs +47 -0
- data/stdlib/delegate/0/simple_delegator.rbs +96 -0
- data/stdlib/did_you_mean/0/did_you_mean.rbs +3 -8
- data/stdlib/digest/0/digest.rbs +48 -35
- data/stdlib/erb/0/erb.rbs +15 -39
- data/stdlib/etc/0/etc.rbs +174 -54
- data/stdlib/fileutils/0/fileutils.rbs +1234 -385
- data/stdlib/forwardable/0/forwardable.rbs +4 -4
- data/stdlib/io-console/0/io-console.rbs +82 -17
- data/stdlib/ipaddr/0/ipaddr.rbs +11 -6
- data/stdlib/json/0/json.rbs +434 -151
- data/stdlib/kconv/0/kconv.rbs +166 -0
- data/stdlib/logger/0/formatter.rbs +0 -2
- data/stdlib/logger/0/log_device.rbs +1 -3
- data/stdlib/logger/0/logger.rbs +465 -328
- data/stdlib/minitest/0/kernel.rbs +2 -2
- data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
- data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
- data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
- data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
- data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
- data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
- data/stdlib/minitest/0/minitest/compress.rbs +13 -0
- data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
- data/stdlib/minitest/0/minitest/mock.rbs +9 -5
- data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
- data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
- data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
- data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
- data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
- data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
- data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
- data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
- data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
- data/stdlib/minitest/0/minitest/spec.rbs +1 -1
- data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
- data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
- data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +7 -7
- data/stdlib/minitest/0/minitest/test.rbs +7 -14
- data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
- data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
- data/stdlib/minitest/0/minitest/unit.rbs +1 -2
- data/stdlib/minitest/0/minitest.rbs +41 -892
- data/stdlib/monitor/0/monitor.rbs +91 -10
- data/stdlib/mutex_m/0/mutex_m.rbs +0 -2
- data/stdlib/net-http/0/manifest.yaml +1 -1
- data/stdlib/net-http/0/net-http.rbs +3858 -964
- data/stdlib/net-protocol/0/manifest.yaml +2 -0
- data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
- data/stdlib/net-smtp/0/manifest.yaml +2 -0
- data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
- data/stdlib/nkf/0/nkf.rbs +35 -5
- data/stdlib/objspace/0/objspace.rbs +40 -18
- data/stdlib/observable/0/observable.rbs +217 -0
- data/stdlib/open-uri/0/manifest.yaml +4 -0
- data/stdlib/open-uri/0/open-uri.rbs +393 -0
- data/stdlib/open3/0/open3.rbs +147 -0
- data/stdlib/openssl/0/manifest.yaml +1 -0
- data/stdlib/openssl/0/openssl.rbs +681 -316
- data/stdlib/optparse/0/optparse.rbs +100 -65
- data/stdlib/pathname/0/pathname.rbs +24 -15
- data/stdlib/pp/0/manifest.yaml +2 -0
- data/stdlib/pp/0/pp.rbs +300 -0
- data/stdlib/prettyprint/0/prettyprint.rbs +2 -6
- data/stdlib/pstore/0/pstore.rbs +370 -156
- data/stdlib/psych/0/core_ext.rbs +12 -0
- data/stdlib/{yaml → psych}/0/dbm.rbs +3 -3
- data/stdlib/psych/0/manifest.yaml +3 -0
- data/stdlib/psych/0/psych.rbs +402 -0
- data/stdlib/{yaml → psych}/0/store.rbs +2 -2
- data/stdlib/pty/0/pty.rbs +63 -11
- data/stdlib/rdoc/0/code_object.rbs +51 -0
- data/stdlib/rdoc/0/comment.rbs +59 -0
- data/stdlib/rdoc/0/context.rbs +153 -0
- data/stdlib/rdoc/0/markup.rbs +117 -0
- data/stdlib/rdoc/0/parser.rbs +56 -0
- data/stdlib/rdoc/0/rdoc.rbs +13 -380
- data/stdlib/rdoc/0/ri.rbs +17 -0
- data/stdlib/rdoc/0/store.rbs +48 -0
- data/stdlib/rdoc/0/top_level.rbs +97 -0
- data/stdlib/resolv/0/resolv.rbs +16 -79
- data/stdlib/ripper/0/ripper.rbs +1648 -0
- data/stdlib/securerandom/0/securerandom.rbs +7 -2
- data/stdlib/shellwords/0/shellwords.rbs +11 -12
- data/stdlib/singleton/0/singleton.rbs +0 -3
- data/stdlib/socket/0/addrinfo.rbs +13 -18
- data/stdlib/socket/0/basic_socket.rbs +5 -10
- data/stdlib/socket/0/ip_socket.rbs +0 -2
- data/stdlib/socket/0/socket.rbs +77 -46
- data/stdlib/socket/0/tcp_server.rbs +0 -5
- data/stdlib/socket/0/tcp_socket.rbs +36 -3
- data/stdlib/socket/0/udp_socket.rbs +4 -5
- data/stdlib/socket/0/unix_server.rbs +0 -5
- data/stdlib/socket/0/unix_socket.rbs +2 -4
- data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +188 -107
- data/stdlib/strscan/0/string_scanner.rbs +1269 -425
- data/stdlib/tempfile/0/tempfile.rbs +224 -61
- data/stdlib/time/0/time.rbs +48 -35
- data/stdlib/timeout/0/timeout.rbs +17 -8
- data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
- data/stdlib/tsort/0/tsort.rbs +0 -4
- data/stdlib/uri/0/common.rbs +271 -144
- data/stdlib/uri/0/file.rbs +5 -0
- data/stdlib/uri/0/ftp.rbs +1 -1
- data/stdlib/uri/0/generic.rbs +26 -22
- data/stdlib/uri/0/http.rbs +4 -4
- data/stdlib/uri/0/ldap.rbs +1 -1
- data/stdlib/uri/0/mailto.rbs +84 -0
- data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
- data/stdlib/yaml/0/manifest.yaml +1 -2
- data/stdlib/yaml/0/yaml.rbs +1 -199
- data/stdlib/zlib/0/buf_error.rbs +10 -0
- data/stdlib/zlib/0/data_error.rbs +10 -0
- data/stdlib/zlib/0/deflate.rbs +210 -0
- data/stdlib/zlib/0/error.rbs +20 -0
- data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
- data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
- data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
- data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
- data/stdlib/zlib/0/gzip_file.rbs +156 -0
- data/stdlib/zlib/0/gzip_reader.rbs +293 -0
- data/stdlib/zlib/0/gzip_writer.rbs +166 -0
- data/stdlib/zlib/0/inflate.rbs +180 -0
- data/stdlib/zlib/0/mem_error.rbs +10 -0
- data/stdlib/zlib/0/need_dict.rbs +13 -0
- data/stdlib/zlib/0/stream_end.rbs +11 -0
- data/stdlib/zlib/0/stream_error.rbs +11 -0
- data/stdlib/zlib/0/version_error.rbs +11 -0
- data/stdlib/zlib/0/zlib.rbs +1 -3
- data/stdlib/zlib/0/zstream.rbs +200 -0
- data/templates/include/rbs/constants.h.erb +20 -0
- data/templates/include/rbs/ruby_objs.h.erb +10 -0
- data/templates/src/constants.c.erb +36 -0
- data/templates/src/ruby_objs.c.erb +27 -0
- data/templates/template.rb +122 -0
- metadata +136 -36
- data/Gemfile +0 -33
- data/Gemfile.lock +0 -118
- data/core/deprecated.rbs +0 -9
- data/ext/rbs_extension/constants.c +0 -135
- data/ext/rbs_extension/ruby_objs.c +0 -525
- data/ext/rbs_extension/ruby_objs.h +0 -43
- data/lib/rbs/constant_table.rb +0 -167
- data/lib/rbs/parser_compat/lexer_error.rb +0 -6
- data/lib/rbs/parser_compat/located_value.rb +0 -7
- data/lib/rbs/parser_compat/semantics_error.rb +0 -6
- data/lib/rbs/parser_compat/syntax_error.rb +0 -6
- data/lib/rbs/test/spy.rb +0 -6
- data/lib/rbs/type_name_resolver.rb +0 -67
- data/sig/constant_table.rbs +0 -30
- data/sig/shims/abstract_syntax_tree.rbs +0 -25
- data/sig/shims/pp.rbs +0 -3
- data/sig/shims/ripper.rbs +0 -8
- data/sig/shims.rbs +0 -69
- data/sig/type_name_resolver.rbs +0 -26
- data/stdlib/minitest/0/manifest.yaml +0 -2
- data/stdlib/prime/0/integer-extension.rbs +0 -41
- data/stdlib/prime/0/manifest.yaml +0 -2
- data/stdlib/prime/0/prime.rbs +0 -372
data/core/rbs/unnamed/argf.rbs
CHANGED
@@ -1,49 +1,253 @@
|
|
1
1
|
module RBS
|
2
2
|
module Unnamed
|
3
3
|
# <!-- rdoc-file=io.c -->
|
4
|
-
#
|
5
|
-
# command-line arguments or passed in via STDIN.
|
4
|
+
# ## ARGF and `ARGV`
|
6
5
|
#
|
7
|
-
# The
|
8
|
-
#
|
9
|
-
# have been removed from `ARGV`. For example:
|
6
|
+
# The ARGF object works with the array at global variable `ARGV` to make
|
7
|
+
# `$stdin` and file streams available in the Ruby program:
|
10
8
|
#
|
11
|
-
#
|
9
|
+
# * **ARGV** may be thought of as the **argument vector** array.
|
12
10
|
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
# ARGV #=> ["file1", "file2"]
|
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.
|
16
13
|
#
|
17
|
-
#
|
18
|
-
# files. For instance, `ARGF.read` will return the contents of *file1* followed
|
19
|
-
# by the contents of *file2*.
|
14
|
+
# * **ARGF** may be thought of as the **argument files** object.
|
20
15
|
#
|
21
|
-
#
|
22
|
-
#
|
16
|
+
# It can access file streams and/or the `$stdin` stream, based on what it
|
17
|
+
# finds in `ARGV`. This provides a convenient way for the command line to
|
18
|
+
# specify streams for a Ruby program to read.
|
23
19
|
#
|
24
|
-
#
|
25
|
-
# remove a file from `ARGV`, it is ignored by `ARGF`; if you add files to
|
26
|
-
# `ARGV`, they are treated as if they were named on the command line. For
|
27
|
-
# example:
|
20
|
+
# ## Reading
|
28
21
|
#
|
29
|
-
#
|
30
|
-
#
|
31
|
-
# ARGV #=> []
|
32
|
-
# ARGV.replace ["file2", "file3"]
|
33
|
-
# ARGF.read # Returns the contents of file2 and file3
|
22
|
+
# ARGF may read from *source* streams, which at any particular time are
|
23
|
+
# determined by the content of `ARGV`.
|
34
24
|
#
|
35
|
-
#
|
36
|
-
# to your script. For example:
|
25
|
+
# ### Simplest Case
|
37
26
|
#
|
38
|
-
#
|
39
|
-
#
|
27
|
+
# When the *very first* ARGF read occurs with an empty `ARGV` (`[]`), the source
|
28
|
+
# is `$stdin`:
|
29
|
+
#
|
30
|
+
# * File `t.rb`:
|
31
|
+
#
|
32
|
+
# p ['ARGV', ARGV]
|
33
|
+
# p ['ARGF.read', ARGF.read]
|
34
|
+
#
|
35
|
+
# * Commands and outputs (see below for the content of files `foo.txt` and
|
36
|
+
# `bar.txt`):
|
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 `foo.txt` and `bar.txt`:
|
49
|
+
#
|
50
|
+
# $ cat foo.txt
|
51
|
+
# Foo 0
|
52
|
+
# Foo 1
|
53
|
+
# $ cat bar.txt
|
54
|
+
# Bar 0
|
55
|
+
# Bar 1
|
56
|
+
# Bar 2
|
57
|
+
# Bar 3
|
58
|
+
#
|
59
|
+
# ### Sources in `ARGV`
|
60
|
+
#
|
61
|
+
# For any ARGF read *except* the [simplest case](rdoc-ref:ARGF@Simplest+Case)
|
62
|
+
# (that is, *except* for the *very first* ARGF read with an empty `ARGV`), the
|
63
|
+
# sources are found in `ARGV`.
|
64
|
+
#
|
65
|
+
# ARGF assumes that each element in array `ARGV` is a potential source, and is
|
66
|
+
# one of:
|
67
|
+
#
|
68
|
+
# * The string path to a file that may be opened as a stream.
|
69
|
+
# * The character `'-'`, meaning stream `$stdin`.
|
70
|
+
#
|
71
|
+
# Each element that is *not* one of these should be removed from `ARGV` before
|
72
|
+
# ARGF accesses that source.
|
73
|
+
#
|
74
|
+
# In the following example:
|
75
|
+
#
|
76
|
+
# * Filepaths `foo.txt` and `bar.txt` may be retained as potential sources.
|
77
|
+
# * Options `--xyzzy` and `--mojo` should be removed.
|
78
|
+
#
|
79
|
+
# Example:
|
80
|
+
#
|
81
|
+
# * File `t.rb`:
|
82
|
+
#
|
83
|
+
# # Print arguments (and options, if any) found on command line.
|
84
|
+
# p ['ARGV', ARGV]
|
85
|
+
#
|
86
|
+
# * Command and output:
|
87
|
+
#
|
88
|
+
# $ ruby t.rb --xyzzy --mojo foo.txt bar.txt
|
89
|
+
# ["ARGV", ["--xyzzy", "--mojo", "foo.txt", "bar.txt"]]
|
90
|
+
#
|
91
|
+
# ARGF's stream access considers the elements of `ARGV`, left to right:
|
92
|
+
#
|
93
|
+
# * File `t.rb`:
|
94
|
+
#
|
95
|
+
# p "ARGV: #{ARGV}"
|
96
|
+
# p "Line: #{ARGF.read}" # Read everything from all specified streams.
|
97
|
+
#
|
98
|
+
# * Command and output:
|
99
|
+
#
|
100
|
+
# $ ruby t.rb foo.txt bar.txt
|
101
|
+
# "ARGV: [\"foo.txt\", \"bar.txt\"]"
|
102
|
+
# "Read: Foo 0\nFoo 1\nBar 0\nBar 1\nBar 2\nBar 3\n"
|
103
|
+
#
|
104
|
+
# Because the value at `ARGV` is an ordinary array, you can manipulate it to
|
105
|
+
# control which sources ARGF considers:
|
106
|
+
#
|
107
|
+
# * If you remove an element from `ARGV`, ARGF will not consider the
|
108
|
+
# corresponding source.
|
109
|
+
# * If you add an element to `ARGV`, ARGF will consider the corresponding
|
110
|
+
# source.
|
111
|
+
#
|
112
|
+
# Each element in `ARGV` is removed when its corresponding source is accessed;
|
113
|
+
# when all sources have been accessed, the array is empty:
|
114
|
+
#
|
115
|
+
# * File `t.rb`:
|
116
|
+
#
|
117
|
+
# until ARGV.empty? && ARGF.eof?
|
118
|
+
# p "ARGV: #{ARGV}"
|
119
|
+
# p "Line: #{ARGF.readline}" # Read each line from each specified stream.
|
120
|
+
# end
|
121
|
+
#
|
122
|
+
# * Command and output:
|
123
|
+
#
|
124
|
+
# $ ruby t.rb foo.txt bar.txt
|
125
|
+
# "ARGV: [\"foo.txt\", \"bar.txt\"]"
|
126
|
+
# "Line: Foo 0\n"
|
127
|
+
# "ARGV: [\"bar.txt\"]"
|
128
|
+
# "Line: Foo 1\n"
|
129
|
+
# "ARGV: [\"bar.txt\"]"
|
130
|
+
# "Line: Bar 0\n"
|
131
|
+
# "ARGV: []"
|
132
|
+
# "Line: Bar 1\n"
|
133
|
+
# "ARGV: []"
|
134
|
+
# "Line: Bar 2\n"
|
135
|
+
# "ARGV: []"
|
136
|
+
# "Line: Bar 3\n"
|
137
|
+
#
|
138
|
+
# #### Filepaths in `ARGV`
|
139
|
+
#
|
140
|
+
# The `ARGV` array may contain filepaths the specify sources for ARGF reading.
|
141
|
+
#
|
142
|
+
# This program prints what it reads from files at the paths specified on the
|
143
|
+
# command line:
|
144
|
+
#
|
145
|
+
# * File `t.rb`:
|
146
|
+
#
|
147
|
+
# p ['ARGV', ARGV]
|
148
|
+
# # Read and print all content from the specified sources.
|
149
|
+
# p ['ARGF.read', ARGF.read]
|
150
|
+
#
|
151
|
+
# * Command and output:
|
152
|
+
#
|
153
|
+
# $ ruby t.rb foo.txt bar.txt
|
154
|
+
# ["ARGV", [foo.txt, bar.txt]
|
155
|
+
# ["ARGF.read", "Foo 0\nFoo 1\nBar 0\nBar 1\nBar 2\nBar 3\n"]
|
156
|
+
#
|
157
|
+
# #### Specifying `$stdin` in `ARGV`
|
158
|
+
#
|
159
|
+
# To specify stream `$stdin` in `ARGV`, us the character `'-'`:
|
160
|
+
#
|
161
|
+
# * File `t.rb`:
|
162
|
+
#
|
163
|
+
# p ['ARGV', ARGV]
|
164
|
+
# p ['ARGF.read', ARGF.read]
|
165
|
+
#
|
166
|
+
# * Command and output:
|
167
|
+
#
|
168
|
+
# $ echo "Open the pod bay doors, Hal." | ruby t.rb -
|
169
|
+
# ["ARGV", ["-"]]
|
170
|
+
# ["ARGF.read", "Open the pod bay doors, Hal.\n"]
|
171
|
+
#
|
172
|
+
# When no character `'-'` is given, stream `$stdin` is ignored (exception: see
|
173
|
+
# [Specifying $stdin in ARGV](rdoc-ref:ARGF@Specifying+-24stdin+in+ARGV)):
|
174
|
+
#
|
175
|
+
# * Command and output:
|
176
|
+
#
|
177
|
+
# $ echo "Open the pod bay doors, Hal." | ruby t.rb foo.txt bar.txt
|
178
|
+
# "ARGV: [\"foo.txt\", \"bar.txt\"]"
|
179
|
+
# "Read: Foo 0\nFoo 1\nBar 0\nBar 1\nBar 2\nBar 3\n"
|
180
|
+
#
|
181
|
+
# #### Mixtures and Repetitions in `ARGV`
|
182
|
+
#
|
183
|
+
# For an ARGF reader, `ARGV` may contain any mixture of filepaths and character
|
184
|
+
# `'-'`, including repetitions.
|
185
|
+
#
|
186
|
+
# #### Modifications to `ARGV`
|
187
|
+
#
|
188
|
+
# The running Ruby program may make any modifications to the `ARGV` array; the
|
189
|
+
# current value of `ARGV` affects ARGF reading.
|
190
|
+
#
|
191
|
+
# #### Empty `ARGV`
|
192
|
+
#
|
193
|
+
# For an empty `ARGV`, an ARGF read method either returns `nil` or raises an
|
194
|
+
# exception, depending on the specific method.
|
195
|
+
#
|
196
|
+
# ### More Read Methods
|
197
|
+
#
|
198
|
+
# As seen above, method ARGF#read reads the content of all sources into a single
|
199
|
+
# string. Other ARGF methods provide other ways to access that content; these
|
200
|
+
# include:
|
201
|
+
#
|
202
|
+
# * Byte access: #each_byte, #getbyte, #readbyte.
|
203
|
+
# * Character access: #each_char, #getc, #readchar.
|
204
|
+
# * Codepoint access: #each_codepoint.
|
205
|
+
# * Line access: #each_line, #gets, #readline, #readlines.
|
206
|
+
# * Source access: #read, #read_nonblock, #readpartial.
|
207
|
+
#
|
208
|
+
# ### About Enumerable
|
209
|
+
#
|
210
|
+
# ARGF includes module Enumerable. Virtually all methods in Enumerable call
|
211
|
+
# method `#each` in the including class.
|
212
|
+
#
|
213
|
+
# **Note well**: In ARGF, method #each returns data from the *sources*, *not*
|
214
|
+
# from `ARGV`; therefore, for example, `ARGF#entries` returns an array of lines
|
215
|
+
# from the sources, not an array of the strings from `ARGV`:
|
216
|
+
#
|
217
|
+
# * File `t.rb`:
|
218
|
+
#
|
219
|
+
# p ['ARGV', ARGV]
|
220
|
+
# p ['ARGF.entries', ARGF.entries]
|
221
|
+
#
|
222
|
+
# * Command and output:
|
223
|
+
#
|
224
|
+
# $ ruby t.rb foo.txt bar.txt
|
225
|
+
# ["ARGV", ["foo.txt", "bar.txt"]]
|
226
|
+
# ["ARGF.entries", ["Foo 0\n", "Foo 1\n", "Bar 0\n", "Bar 1\n", "Bar 2\n", "Bar 3\n"]]
|
227
|
+
#
|
228
|
+
# ## Writing
|
229
|
+
#
|
230
|
+
# If *inplace mode* is in effect, ARGF may write to target streams, which at any
|
231
|
+
# particular time are determined by the content of ARGV.
|
232
|
+
#
|
233
|
+
# Methods about inplace mode:
|
234
|
+
#
|
235
|
+
# * #inplace_mode
|
236
|
+
# * #inplace_mode=
|
237
|
+
# * #to_write_io
|
238
|
+
#
|
239
|
+
# Methods for writing:
|
240
|
+
#
|
241
|
+
# * #print
|
242
|
+
# * #printf
|
243
|
+
# * #putc
|
244
|
+
# * #puts
|
245
|
+
# * #write
|
40
246
|
#
|
41
247
|
%a{annotate:rdoc:copy:ARGF}
|
42
248
|
class ARGFClass
|
43
249
|
include Enumerable[String]
|
44
250
|
|
45
|
-
public
|
46
|
-
|
47
251
|
# <!--
|
48
252
|
# rdoc-file=io.c
|
49
253
|
# - ARGF.argv -> ARGV
|
@@ -64,7 +268,7 @@ module RBS
|
|
64
268
|
# rdoc-file=io.c
|
65
269
|
# - ARGF.binmode -> ARGF
|
66
270
|
# -->
|
67
|
-
# Puts
|
271
|
+
# Puts ARGF into binary mode. Once a stream is in binary mode, it cannot be
|
68
272
|
# reset to non-binary mode. This option has the following effects:
|
69
273
|
#
|
70
274
|
# * Newline conversion is disabled.
|
@@ -78,8 +282,8 @@ module RBS
|
|
78
282
|
# rdoc-file=io.c
|
79
283
|
# - ARGF.binmode? -> true or false
|
80
284
|
# -->
|
81
|
-
# Returns true if
|
82
|
-
#
|
285
|
+
# Returns true if ARGF is being read in binary mode; false otherwise. To enable
|
286
|
+
# binary mode use ARGF.binmode.
|
83
287
|
#
|
84
288
|
# For example:
|
85
289
|
#
|
@@ -95,7 +299,7 @@ module RBS
|
|
95
299
|
# - ARGF.close -> ARGF
|
96
300
|
# -->
|
97
301
|
# Closes the current file and skips to the next file in ARGV. If there are no
|
98
|
-
# more files to open, just closes the current file.
|
302
|
+
# more files to open, just closes the current file. STDIN will not be closed.
|
99
303
|
#
|
100
304
|
# For example:
|
101
305
|
#
|
@@ -114,7 +318,7 @@ module RBS
|
|
114
318
|
# - ARGF.closed? -> true or false
|
115
319
|
# -->
|
116
320
|
# Returns *true* if the current file has been closed; *false* otherwise. Use
|
117
|
-
#
|
321
|
+
# ARGF.close to actually close the current file.
|
118
322
|
#
|
119
323
|
%a{annotate:rdoc:copy:ARGF#closed?}
|
120
324
|
def closed?: () -> bool
|
@@ -131,15 +335,15 @@ module RBS
|
|
131
335
|
# Returns an enumerator which iterates over each line (separated by *sep*, which
|
132
336
|
# defaults to your platform's newline character) of each file in `ARGV`. If a
|
133
337
|
# block is supplied, each line in turn will be yielded to the block, otherwise
|
134
|
-
# an enumerator is returned. The optional *limit* argument is an
|
338
|
+
# an enumerator is returned. The optional *limit* argument is an Integer
|
135
339
|
# specifying the maximum length of each line; longer lines will be split
|
136
340
|
# according to this limit.
|
137
341
|
#
|
138
342
|
# This method allows you to treat the files supplied on the command line as a
|
139
343
|
# single file consisting of the concatenation of each named file. After the last
|
140
344
|
# line of the first file has been returned, the first line of the second file is
|
141
|
-
# returned. The
|
142
|
-
#
|
345
|
+
# returned. The ARGF.filename and ARGF.lineno methods can be used to determine
|
346
|
+
# the filename of the current line and line number of the whole input,
|
143
347
|
# respectively.
|
144
348
|
#
|
145
349
|
# For example, the following code prints out each line of each named file
|
@@ -168,12 +372,12 @@ module RBS
|
|
168
372
|
# - ARGF.each_byte -> an_enumerator
|
169
373
|
# -->
|
170
374
|
# Iterates over each byte of each file in `ARGV`. A byte is returned as an
|
171
|
-
#
|
375
|
+
# Integer in the range 0..255.
|
172
376
|
#
|
173
377
|
# This method allows you to treat the files supplied on the command line as a
|
174
378
|
# single file consisting of the concatenation of each named file. After the last
|
175
379
|
# byte of the first file has been returned, the first byte of the second file is
|
176
|
-
# returned. The
|
380
|
+
# returned. The ARGF.filename method can be used to determine the filename of
|
177
381
|
# the current byte.
|
178
382
|
#
|
179
383
|
# If no block is given, an enumerator is returned instead.
|
@@ -191,13 +395,13 @@ module RBS
|
|
191
395
|
# - ARGF.each_char {|char| block } -> ARGF
|
192
396
|
# - ARGF.each_char -> an_enumerator
|
193
397
|
# -->
|
194
|
-
# Iterates over each character of each file in
|
398
|
+
# Iterates over each character of each file in ARGF.
|
195
399
|
#
|
196
400
|
# This method allows you to treat the files supplied on the command line as a
|
197
401
|
# single file consisting of the concatenation of each named file. After the last
|
198
402
|
# character of the first file has been returned, the first character of the
|
199
|
-
# second file is returned. The
|
200
|
-
#
|
403
|
+
# second file is returned. The ARGF.filename method can be used to determine the
|
404
|
+
# name of the file in which the current character appears.
|
201
405
|
#
|
202
406
|
# If no block is given, an enumerator is returned instead.
|
203
407
|
#
|
@@ -210,13 +414,13 @@ module RBS
|
|
210
414
|
# - ARGF.each_codepoint {|codepoint| block } -> ARGF
|
211
415
|
# - ARGF.each_codepoint -> an_enumerator
|
212
416
|
# -->
|
213
|
-
# Iterates over each codepoint of each file in
|
417
|
+
# Iterates over each codepoint of each file in ARGF.
|
214
418
|
#
|
215
419
|
# This method allows you to treat the files supplied on the command line as a
|
216
420
|
# single file consisting of the concatenation of each named file. After the last
|
217
421
|
# codepoint of the first file has been returned, the first codepoint of the
|
218
|
-
# second file is returned. The
|
219
|
-
#
|
422
|
+
# second file is returned. The ARGF.filename method can be used to determine the
|
423
|
+
# name of the file in which the current codepoint appears.
|
220
424
|
#
|
221
425
|
# If no block is given, an enumerator is returned instead.
|
222
426
|
#
|
@@ -228,15 +432,15 @@ module RBS
|
|
228
432
|
# Returns an enumerator which iterates over each line (separated by *sep*, which
|
229
433
|
# defaults to your platform's newline character) of each file in `ARGV`. If a
|
230
434
|
# block is supplied, each line in turn will be yielded to the block, otherwise
|
231
|
-
# an enumerator is returned. The optional *limit* argument is an
|
435
|
+
# an enumerator is returned. The optional *limit* argument is an Integer
|
232
436
|
# specifying the maximum length of each line; longer lines will be split
|
233
437
|
# according to this limit.
|
234
438
|
#
|
235
439
|
# This method allows you to treat the files supplied on the command line as a
|
236
440
|
# single file consisting of the concatenation of each named file. After the last
|
237
441
|
# line of the first file has been returned, the first line of the second file is
|
238
|
-
# returned. The
|
239
|
-
#
|
442
|
+
# returned. The ARGF.filename and ARGF.lineno methods can be used to determine
|
443
|
+
# the filename of the current line and line number of the whole input,
|
240
444
|
# respectively.
|
241
445
|
#
|
242
446
|
# For example, the following code prints out each line of each named file
|
@@ -264,8 +468,8 @@ module RBS
|
|
264
468
|
# - ARGF.eof? -> true or false
|
265
469
|
# - ARGF.eof -> true or false
|
266
470
|
# -->
|
267
|
-
# Returns true if the current file in
|
268
|
-
# data to read. The stream must be opened for reading or an
|
471
|
+
# Returns true if the current file in ARGF is at end of file, i.e. it has no
|
472
|
+
# data to read. The stream must be opened for reading or an IOError will be
|
269
473
|
# raised.
|
270
474
|
#
|
271
475
|
# $ echo "eof" | ruby argf.rb
|
@@ -280,8 +484,8 @@ module RBS
|
|
280
484
|
def eof: () -> bool
|
281
485
|
|
282
486
|
# <!-- rdoc-file=io.c -->
|
283
|
-
# Returns true if the current file in
|
284
|
-
# data to read. The stream must be opened for reading or an
|
487
|
+
# Returns true if the current file in ARGF is at end of file, i.e. it has no
|
488
|
+
# data to read. The stream must be opened for reading or an IOError will be
|
285
489
|
# raised.
|
286
490
|
#
|
287
491
|
# $ echo "eof" | ruby argf.rb
|
@@ -299,12 +503,12 @@ module RBS
|
|
299
503
|
# rdoc-file=io.c
|
300
504
|
# - ARGF.external_encoding -> encoding
|
301
505
|
# -->
|
302
|
-
# Returns the external encoding for files read from
|
303
|
-
#
|
304
|
-
# Contrast with
|
305
|
-
#
|
506
|
+
# Returns the external encoding for files read from ARGF as an Encoding object.
|
507
|
+
# The external encoding is the encoding of the text as stored in a file.
|
508
|
+
# Contrast with ARGF.internal_encoding, which is the encoding used to represent
|
509
|
+
# this text within Ruby.
|
306
510
|
#
|
307
|
-
# To set the external encoding use
|
511
|
+
# To set the external encoding use ARGF.set_encoding.
|
308
512
|
#
|
309
513
|
# For example:
|
310
514
|
#
|
@@ -317,8 +521,8 @@ module RBS
|
|
317
521
|
# rdoc-file=io.c
|
318
522
|
# - ARGF.file -> IO or File object
|
319
523
|
# -->
|
320
|
-
# Returns the current file as an
|
321
|
-
#
|
524
|
+
# Returns the current file as an IO or File object. `$stdin` is returned when
|
525
|
+
# the current file is STDIN.
|
322
526
|
#
|
323
527
|
# For example:
|
324
528
|
#
|
@@ -364,7 +568,7 @@ module RBS
|
|
364
568
|
# - ARGF.to_i -> integer
|
365
569
|
# -->
|
366
570
|
# Returns an integer representing the numeric file descriptor for the current
|
367
|
-
# file. Raises an
|
571
|
+
# file. Raises an ArgumentError if there isn't a current file.
|
368
572
|
#
|
369
573
|
# ARGF.fileno #=> 3
|
370
574
|
#
|
@@ -375,7 +579,7 @@ module RBS
|
|
375
579
|
# rdoc-file=io.c
|
376
580
|
# - ARGF.getbyte -> Integer or nil
|
377
581
|
# -->
|
378
|
-
# Gets the next 8-bit byte (0..255) from
|
582
|
+
# Gets the next 8-bit byte (0..255) from ARGF. Returns `nil` if called at the
|
379
583
|
# end of the stream.
|
380
584
|
#
|
381
585
|
# For example:
|
@@ -396,10 +600,10 @@ module RBS
|
|
396
600
|
# rdoc-file=io.c
|
397
601
|
# - ARGF.getc -> String or nil
|
398
602
|
# -->
|
399
|
-
# Reads the next character from
|
400
|
-
#
|
603
|
+
# Reads the next character from ARGF and returns it as a String. Returns `nil`
|
604
|
+
# at the end of the stream.
|
401
605
|
#
|
402
|
-
#
|
606
|
+
# ARGF treats the files named on the command line as a single file created by
|
403
607
|
# concatenating their contents. After returning the last character of the first
|
404
608
|
# file, it returns the first character of the second file, and so on.
|
405
609
|
#
|
@@ -424,10 +628,10 @@ module RBS
|
|
424
628
|
# - ARGF.gets(limit [, getline_args]) -> string or nil
|
425
629
|
# - ARGF.gets(sep, limit [, getline_args]) -> string or nil
|
426
630
|
# -->
|
427
|
-
# Returns the next line from the current file in
|
631
|
+
# Returns the next line from the current file in ARGF.
|
428
632
|
#
|
429
633
|
# By default lines are assumed to be separated by `$/`; to use a different
|
430
|
-
# character as a separator, supply it as a
|
634
|
+
# character as a separator, supply it as a String for the *sep* argument.
|
431
635
|
#
|
432
636
|
# The optional *limit* argument specifies how many characters of each line to
|
433
637
|
# return. By default all characters are returned.
|
@@ -441,9 +645,9 @@ module RBS
|
|
441
645
|
# rdoc-file=io.c
|
442
646
|
# - ARGF.inplace_mode -> String
|
443
647
|
# -->
|
444
|
-
# Returns the file extension appended to the names of
|
445
|
-
# in-place edit mode. This value can be set using
|
446
|
-
# passing the `-i` switch to the Ruby binary.
|
648
|
+
# Returns the file extension appended to the names of backup copies of modified
|
649
|
+
# files under in-place edit mode. This value can be set using ARGF.inplace_mode=
|
650
|
+
# or passing the `-i` switch to the Ruby binary.
|
447
651
|
#
|
448
652
|
%a{annotate:rdoc:copy:ARGF#inplace_mode}
|
449
653
|
def inplace_mode: () -> String?
|
@@ -452,9 +656,8 @@ module RBS
|
|
452
656
|
# rdoc-file=io.c
|
453
657
|
# - ARGF.inplace_mode = ext -> ARGF
|
454
658
|
# -->
|
455
|
-
# Sets the filename extension for in-place editing mode to the given String.
|
456
|
-
#
|
457
|
-
# file is saved under this new name.
|
659
|
+
# Sets the filename extension for in-place editing mode to the given String. The
|
660
|
+
# backup copy of each file being edited has this value appended to its filename.
|
458
661
|
#
|
459
662
|
# For example:
|
460
663
|
#
|
@@ -465,8 +668,8 @@ module RBS
|
|
465
668
|
# print line.sub("foo","bar")
|
466
669
|
# end
|
467
670
|
#
|
468
|
-
#
|
469
|
-
#
|
671
|
+
# First, *file.txt.bak* is created as a backup copy of *file.txt*. Then, each
|
672
|
+
# line of *file.txt* has the first occurrence of "foo" replaced with "bar".
|
470
673
|
#
|
471
674
|
%a{annotate:rdoc:copy:ARGF#inplace_mode=}
|
472
675
|
def inplace_mode=: (String) -> self
|
@@ -477,10 +680,10 @@ module RBS
|
|
477
680
|
# rdoc-file=io.c
|
478
681
|
# - ARGF.internal_encoding -> encoding
|
479
682
|
# -->
|
480
|
-
# Returns the internal encoding for strings read from
|
683
|
+
# Returns the internal encoding for strings read from ARGF as an Encoding
|
481
684
|
# object.
|
482
685
|
#
|
483
|
-
# If
|
686
|
+
# If ARGF.set_encoding has been called with two encoding names, the second is
|
484
687
|
# returned. Otherwise, if `Encoding.default_external` has been set, that value
|
485
688
|
# is returned. Failing that, if a default external encoding was specified on the
|
486
689
|
# command-line, that value is used. If the encoding is unknown, `nil` is
|
@@ -494,7 +697,7 @@ module RBS
|
|
494
697
|
# - ARGF.lineno -> integer
|
495
698
|
# -->
|
496
699
|
# Returns the current line number of ARGF as a whole. This value can be set
|
497
|
-
# manually with
|
700
|
+
# manually with ARGF.lineno=.
|
498
701
|
#
|
499
702
|
# For example:
|
500
703
|
#
|
@@ -509,11 +712,11 @@ module RBS
|
|
509
712
|
# rdoc-file=io.c
|
510
713
|
# - ARGF.lineno = integer -> integer
|
511
714
|
# -->
|
512
|
-
# Sets the line number of
|
715
|
+
# Sets the line number of ARGF as a whole to the given Integer.
|
513
716
|
#
|
514
|
-
#
|
515
|
-
#
|
516
|
-
#
|
717
|
+
# ARGF sets the line number automatically as you read data, so normally you will
|
718
|
+
# not need to set it explicitly. To access the current line number use
|
719
|
+
# ARGF.lineno.
|
517
720
|
#
|
518
721
|
# For example:
|
519
722
|
#
|
@@ -547,7 +750,7 @@ module RBS
|
|
547
750
|
def path: () -> String
|
548
751
|
|
549
752
|
# <!-- rdoc-file=io.c -->
|
550
|
-
# Returns the current offset (in bytes) of the current file in
|
753
|
+
# Returns the current offset (in bytes) of the current file in ARGF.
|
551
754
|
#
|
552
755
|
# ARGF.pos #=> 0
|
553
756
|
# ARGF.gets #=> "This is line one\n"
|
@@ -560,7 +763,7 @@ module RBS
|
|
560
763
|
# rdoc-file=io.c
|
561
764
|
# - ARGF.pos = position -> Integer
|
562
765
|
# -->
|
563
|
-
# Seeks to the position given by *position* (in bytes) in
|
766
|
+
# Seeks to the position given by *position* (in bytes) in ARGF.
|
564
767
|
#
|
565
768
|
# For example:
|
566
769
|
#
|
@@ -572,50 +775,87 @@ module RBS
|
|
572
775
|
|
573
776
|
# <!--
|
574
777
|
# rdoc-file=io.c
|
575
|
-
# -
|
576
|
-
# - ios.print(obj, ...) -> nil
|
778
|
+
# - print(*objects) -> nil
|
577
779
|
# -->
|
578
|
-
# Writes the given
|
780
|
+
# Writes the given objects to the stream; returns `nil`. Appends the output
|
781
|
+
# record separator `$OUTPUT_RECORD_SEPARATOR` (`$\`), if it is not `nil`. See
|
782
|
+
# [Line IO](rdoc-ref:IO@Line+IO).
|
783
|
+
#
|
784
|
+
# With argument `objects` given, for each object:
|
785
|
+
#
|
786
|
+
# * Converts via its method `to_s` if not a string.
|
787
|
+
# * Writes to the stream.
|
788
|
+
# * If not the last object, writes the output field separator
|
789
|
+
# `$OUTPUT_FIELD_SEPARATOR` (`$,`) if it is not `nil`.
|
790
|
+
#
|
791
|
+
# With default separators:
|
792
|
+
#
|
793
|
+
# f = File.open('t.tmp', 'w+')
|
794
|
+
# objects = [0, 0.0, Rational(0, 1), Complex(0, 0), :zero, 'zero']
|
795
|
+
# p $OUTPUT_RECORD_SEPARATOR
|
796
|
+
# p $OUTPUT_FIELD_SEPARATOR
|
797
|
+
# f.print(*objects)
|
798
|
+
# f.rewind
|
799
|
+
# p f.read
|
800
|
+
# f.close
|
579
801
|
#
|
580
|
-
#
|
581
|
-
# will be converted by calling its `to_s` method. When called without arguments,
|
582
|
-
# prints the contents of `$_`.
|
802
|
+
# Output:
|
583
803
|
#
|
584
|
-
#
|
585
|
-
#
|
586
|
-
#
|
804
|
+
# nil
|
805
|
+
# nil
|
806
|
+
# "00.00/10+0izerozero"
|
587
807
|
#
|
588
|
-
#
|
808
|
+
# With specified separators:
|
589
809
|
#
|
590
|
-
#
|
810
|
+
# $\ = "\n"
|
811
|
+
# $, = ','
|
812
|
+
# f.rewind
|
813
|
+
# f.print(*objects)
|
814
|
+
# f.rewind
|
815
|
+
# p f.read
|
591
816
|
#
|
592
|
-
#
|
817
|
+
# Output:
|
818
|
+
#
|
819
|
+
# "0,0.0,0/1,0+0i,zero,zero\n"
|
820
|
+
#
|
821
|
+
# With no argument given, writes the content of `$_` (which is usually the most
|
822
|
+
# recent user input):
|
823
|
+
#
|
824
|
+
# f = File.open('t.tmp', 'w+')
|
825
|
+
# gets # Sets $_ to the most recent user input.
|
826
|
+
# f.print
|
827
|
+
# f.close
|
593
828
|
#
|
594
829
|
%a{annotate:rdoc:copy:ARGF#print}
|
595
830
|
def print: (*untyped args) -> nil
|
596
831
|
|
597
832
|
# <!--
|
598
833
|
# rdoc-file=io.c
|
599
|
-
# -
|
834
|
+
# - printf(format_string, *objects) -> nil
|
600
835
|
# -->
|
601
|
-
# Formats and writes to
|
602
|
-
#
|
836
|
+
# Formats and writes `objects` to the stream.
|
837
|
+
#
|
838
|
+
# For details on `format_string`, see [Format
|
839
|
+
# Specifications](rdoc-ref:format_specifications.rdoc).
|
603
840
|
#
|
604
841
|
%a{annotate:rdoc:copy:ARGF#printf}
|
605
842
|
def printf: (String format_string, *untyped args) -> nil
|
606
843
|
|
607
844
|
# <!--
|
608
845
|
# rdoc-file=io.c
|
609
|
-
# -
|
846
|
+
# - putc(object) -> object
|
610
847
|
# -->
|
611
|
-
#
|
612
|
-
#
|
613
|
-
#
|
848
|
+
# Writes a character to the stream. See [Character
|
849
|
+
# IO](rdoc-ref:IO@Character+IO).
|
850
|
+
#
|
851
|
+
# If `object` is numeric, converts to integer if necessary, then writes the
|
852
|
+
# character whose code is the least significant byte; if `object` is a string,
|
853
|
+
# writes the first character:
|
614
854
|
#
|
615
855
|
# $stdout.putc "A"
|
616
856
|
# $stdout.putc 65
|
617
857
|
#
|
618
|
-
#
|
858
|
+
# Output:
|
619
859
|
#
|
620
860
|
# AA
|
621
861
|
#
|
@@ -624,27 +864,47 @@ module RBS
|
|
624
864
|
|
625
865
|
# <!--
|
626
866
|
# rdoc-file=io.c
|
627
|
-
# -
|
867
|
+
# - puts(*objects) -> nil
|
628
868
|
# -->
|
629
|
-
# Writes the given
|
630
|
-
#
|
631
|
-
#
|
632
|
-
#
|
633
|
-
#
|
634
|
-
#
|
635
|
-
#
|
636
|
-
#
|
637
|
-
#
|
869
|
+
# Writes the given `objects` to the stream, which must be open for writing;
|
870
|
+
# returns `nil`.\ Writes a newline after each that does not already end with a
|
871
|
+
# newline sequence. If called without arguments, writes a newline. See [Line
|
872
|
+
# IO](rdoc-ref:IO@Line+IO).
|
873
|
+
#
|
874
|
+
# Note that each added newline is the character `"\n"<//tt>, not the output
|
875
|
+
# record separator (<tt>$\`).
|
876
|
+
#
|
877
|
+
# Treatment for each object:
|
878
|
+
#
|
879
|
+
# * String: writes the string.
|
880
|
+
# * Neither string nor array: writes `object.to_s`.
|
881
|
+
# * Array: writes each element of the array; arrays may be nested.
|
882
|
+
#
|
883
|
+
# To keep these examples brief, we define this helper method:
|
884
|
+
#
|
885
|
+
# def show(*objects)
|
886
|
+
# # Puts objects to file.
|
887
|
+
# f = File.new('t.tmp', 'w+')
|
888
|
+
# f.puts(objects)
|
889
|
+
# # Return file content.
|
890
|
+
# f.rewind
|
891
|
+
# p f.read
|
892
|
+
# f.close
|
893
|
+
# end
|
638
894
|
#
|
639
|
-
#
|
895
|
+
# # Strings without newlines.
|
896
|
+
# show('foo', 'bar', 'baz') # => "foo\nbar\nbaz\n"
|
897
|
+
# # Strings, some with newlines.
|
898
|
+
# show("foo\n", 'bar', "baz\n") # => "foo\nbar\nbaz\n"
|
640
899
|
#
|
641
|
-
#
|
642
|
-
#
|
643
|
-
#
|
644
|
-
# test
|
900
|
+
# # Neither strings nor arrays:
|
901
|
+
# show(0, 0.0, Rational(0, 1), Complex(9, 0), :zero)
|
902
|
+
# # => "0\n0.0\n0/1\n9+0i\nzero\n"
|
645
903
|
#
|
646
|
-
#
|
647
|
-
#
|
904
|
+
# # Array of strings.
|
905
|
+
# show(['foo', "bar\n", 'baz']) # => "foo\nbar\nbaz\n"
|
906
|
+
# # Nested arrays.
|
907
|
+
# show([[[0, 1], 2, 3], 4, 5]) # => "0\n1\n2\n3\n4\n5\n"
|
648
908
|
#
|
649
909
|
%a{annotate:rdoc:copy:ARGF#puts}
|
650
910
|
def puts: (*untyped obj) -> nil
|
@@ -709,8 +969,8 @@ module RBS
|
|
709
969
|
# rdoc-file=io.c
|
710
970
|
# - ARGF.readbyte -> Integer
|
711
971
|
# -->
|
712
|
-
# Reads the next 8-bit byte from ARGF and returns it as an
|
713
|
-
#
|
972
|
+
# Reads the next 8-bit byte from ARGF and returns it as an Integer. Raises an
|
973
|
+
# EOFError after the last byte of the last file has been read.
|
714
974
|
#
|
715
975
|
# For example:
|
716
976
|
#
|
@@ -730,8 +990,8 @@ module RBS
|
|
730
990
|
# rdoc-file=io.c
|
731
991
|
# - ARGF.readchar -> String or nil
|
732
992
|
# -->
|
733
|
-
# Reads the next character from
|
734
|
-
#
|
993
|
+
# Reads the next character from ARGF and returns it as a String. Raises an
|
994
|
+
# EOFError after the last character of the last file has been read.
|
735
995
|
#
|
736
996
|
# For example:
|
737
997
|
#
|
@@ -753,34 +1013,36 @@ module RBS
|
|
753
1013
|
# - ARGF.readline(limit) -> string
|
754
1014
|
# - ARGF.readline(sep, limit) -> string
|
755
1015
|
# -->
|
756
|
-
# Returns the next line from the current file in
|
1016
|
+
# Returns the next line from the current file in ARGF.
|
757
1017
|
#
|
758
1018
|
# By default lines are assumed to be separated by `$/`; to use a different
|
759
|
-
# character as a separator, supply it as a
|
1019
|
+
# character as a separator, supply it as a String for the *sep* argument.
|
760
1020
|
#
|
761
1021
|
# The optional *limit* argument specifies how many characters of each line to
|
762
1022
|
# return. By default all characters are returned.
|
763
1023
|
#
|
764
|
-
# An
|
1024
|
+
# An EOFError is raised at the end of the file.
|
765
1025
|
#
|
766
1026
|
%a{annotate:rdoc:copy:ARGF#readline}
|
767
1027
|
def readline: (?String sep, ?Integer limit) -> String
|
768
1028
|
|
769
1029
|
# <!--
|
770
1030
|
# rdoc-file=io.c
|
771
|
-
# - ARGF.readlines(sep =
|
772
|
-
# - ARGF.readlines(limit) -> array
|
773
|
-
# - ARGF.readlines(sep, limit) -> array
|
774
|
-
# - ARGF.to_a(sep =
|
775
|
-
# - ARGF.to_a(limit) -> array
|
776
|
-
# - ARGF.to_a(sep, limit) -> array
|
1031
|
+
# - ARGF.readlines(sep = $/, chomp: false) -> array
|
1032
|
+
# - ARGF.readlines(limit, chomp: false) -> array
|
1033
|
+
# - ARGF.readlines(sep, limit, chomp: false) -> array
|
1034
|
+
# - ARGF.to_a(sep = $/, chomp: false) -> array
|
1035
|
+
# - ARGF.to_a(limit, chomp: false) -> array
|
1036
|
+
# - ARGF.to_a(sep, limit, chomp: false) -> array
|
777
1037
|
# -->
|
778
|
-
# Reads each file in
|
779
|
-
#
|
1038
|
+
# Reads each file in ARGF in its entirety, returning an Array containing lines
|
1039
|
+
# from the files. Lines are assumed to be separated by *sep*.
|
780
1040
|
#
|
781
1041
|
# lines = ARGF.readlines
|
782
1042
|
# lines[0] #=> "This is line one\n"
|
783
1043
|
#
|
1044
|
+
# See `IO.readlines` for a full description of all options.
|
1045
|
+
#
|
784
1046
|
%a{annotate:rdoc:copy:ARGF#readlines}
|
785
1047
|
def readlines: (?String sep, ?Integer limit) -> ::Array[String]
|
786
1048
|
|
@@ -807,8 +1069,8 @@ module RBS
|
|
807
1069
|
# rdoc-file=io.c
|
808
1070
|
# - ARGF.rewind -> 0
|
809
1071
|
# -->
|
810
|
-
# Positions the current file to the beginning of input, resetting
|
811
|
-
#
|
1072
|
+
# Positions the current file to the beginning of input, resetting ARGF.lineno to
|
1073
|
+
# zero.
|
812
1074
|
#
|
813
1075
|
# ARGF.readline #=> "This is line one\n"
|
814
1076
|
# ARGF.rewind #=> 0
|
@@ -822,7 +1084,7 @@ module RBS
|
|
822
1084
|
# rdoc-file=io.c
|
823
1085
|
# - ARGF.seek(amount, whence=IO::SEEK_SET) -> 0
|
824
1086
|
# -->
|
825
|
-
# Seeks to offset *amount* (an
|
1087
|
+
# Seeks to offset *amount* (an Integer) in the ARGF stream according to the
|
826
1088
|
# value of *whence*. See IO#seek for further details.
|
827
1089
|
#
|
828
1090
|
%a{annotate:rdoc:copy:ARGF#seek}
|
@@ -848,7 +1110,7 @@ module RBS
|
|
848
1110
|
# the internal encoding.
|
849
1111
|
#
|
850
1112
|
# If the external encoding and the internal encoding are specified, the optional
|
851
|
-
#
|
1113
|
+
# Hash argument can be used to adjust the conversion process. The structure of
|
852
1114
|
# this hash is explained in the String#encode documentation.
|
853
1115
|
#
|
854
1116
|
# For example:
|
@@ -883,7 +1145,7 @@ module RBS
|
|
883
1145
|
# - ARGF.tell -> Integer
|
884
1146
|
# - ARGF.pos -> Integer
|
885
1147
|
# -->
|
886
|
-
# Returns the current offset (in bytes) of the current file in
|
1148
|
+
# Returns the current offset (in bytes) of the current file in ARGF.
|
887
1149
|
#
|
888
1150
|
# ARGF.pos #=> 0
|
889
1151
|
# ARGF.gets #=> "This is line one\n"
|
@@ -893,18 +1155,20 @@ module RBS
|
|
893
1155
|
def tell: () -> Integer
|
894
1156
|
|
895
1157
|
# <!-- rdoc-file=io.c -->
|
896
|
-
# Reads each file in
|
897
|
-
#
|
1158
|
+
# Reads each file in ARGF in its entirety, returning an Array containing lines
|
1159
|
+
# from the files. Lines are assumed to be separated by *sep*.
|
898
1160
|
#
|
899
1161
|
# lines = ARGF.readlines
|
900
1162
|
# lines[0] #=> "This is line one\n"
|
901
1163
|
#
|
1164
|
+
# See `IO.readlines` for a full description of all options.
|
1165
|
+
#
|
902
1166
|
%a{annotate:rdoc:copy:ARGF#to_a}
|
903
1167
|
def to_a: (?String sep, ?Integer limit) -> ::Array[String]
|
904
1168
|
|
905
1169
|
# <!-- rdoc-file=io.c -->
|
906
1170
|
# Returns an integer representing the numeric file descriptor for the current
|
907
|
-
# file. Raises an
|
1171
|
+
# file. Raises an ArgumentError if there isn't a current file.
|
908
1172
|
#
|
909
1173
|
# ARGF.fileno #=> 3
|
910
1174
|
#
|
@@ -915,8 +1179,8 @@ module RBS
|
|
915
1179
|
# rdoc-file=io.c
|
916
1180
|
# - ARGF.to_io -> IO
|
917
1181
|
# -->
|
918
|
-
# Returns an
|
919
|
-
#
|
1182
|
+
# Returns an IO object representing the current file. This will be a File object
|
1183
|
+
# unless the current file is a stream such as STDIN.
|
920
1184
|
#
|
921
1185
|
# For example:
|
922
1186
|
#
|
@@ -946,9 +1210,9 @@ module RBS
|
|
946
1210
|
|
947
1211
|
# <!--
|
948
1212
|
# rdoc-file=io.c
|
949
|
-
# - ARGF.write(
|
1213
|
+
# - ARGF.write(*objects) -> integer
|
950
1214
|
# -->
|
951
|
-
# Writes
|
1215
|
+
# Writes each of the given `objects` if inplace mode.
|
952
1216
|
#
|
953
1217
|
%a{annotate:rdoc:copy:ARGF#write}
|
954
1218
|
def write: (_ToS string) -> Integer
|