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
@@ -1,16 +1,58 @@
|
|
1
1
|
# <!-- rdoc-file=lib/tempfile.rb -->
|
2
|
-
# A utility class for managing temporary files.
|
3
|
-
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
#
|
2
|
+
# A utility class for managing temporary files.
|
3
|
+
#
|
4
|
+
# There are two kind of methods of creating a temporary file:
|
5
|
+
#
|
6
|
+
# * Tempfile.create (recommended)
|
7
|
+
# * Tempfile.new and Tempfile.open (mostly for backward compatibility, not
|
8
|
+
# recommended)
|
9
|
+
#
|
10
|
+
# Tempfile.create creates a usual File object. The timing of file deletion is
|
11
|
+
# predictable. Also, it supports open-and-unlink technique which removes the
|
12
|
+
# temporary file immediately after creation.
|
13
|
+
#
|
14
|
+
# Tempfile.new and Tempfile.open creates a Tempfile object. The created file is
|
15
|
+
# removed by the GC (finalizer). The timing of file deletion is not predictable.
|
9
16
|
#
|
10
17
|
# ## Synopsis
|
11
18
|
#
|
12
19
|
# require 'tempfile'
|
13
20
|
#
|
21
|
+
# # Tempfile.create with a block
|
22
|
+
# # The filename are choosen automatically.
|
23
|
+
# # (You can specify the prefix and suffix of the filename by an optional argument.)
|
24
|
+
# Tempfile.create {|f|
|
25
|
+
# f.puts "foo"
|
26
|
+
# f.rewind
|
27
|
+
# f.read # => "foo\n"
|
28
|
+
# } # The file is removed at block exit.
|
29
|
+
#
|
30
|
+
# # Tempfile.create without a block
|
31
|
+
# # You need to unlink the file in non-block form.
|
32
|
+
# f = Tempfile.create
|
33
|
+
# f.puts "foo"
|
34
|
+
# f.close
|
35
|
+
# File.unlink(f.path) # You need to unlink the file.
|
36
|
+
#
|
37
|
+
# # Tempfile.create(anonymous: true) without a block
|
38
|
+
# f = Tempfile.create(anonymous: true)
|
39
|
+
# # The file is already removed because anonymous.
|
40
|
+
# f.path # => "/tmp/" (no filename since no file)
|
41
|
+
# f.puts "foo"
|
42
|
+
# f.rewind
|
43
|
+
# f.read # => "foo\n"
|
44
|
+
# f.close
|
45
|
+
#
|
46
|
+
# # Tempfile.create(anonymous: true) with a block
|
47
|
+
# Tempfile.create(anonymous: true) {|f|
|
48
|
+
# # The file is already removed because anonymous.
|
49
|
+
# f.path # => "/tmp/" (no filename since no file)
|
50
|
+
# f.puts "foo"
|
51
|
+
# f.rewind
|
52
|
+
# f.read # => "foo\n"
|
53
|
+
# }
|
54
|
+
#
|
55
|
+
# # Not recommended: Tempfile.new without a block
|
14
56
|
# file = Tempfile.new('foo')
|
15
57
|
# file.path # => A unique filename in the OS's temp directory,
|
16
58
|
# # e.g.: "/tmp/foo.24722.0"
|
@@ -21,7 +63,27 @@
|
|
21
63
|
# file.close
|
22
64
|
# file.unlink # deletes the temp file
|
23
65
|
#
|
24
|
-
# ##
|
66
|
+
# ## About Tempfile.new and Tempfile.open
|
67
|
+
#
|
68
|
+
# This section does not apply to Tempfile.create because it returns a File
|
69
|
+
# object (not a Tempfile object).
|
70
|
+
#
|
71
|
+
# When you create a Tempfile object, it will create a temporary file with a
|
72
|
+
# unique filename. A Tempfile objects behaves just like a File object, and you
|
73
|
+
# can perform all the usual file operations on it: reading data, writing data,
|
74
|
+
# changing its permissions, etc. So although this class does not explicitly
|
75
|
+
# document all instance methods supported by File, you can in fact call any File
|
76
|
+
# instance method on a Tempfile object.
|
77
|
+
#
|
78
|
+
# A Tempfile object has a finalizer to remove the temporary file. This means
|
79
|
+
# that the temporary file is removed via GC. This can cause several problems:
|
80
|
+
#
|
81
|
+
# * Long GC intervals and conservative GC can accumulate temporary files that
|
82
|
+
# are not removed.
|
83
|
+
# * Temporary files are not removed if Ruby exits abnormally (such as SIGKILL,
|
84
|
+
# SEGV).
|
85
|
+
#
|
86
|
+
# There are legacy good practices for Tempfile.new and Tempfile.open as follows.
|
25
87
|
#
|
26
88
|
# ### Explicit close
|
27
89
|
#
|
@@ -48,7 +110,7 @@
|
|
48
110
|
# Note that Tempfile.create returns a File instance instead of a Tempfile, which
|
49
111
|
# also avoids the overhead and complications of delegation.
|
50
112
|
#
|
51
|
-
# Tempfile.
|
113
|
+
# Tempfile.create('foo') do |file|
|
52
114
|
# # ...do something with file...
|
53
115
|
# end
|
54
116
|
#
|
@@ -61,12 +123,17 @@
|
|
61
123
|
# this if you do not want any other processes to be able to read from or write
|
62
124
|
# to the Tempfile, and you do not need to know the Tempfile's filename either.
|
63
125
|
#
|
126
|
+
# Also, this guarantees the temporary file is removed even if Ruby exits
|
127
|
+
# abnormally. The OS reclaims the storage for the temporary file when the file
|
128
|
+
# is closed or the Ruby process exits (normally or abnormally).
|
129
|
+
#
|
64
130
|
# For example, a practical use case for unlink-after-creation would be this: you
|
65
131
|
# need a large byte buffer that's too large to comfortably fit in RAM, e.g. when
|
66
132
|
# you're writing a web server and you want to buffer the client's file upload
|
67
133
|
# data.
|
68
134
|
#
|
69
|
-
#
|
135
|
+
# `Tempfile.create(anonymous: true)` supports this behavior. It also works on
|
136
|
+
# Windows.
|
70
137
|
#
|
71
138
|
# ## Minor notes
|
72
139
|
#
|
@@ -80,29 +147,114 @@
|
|
80
147
|
class Tempfile < File
|
81
148
|
# <!--
|
82
149
|
# rdoc-file=lib/tempfile.rb
|
83
|
-
# - create(basename="", tmpdir=nil, mode: 0, **options)
|
150
|
+
# - create(basename="", tmpdir=nil, mode: 0, anonymous: false, **options, &block)
|
84
151
|
# -->
|
85
|
-
# Creates a
|
86
|
-
#
|
152
|
+
# Creates a file in the underlying file system; returns a new File object based
|
153
|
+
# on that file.
|
87
154
|
#
|
88
|
-
#
|
89
|
-
# instead of Tempfile. In that case, the created file is not removed
|
90
|
-
# automatically. You should use File.unlink to remove it.
|
155
|
+
# With no block given and no arguments, creates and returns file whose:
|
91
156
|
#
|
92
|
-
#
|
93
|
-
#
|
94
|
-
#
|
95
|
-
#
|
157
|
+
# * Class is [File](rdoc-ref:File) (not Tempfile).
|
158
|
+
# * Directory is the system temporary directory (system-dependent).
|
159
|
+
# * Generated filename is unique in that directory.
|
160
|
+
# * Permissions are `0600`; see [File
|
161
|
+
# Permissions](rdoc-ref:File@File+Permissions).
|
162
|
+
# * Mode is `'w+'` (read/write mode, positioned at the end).
|
96
163
|
#
|
97
|
-
#
|
98
|
-
#
|
164
|
+
# The temporary file removal depends on the keyword argument `anonymous` and
|
165
|
+
# whether a block is given or not. See the description about the `anonymous`
|
166
|
+
# keyword argument later.
|
99
167
|
#
|
100
|
-
#
|
101
|
-
#
|
102
|
-
#
|
168
|
+
# Example:
|
169
|
+
#
|
170
|
+
# f = Tempfile.create # => #<File:/tmp/20220505-9795-17ky6f6>
|
171
|
+
# f.class # => File
|
172
|
+
# f.path # => "/tmp/20220505-9795-17ky6f6"
|
173
|
+
# f.stat.mode.to_s(8) # => "100600"
|
174
|
+
# f.close
|
175
|
+
# File.exist?(f.path) # => true
|
176
|
+
# File.unlink(f.path)
|
177
|
+
# File.exist?(f.path) # => false
|
178
|
+
#
|
179
|
+
# Tempfile.create {|f|
|
180
|
+
# f.puts "foo"
|
181
|
+
# f.rewind
|
182
|
+
# f.read # => "foo\n"
|
183
|
+
# f.path # => "/tmp/20240524-380207-oma0ny"
|
184
|
+
# File.exist?(f.path) # => true
|
185
|
+
# } # The file is removed at block exit.
|
186
|
+
#
|
187
|
+
# f = Tempfile.create(anonymous: true)
|
188
|
+
# # The file is already removed because anonymous
|
189
|
+
# f.path # => "/tmp/" (no filename since no file)
|
190
|
+
# f.puts "foo"
|
191
|
+
# f.rewind
|
192
|
+
# f.read # => "foo\n"
|
193
|
+
# f.close
|
194
|
+
#
|
195
|
+
# Tempfile.create(anonymous: true) {|f|
|
196
|
+
# # The file is already removed because anonymous
|
197
|
+
# f.path # => "/tmp/" (no filename since no file)
|
198
|
+
# f.puts "foo"
|
199
|
+
# f.rewind
|
200
|
+
# f.read # => "foo\n"
|
201
|
+
# }
|
202
|
+
#
|
203
|
+
# The argument `basename`, if given, may be one of the following:
|
204
|
+
#
|
205
|
+
# * A string: the generated filename begins with `basename`:
|
206
|
+
#
|
207
|
+
# Tempfile.create('foo') # => #<File:/tmp/foo20220505-9795-1gok8l9>
|
103
208
|
#
|
104
|
-
|
105
|
-
|
209
|
+
# * An array of two strings `[prefix, suffix]`: the generated filename begins
|
210
|
+
# with `prefix` and ends with `suffix`:
|
211
|
+
#
|
212
|
+
# Tempfile.create(%w/foo .jpg/) # => #<File:/tmp/foo20220505-17839-tnjchh.jpg>
|
213
|
+
#
|
214
|
+
# With arguments `basename` and `tmpdir`, the file is created in the directory
|
215
|
+
# `tmpdir`:
|
216
|
+
#
|
217
|
+
# Tempfile.create('foo', '.') # => #<File:./foo20220505-9795-1emu6g8>
|
218
|
+
#
|
219
|
+
# Keyword arguments `mode` and `options` are passed directly to the method
|
220
|
+
# [File.open](rdoc-ref:File.open):
|
221
|
+
#
|
222
|
+
# * The value given for `mode` must be an integer and may be expressed as the
|
223
|
+
# logical OR of constants defined in
|
224
|
+
# [File::Constants](rdoc-ref:File::Constants).
|
225
|
+
# * For `options`, see [Open Options](rdoc-ref:IO@Open+Options).
|
226
|
+
#
|
227
|
+
# The keyword argument `anonymous` specifies when the file is removed.
|
228
|
+
#
|
229
|
+
# * `anonymous=false` (default) without a block: the file is not removed.
|
230
|
+
# * `anonymous=false` (default) with a block: the file is removed after the
|
231
|
+
# block exits.
|
232
|
+
# * `anonymous=true` without a block: the file is removed before returning.
|
233
|
+
# * `anonymous=true` with a block: the file is removed before the block is
|
234
|
+
# called.
|
235
|
+
#
|
236
|
+
# In the first case (`anonymous=false` without a block), the file is not removed
|
237
|
+
# automatically. It should be explicitly closed. It can be used to rename to the
|
238
|
+
# desired filename. If the file is not needed, it should be explicitly removed.
|
239
|
+
#
|
240
|
+
# The File#path method of the created file object returns the temporary
|
241
|
+
# directory with a trailing slash when `anonymous` is true.
|
242
|
+
#
|
243
|
+
# When a block is given, it creates the file as described above, passes it to
|
244
|
+
# the block, and returns the block's value. Before the returning, the file
|
245
|
+
# object is closed and the underlying file is removed:
|
246
|
+
#
|
247
|
+
# Tempfile.create {|file| file.path } # => "/tmp/20220505-9795-rkists"
|
248
|
+
#
|
249
|
+
# Implementation note:
|
250
|
+
#
|
251
|
+
# The keyword argument +anonymous=true+ is implemented using FILE_SHARE_DELETE
|
252
|
+
# on Windows. O_TMPFILE is used on Linux.
|
253
|
+
#
|
254
|
+
# Related: Tempfile.new.
|
255
|
+
#
|
256
|
+
def self.create: (?String | [ String, String ] basename, ?String? tmpdir, ?mode: Integer, ?anonymous: bool, **untyped) -> File
|
257
|
+
| [A] (?String | [ String, String ] basename, ?String? tmpdir, ?mode: Integer, ?anonymous: bool, **untyped) { (File) -> A } -> A
|
106
258
|
|
107
259
|
# <!--
|
108
260
|
# rdoc-file=lib/tempfile.rb
|
@@ -148,8 +300,6 @@ class Tempfile < File
|
|
148
300
|
def self.open: (*untyped args, **untyped) -> Tempfile
|
149
301
|
| [A] (*untyped args, **untyped) { (Tempfile) -> A } -> A
|
150
302
|
|
151
|
-
public
|
152
|
-
|
153
303
|
# <!--
|
154
304
|
# rdoc-file=lib/tempfile.rb
|
155
305
|
# - close(unlink_now=false)
|
@@ -255,8 +405,6 @@ class Tempfile < File
|
|
255
405
|
def unlink: () -> void
|
256
406
|
|
257
407
|
class Remover
|
258
|
-
public
|
259
|
-
|
260
408
|
def call: (*untyped args) -> void
|
261
409
|
|
262
410
|
private
|
@@ -268,48 +416,63 @@ class Tempfile < File
|
|
268
416
|
# rdoc-file=lib/tempfile.rb
|
269
417
|
# - new(basename="", tmpdir=nil, mode: 0, **options)
|
270
418
|
# -->
|
271
|
-
# Creates a
|
272
|
-
#
|
419
|
+
# Creates a file in the underlying file system; returns a new Tempfile object
|
420
|
+
# based on that file.
|
421
|
+
#
|
422
|
+
# If possible, consider instead using Tempfile.create, which:
|
423
|
+
#
|
424
|
+
# * Avoids the performance cost of delegation, incurred when Tempfile.new
|
425
|
+
# calls its superclass `DelegateClass(File)`.
|
426
|
+
# * Does not rely on a finalizer to close and unlink the file, which can be
|
427
|
+
# unreliable.
|
428
|
+
#
|
429
|
+
# Creates and returns file whose:
|
430
|
+
#
|
431
|
+
# * Class is Tempfile (not File, as in Tempfile.create).
|
432
|
+
# * Directory is the system temporary directory (system-dependent).
|
433
|
+
# * Generated filename is unique in that directory.
|
434
|
+
# * Permissions are `0600`; see [File
|
435
|
+
# Permissions](rdoc-ref:File@File+Permissions).
|
436
|
+
# * Mode is `'w+'` (read/write mode, positioned at the end).
|
437
|
+
#
|
438
|
+
# The underlying file is removed when the Tempfile object dies and is reclaimed
|
439
|
+
# by the garbage collector.
|
273
440
|
#
|
274
|
-
#
|
275
|
-
# because that method avoids the cost of delegation and does not rely on a
|
276
|
-
# finalizer to close and unlink the file, which is unreliable.
|
441
|
+
# Example:
|
277
442
|
#
|
278
|
-
#
|
279
|
-
#
|
280
|
-
#
|
281
|
-
#
|
282
|
-
#
|
443
|
+
# f = Tempfile.new # => #<Tempfile:/tmp/20220505-17839-1s0kt30>
|
444
|
+
# f.class # => Tempfile
|
445
|
+
# f.path # => "/tmp/20220505-17839-1s0kt30"
|
446
|
+
# f.stat.mode.to_s(8) # => "100600"
|
447
|
+
# File.exist?(f.path) # => true
|
448
|
+
# File.unlink(f.path) #
|
449
|
+
# File.exist?(f.path) # => false
|
283
450
|
#
|
284
|
-
#
|
285
|
-
# file.path # => something like: "/tmp/hello2843-8392-92849382--0"
|
451
|
+
# Argument `basename`, if given, may be one of:
|
286
452
|
#
|
287
|
-
#
|
288
|
-
# file = Tempfile.new(['hello', '.jpg'])
|
289
|
-
# file.path # => something like: "/tmp/hello2843-8392-92849382--0.jpg"
|
453
|
+
# * A string: the generated filename begins with `basename`:
|
290
454
|
#
|
291
|
-
#
|
292
|
-
# `tmpdir` parameter. By default, this is `Dir.tmpdir`.
|
455
|
+
# Tempfile.new('foo') # => #<Tempfile:/tmp/foo20220505-17839-1whk2f>
|
293
456
|
#
|
294
|
-
#
|
295
|
-
#
|
457
|
+
# * An array of two strings `[prefix, suffix]`: the generated filename begins
|
458
|
+
# with `prefix` and ends with `suffix`:
|
296
459
|
#
|
297
|
-
#
|
298
|
-
# temporary file using `File.open`. These options will be passed to `File.open`.
|
299
|
-
# This is mostly useful for specifying encoding options, e.g.:
|
460
|
+
# Tempfile.new(%w/foo .jpg/) # => #<Tempfile:/tmp/foo20220505-17839-58xtfi.jpg>
|
300
461
|
#
|
301
|
-
#
|
462
|
+
# With arguments `basename` and `tmpdir`, the file is created in directory
|
463
|
+
# `tmpdir`:
|
302
464
|
#
|
303
|
-
#
|
304
|
-
# Tempfile.new('hello', encoding: 'ascii-8bit')
|
465
|
+
# Tempfile.new('foo', '.') # => #<Tempfile:./foo20220505-17839-xfstr8>
|
305
466
|
#
|
306
|
-
#
|
307
|
-
#
|
467
|
+
# Keyword arguments `mode` and `options` are passed directly to method
|
468
|
+
# [File.open](rdoc-ref:File.open):
|
308
469
|
#
|
309
|
-
#
|
470
|
+
# * The value given with `mode` must be an integer, and may be expressed as
|
471
|
+
# the logical OR of constants defined in
|
472
|
+
# [File::Constants](rdoc-ref:File::Constants).
|
473
|
+
# * For `options`, see [Open Options](rdoc-ref:IO@Open+Options).
|
310
474
|
#
|
311
|
-
#
|
312
|
-
# tries, then it will raise an exception.
|
475
|
+
# Related: Tempfile.create.
|
313
476
|
#
|
314
477
|
def self.new: (?String | [ String, String ] basename, ?String? tmpdir, ?mode: Integer, **untyped) -> instance
|
315
478
|
| [A] (?String | [ String, String ] basename, ?String? tmpdir, ?mode: Integer, **untyped) { (instance) -> A } -> A
|
data/stdlib/time/0/time.rbs
CHANGED
@@ -43,7 +43,7 @@ class Time
|
|
43
43
|
#
|
44
44
|
# This method **does not** function as a validator. If the input string does
|
45
45
|
# not match valid formats strictly, you may get a cryptic result. Should
|
46
|
-
# consider to use
|
46
|
+
# consider to use Time.strptime instead of this method as possible.
|
47
47
|
#
|
48
48
|
# require 'time'
|
49
49
|
#
|
@@ -147,6 +147,8 @@ class Time
|
|
147
147
|
# the format of the input string, you provide a second argument that describes
|
148
148
|
# the format of the string.
|
149
149
|
#
|
150
|
+
# Raises ArgumentError if the date or format is invalid.
|
151
|
+
#
|
150
152
|
# If a block is given, the year described in `date` is converted by the block.
|
151
153
|
# For example:
|
152
154
|
#
|
@@ -156,95 +158,139 @@ class Time
|
|
156
158
|
#
|
157
159
|
# %a
|
158
160
|
# : The abbreviated weekday name ("Sun")
|
161
|
+
#
|
159
162
|
# %A
|
160
163
|
# : The full weekday name ("Sunday")
|
164
|
+
#
|
161
165
|
# %b
|
162
166
|
# : The abbreviated month name ("Jan")
|
167
|
+
#
|
163
168
|
# %B
|
164
169
|
# : The full month name ("January")
|
170
|
+
#
|
165
171
|
# %c
|
166
172
|
# : The preferred local date and time representation
|
173
|
+
#
|
167
174
|
# %C
|
168
175
|
# : Century (20 in 2009)
|
176
|
+
#
|
169
177
|
# %d
|
170
178
|
# : Day of the month (01..31)
|
179
|
+
#
|
171
180
|
# %D
|
172
181
|
# : Date (%m/%d/%y)
|
182
|
+
#
|
173
183
|
# %e
|
174
184
|
# : Day of the month, blank-padded ( 1..31)
|
185
|
+
#
|
175
186
|
# %F
|
176
187
|
# : Equivalent to %Y-%m-%d (the ISO 8601 date format)
|
188
|
+
#
|
177
189
|
# %g
|
178
190
|
# : The last two digits of the commercial year
|
191
|
+
#
|
179
192
|
# %G
|
180
193
|
# : The week-based year according to ISO-8601 (week 1 starts on Monday and
|
181
194
|
# includes January 4)
|
195
|
+
#
|
182
196
|
# %h
|
183
197
|
# : Equivalent to %b
|
198
|
+
#
|
184
199
|
# %H
|
185
200
|
# : Hour of the day, 24-hour clock (00..23)
|
201
|
+
#
|
186
202
|
# %I
|
187
203
|
# : Hour of the day, 12-hour clock (01..12)
|
204
|
+
#
|
188
205
|
# %j
|
189
206
|
# : Day of the year (001..366)
|
207
|
+
#
|
190
208
|
# %k
|
191
209
|
# : hour, 24-hour clock, blank-padded ( 0..23)
|
210
|
+
#
|
192
211
|
# %l
|
193
212
|
# : hour, 12-hour clock, blank-padded ( 0..12)
|
213
|
+
#
|
194
214
|
# %L
|
195
215
|
# : Millisecond of the second (000..999)
|
216
|
+
#
|
196
217
|
# %m
|
197
218
|
# : Month of the year (01..12)
|
219
|
+
#
|
198
220
|
# %M
|
199
221
|
# : Minute of the hour (00..59)
|
222
|
+
#
|
200
223
|
# %n
|
201
224
|
# : Newline (n)
|
225
|
+
#
|
202
226
|
# %N
|
203
227
|
# : Fractional seconds digits
|
228
|
+
#
|
204
229
|
# %p
|
205
230
|
# : Meridian indicator ("AM" or "PM")
|
231
|
+
#
|
206
232
|
# %P
|
207
233
|
# : Meridian indicator ("am" or "pm")
|
234
|
+
#
|
208
235
|
# %r
|
209
236
|
# : time, 12-hour (same as %I:%M:%S %p)
|
237
|
+
#
|
210
238
|
# %R
|
211
239
|
# : time, 24-hour (%H:%M)
|
240
|
+
#
|
212
241
|
# %s
|
213
242
|
# : Number of seconds since 1970-01-01 00:00:00 UTC.
|
243
|
+
#
|
214
244
|
# %S
|
215
245
|
# : Second of the minute (00..60)
|
246
|
+
#
|
216
247
|
# %t
|
217
248
|
# : Tab character (t)
|
249
|
+
#
|
218
250
|
# %T
|
219
251
|
# : time, 24-hour (%H:%M:%S)
|
252
|
+
#
|
220
253
|
# %u
|
221
254
|
# : Day of the week as a decimal, Monday being 1. (1..7)
|
255
|
+
#
|
222
256
|
# %U
|
223
257
|
# : Week number of the current year, starting with the first Sunday as the
|
224
258
|
# first day of the first week (00..53)
|
259
|
+
#
|
225
260
|
# %v
|
226
261
|
# : VMS date (%e-%b-%Y)
|
262
|
+
#
|
227
263
|
# %V
|
228
264
|
# : Week number of year according to ISO 8601 (01..53)
|
265
|
+
#
|
229
266
|
# %W
|
230
267
|
# : Week number of the current year, starting with the first Monday as the
|
231
268
|
# first day of the first week (00..53)
|
269
|
+
#
|
232
270
|
# %w
|
233
271
|
# : Day of the week (Sunday is 0, 0..6)
|
272
|
+
#
|
234
273
|
# %x
|
235
274
|
# : Preferred representation for the date alone, no time
|
275
|
+
#
|
236
276
|
# %X
|
237
277
|
# : Preferred representation for the time alone, no date
|
278
|
+
#
|
238
279
|
# %y
|
239
280
|
# : Year without a century (00..99)
|
281
|
+
#
|
240
282
|
# %Y
|
241
283
|
# : Year which may include century, if provided
|
284
|
+
#
|
242
285
|
# %z
|
243
|
-
# : Time zone as
|
286
|
+
# : Time zone as hour offset from UTC (e.g. +0900)
|
287
|
+
#
|
244
288
|
# %Z
|
245
289
|
# : Time zone name
|
290
|
+
#
|
246
291
|
# %%
|
247
292
|
# : Literal "%" character
|
293
|
+
#
|
248
294
|
# %+
|
249
295
|
# : date(1) (%a %b %e %H:%M:%S %Z %Y)
|
250
296
|
#
|
@@ -383,37 +429,4 @@ class Time
|
|
383
429
|
# You must require 'time' to use this method.
|
384
430
|
#
|
385
431
|
def httpdate: () -> String
|
386
|
-
|
387
|
-
# <!--
|
388
|
-
# rdoc-file=lib/time.rb
|
389
|
-
# - xmlschema(fraction_digits=0)
|
390
|
-
# -->
|
391
|
-
# Returns a string which represents the time as a dateTime defined by XML
|
392
|
-
# Schema:
|
393
|
-
#
|
394
|
-
# CCYY-MM-DDThh:mm:ssTZD
|
395
|
-
# CCYY-MM-DDThh:mm:ss.sssTZD
|
396
|
-
#
|
397
|
-
# where TZD is Z or [+-]hh:mm.
|
398
|
-
#
|
399
|
-
# If self is a UTC time, Z is used as TZD. [+-]hh:mm is used otherwise.
|
400
|
-
#
|
401
|
-
# `fractional_digits` specifies a number of digits to use for fractional
|
402
|
-
# seconds. Its default value is 0.
|
403
|
-
#
|
404
|
-
# require 'time'
|
405
|
-
#
|
406
|
-
# t = Time.now
|
407
|
-
# t.iso8601 # => "2011-10-05T22:26:12-04:00"
|
408
|
-
#
|
409
|
-
# You must require 'time' to use this method.
|
410
|
-
#
|
411
|
-
def xmlschema: (?Integer fraction_digits) -> String
|
412
|
-
|
413
|
-
# <!--
|
414
|
-
# rdoc-file=lib/time.rb
|
415
|
-
# - iso8601(fraction_digits=0)
|
416
|
-
# -->
|
417
|
-
#
|
418
|
-
alias iso8601 xmlschema
|
419
432
|
end
|
@@ -4,7 +4,7 @@
|
|
4
4
|
# ## Synopsis
|
5
5
|
#
|
6
6
|
# require 'timeout'
|
7
|
-
# status = Timeout
|
7
|
+
# status = Timeout.timeout(5) {
|
8
8
|
# # Something that should be interrupted if it takes more than 5 seconds...
|
9
9
|
# }
|
10
10
|
#
|
@@ -13,14 +13,11 @@
|
|
13
13
|
# Timeout provides a way to auto-terminate a potentially long-running operation
|
14
14
|
# if it hasn't finished in a fixed amount of time.
|
15
15
|
#
|
16
|
-
# Previous versions didn't use a module for namespacing, however #timeout is
|
17
|
-
# provided for backwards compatibility. You should prefer Timeout.timeout
|
18
|
-
# instead.
|
19
|
-
#
|
20
16
|
# ## Copyright
|
21
17
|
#
|
22
18
|
# Copyright
|
23
19
|
# : (C) 2000 Network Applied Communication Laboratory, Inc.
|
20
|
+
#
|
24
21
|
# Copyright
|
25
22
|
# : (C) 2000 Information-technology Promotion Agency, Japan
|
26
23
|
#
|
@@ -33,12 +30,15 @@ module Timeout
|
|
33
30
|
# `sec` seconds to complete.
|
34
31
|
#
|
35
32
|
# `sec`
|
36
|
-
# : Number of seconds to wait for the block to terminate. Any
|
37
|
-
# used, including Floats to specify fractional seconds.
|
38
|
-
# `nil` will execute the block without any timeout.
|
33
|
+
# : Number of seconds to wait for the block to terminate. Any non-negative
|
34
|
+
# number or nil may be used, including Floats to specify fractional seconds.
|
35
|
+
# A value of 0 or `nil` will execute the block without any timeout. Any
|
36
|
+
# negative number will raise an ArgumentError.
|
37
|
+
#
|
39
38
|
# `klass`
|
40
39
|
# : Exception Class to raise if the block fails to terminate in `sec` seconds.
|
41
40
|
# Omitting will use the default, Timeout::Error
|
41
|
+
#
|
42
42
|
# `message`
|
43
43
|
# : Error message to raise with Exception Class. Omitting will use the
|
44
44
|
# default, "execution expired"
|
@@ -62,6 +62,12 @@ module Timeout
|
|
62
62
|
def self?.timeout: [T] (Numeric? sec, ?singleton(Exception) klass, ?String message) { (Numeric sec) -> T } -> T
|
63
63
|
end
|
64
64
|
|
65
|
+
# <!-- rdoc-file=lib/timeout.rb -->
|
66
|
+
# Internal error raised to when a timeout is triggered.
|
67
|
+
#
|
68
|
+
class Timeout::ExitException < Exception
|
69
|
+
end
|
70
|
+
|
65
71
|
# <!-- rdoc-file=lib/timeout.rb -->
|
66
72
|
# Raised by Timeout.timeout when the block times out.
|
67
73
|
#
|
@@ -69,4 +75,7 @@ class Timeout::Error < RuntimeError
|
|
69
75
|
attr_reader thread: Thread?
|
70
76
|
end
|
71
77
|
|
78
|
+
# <!-- rdoc-file=lib/timeout.rb -->
|
79
|
+
# The version
|
80
|
+
#
|
72
81
|
Timeout::VERSION: String
|
data/stdlib/tmpdir/0/tmpdir.rbs
CHANGED
@@ -6,6 +6,9 @@ class Dir
|
|
6
6
|
# -->
|
7
7
|
# Returns the operating system's temporary file path.
|
8
8
|
#
|
9
|
+
# require 'tmpdir'
|
10
|
+
# Dir.tmpdir # => "/tmp"
|
11
|
+
#
|
9
12
|
def self.tmpdir: () -> String
|
10
13
|
|
11
14
|
# <!--
|
@@ -14,6 +17,11 @@ class Dir
|
|
14
17
|
# -->
|
15
18
|
# Dir.mktmpdir creates a temporary directory.
|
16
19
|
#
|
20
|
+
# require 'tmpdir'
|
21
|
+
# Dir.mktmpdir {|dir|
|
22
|
+
# # use the directory
|
23
|
+
# }
|
24
|
+
#
|
17
25
|
# The directory is created with 0700 permission. Application should not change
|
18
26
|
# the permission to make the temporary directory accessible from other users.
|
19
27
|
#
|
@@ -25,7 +33,6 @@ class Dir
|
|
25
33
|
# * If it is an array, first element is used as the prefix and second element
|
26
34
|
# is used as a suffix.
|
27
35
|
#
|
28
|
-
#
|
29
36
|
# Dir.mktmpdir {|dir| dir is ".../d..." }
|
30
37
|
# Dir.mktmpdir("foo") {|dir| dir is ".../foo..." }
|
31
38
|
# Dir.mktmpdir(["foo", "bar"]) {|dir| dir is ".../foo...bar" }
|
@@ -57,6 +64,6 @@ class Dir
|
|
57
64
|
# FileUtils.remove_entry dir
|
58
65
|
# end
|
59
66
|
#
|
60
|
-
def self.mktmpdir: (?
|
61
|
-
| [X] (?
|
67
|
+
def self.mktmpdir: (?string | [ string, string ] | nil, ?path?, ?max_try: Integer?) -> String
|
68
|
+
| [X] (?string | [string, string ] | nil, ?path?, ?max_try: Integer?) { (String) -> X } -> X
|
62
69
|
end
|
data/stdlib/tsort/0/tsort.rbs
CHANGED
@@ -11,7 +11,6 @@
|
|
11
11
|
# * tsort_each_node is used to iterate for all nodes over a graph.
|
12
12
|
# * tsort_each_child is used to iterate for child nodes of a given node.
|
13
13
|
#
|
14
|
-
#
|
15
14
|
# The equality of nodes are defined by eql? and hash since TSort uses Hash
|
16
15
|
# internally.
|
17
16
|
#
|
@@ -109,12 +108,9 @@
|
|
109
108
|
# strongly connected components. Although 'strongly_connected_components.rb'
|
110
109
|
# is correct but too long.
|
111
110
|
#
|
112
|
-
#
|
113
111
|
# ## References
|
114
112
|
#
|
115
113
|
# 1. Tarjan, "Depth First Search and Linear Graph Algorithms",
|
116
|
-
#
|
117
|
-
#
|
118
114
|
# *SIAM Journal on Computing*, Vol. 1, No. 2, pp. 146-160, June 1972.
|
119
115
|
#
|
120
116
|
module TSort[Node] : TSort::_Sortable[Node]
|