rbs-relaxed 3.9.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/dependabot.yml +22 -0
- data/.github/workflows/comments.yml +35 -0
- data/.github/workflows/dependabot.yml +30 -0
- data/.github/workflows/ruby.yml +82 -0
- data/.github/workflows/typecheck.yml +38 -0
- data/.github/workflows/windows.yml +43 -0
- data/.gitignore +23 -0
- data/.rubocop.yml +68 -0
- data/BSDL +22 -0
- data/CHANGELOG.md +1868 -0
- data/COPYING +56 -0
- data/README.md +203 -0
- data/Rakefile +417 -0
- data/Steepfile +44 -0
- data/config.yml +313 -0
- data/core/array.rbs +4062 -0
- data/core/basic_object.rbs +375 -0
- data/core/binding.rbs +150 -0
- data/core/builtin.rbs +277 -0
- data/core/class.rbs +220 -0
- data/core/comparable.rbs +171 -0
- data/core/complex.rbs +786 -0
- data/core/constants.rbs +96 -0
- data/core/data.rbs +415 -0
- data/core/dir.rbs +981 -0
- data/core/encoding.rbs +1371 -0
- data/core/enumerable.rbs +2405 -0
- data/core/enumerator/product.rbs +92 -0
- data/core/enumerator.rbs +630 -0
- data/core/env.rbs +6 -0
- data/core/errno.rbs +673 -0
- data/core/errors.rbs +760 -0
- data/core/exception.rbs +485 -0
- data/core/false_class.rbs +82 -0
- data/core/fiber.rbs +550 -0
- data/core/fiber_error.rbs +11 -0
- data/core/file.rbs +2936 -0
- data/core/file_test.rbs +331 -0
- data/core/float.rbs +1151 -0
- data/core/gc.rbs +644 -0
- data/core/global_variables.rbs +184 -0
- data/core/hash.rbs +1861 -0
- data/core/integer.rbs +1413 -0
- data/core/io/buffer.rbs +984 -0
- data/core/io/wait.rbs +70 -0
- data/core/io.rbs +3406 -0
- data/core/kernel.rbs +3096 -0
- data/core/marshal.rbs +207 -0
- data/core/match_data.rbs +635 -0
- data/core/math.rbs +729 -0
- data/core/method.rbs +386 -0
- data/core/module.rbs +1704 -0
- data/core/nil_class.rbs +209 -0
- data/core/numeric.rbs +818 -0
- data/core/object.rbs +110 -0
- data/core/object_space/weak_key_map.rbs +166 -0
- data/core/object_space.rbs +190 -0
- data/core/proc.rbs +868 -0
- data/core/process.rbs +2296 -0
- data/core/ractor.rbs +1068 -0
- data/core/random.rbs +237 -0
- data/core/range.rbs +1107 -0
- data/core/rational.rbs +531 -0
- data/core/rb_config.rbs +88 -0
- data/core/rbs/unnamed/argf.rbs +1229 -0
- data/core/rbs/unnamed/env_class.rbs +1209 -0
- data/core/rbs/unnamed/random.rbs +293 -0
- data/core/refinement.rbs +59 -0
- data/core/regexp.rbs +1930 -0
- data/core/ruby_vm.rbs +765 -0
- data/core/rubygems/basic_specification.rbs +6 -0
- data/core/rubygems/config_file.rbs +38 -0
- data/core/rubygems/dependency_installer.rbs +6 -0
- data/core/rubygems/errors.rbs +176 -0
- data/core/rubygems/installer.rbs +15 -0
- data/core/rubygems/path_support.rbs +6 -0
- data/core/rubygems/platform.rbs +7 -0
- data/core/rubygems/request_set.rbs +49 -0
- data/core/rubygems/requirement.rbs +148 -0
- data/core/rubygems/rubygems.rbs +1171 -0
- data/core/rubygems/source_list.rbs +15 -0
- data/core/rubygems/specification.rbs +23 -0
- data/core/rubygems/stream_ui.rbs +5 -0
- data/core/rubygems/uninstaller.rbs +10 -0
- data/core/rubygems/version.rbs +294 -0
- data/core/set.rbs +621 -0
- data/core/signal.rbs +100 -0
- data/core/string.rbs +3583 -0
- data/core/struct.rbs +667 -0
- data/core/symbol.rbs +475 -0
- data/core/thread.rbs +1765 -0
- data/core/thread_group.rbs +79 -0
- data/core/time.rbs +1762 -0
- data/core/trace_point.rbs +477 -0
- data/core/true_class.rbs +98 -0
- data/core/unbound_method.rbs +329 -0
- data/core/warning.rbs +87 -0
- data/docs/CONTRIBUTING.md +106 -0
- data/docs/architecture.md +110 -0
- data/docs/collection.md +192 -0
- data/docs/data_and_struct.md +86 -0
- data/docs/gem.md +57 -0
- data/docs/rbs_by_example.md +309 -0
- data/docs/repo.md +125 -0
- data/docs/sigs.md +167 -0
- data/docs/stdlib.md +147 -0
- data/docs/syntax.md +910 -0
- data/docs/tools.md +17 -0
- data/exe/rbs +7 -0
- data/ext/rbs_extension/extconf.rb +15 -0
- data/ext/rbs_extension/lexer.c +2728 -0
- data/ext/rbs_extension/lexer.h +179 -0
- data/ext/rbs_extension/lexer.re +147 -0
- data/ext/rbs_extension/lexstate.c +175 -0
- data/ext/rbs_extension/location.c +325 -0
- data/ext/rbs_extension/location.h +85 -0
- data/ext/rbs_extension/main.c +33 -0
- data/ext/rbs_extension/parser.c +2973 -0
- data/ext/rbs_extension/parser.h +18 -0
- data/ext/rbs_extension/parserstate.c +397 -0
- data/ext/rbs_extension/parserstate.h +163 -0
- data/ext/rbs_extension/rbs_extension.h +31 -0
- data/ext/rbs_extension/unescape.c +32 -0
- data/goodcheck.yml +91 -0
- data/include/rbs/constants.h +82 -0
- data/include/rbs/ruby_objs.h +72 -0
- data/include/rbs/util/rbs_constant_pool.h +219 -0
- data/include/rbs.h +7 -0
- data/lib/rbs/ancestor_graph.rb +92 -0
- data/lib/rbs/annotate/annotations.rb +199 -0
- data/lib/rbs/annotate/formatter.rb +92 -0
- data/lib/rbs/annotate/rdoc_annotator.rb +400 -0
- data/lib/rbs/annotate/rdoc_source.rb +131 -0
- data/lib/rbs/annotate.rb +8 -0
- data/lib/rbs/ast/annotation.rb +29 -0
- data/lib/rbs/ast/comment.rb +29 -0
- data/lib/rbs/ast/declarations.rb +467 -0
- data/lib/rbs/ast/directives.rb +49 -0
- data/lib/rbs/ast/members.rb +451 -0
- data/lib/rbs/ast/type_param.rb +225 -0
- data/lib/rbs/ast/visitor.rb +137 -0
- data/lib/rbs/buffer.rb +67 -0
- data/lib/rbs/builtin_names.rb +58 -0
- data/lib/rbs/cli/colored_io.rb +48 -0
- data/lib/rbs/cli/diff.rb +83 -0
- data/lib/rbs/cli/validate.rb +357 -0
- data/lib/rbs/cli.rb +1223 -0
- data/lib/rbs/collection/cleaner.rb +38 -0
- data/lib/rbs/collection/config/lockfile.rb +92 -0
- data/lib/rbs/collection/config/lockfile_generator.rb +218 -0
- data/lib/rbs/collection/config.rb +81 -0
- data/lib/rbs/collection/installer.rb +32 -0
- data/lib/rbs/collection/sources/base.rb +14 -0
- data/lib/rbs/collection/sources/git.rb +258 -0
- data/lib/rbs/collection/sources/local.rb +81 -0
- data/lib/rbs/collection/sources/rubygems.rb +48 -0
- data/lib/rbs/collection/sources/stdlib.rb +50 -0
- data/lib/rbs/collection/sources.rb +38 -0
- data/lib/rbs/collection.rb +16 -0
- data/lib/rbs/constant.rb +28 -0
- data/lib/rbs/definition.rb +401 -0
- data/lib/rbs/definition_builder/ancestor_builder.rb +620 -0
- data/lib/rbs/definition_builder/method_builder.rb +254 -0
- data/lib/rbs/definition_builder.rb +845 -0
- data/lib/rbs/diff.rb +125 -0
- data/lib/rbs/environment/use_map.rb +77 -0
- data/lib/rbs/environment.rb +829 -0
- data/lib/rbs/environment_loader.rb +173 -0
- data/lib/rbs/environment_walker.rb +155 -0
- data/lib/rbs/errors.rb +645 -0
- data/lib/rbs/factory.rb +18 -0
- data/lib/rbs/file_finder.rb +28 -0
- data/lib/rbs/location_aux.rb +138 -0
- data/lib/rbs/locator.rb +243 -0
- data/lib/rbs/method_type.rb +143 -0
- data/lib/rbs/namespace.rb +125 -0
- data/lib/rbs/parser/lex_result.rb +15 -0
- data/lib/rbs/parser/token.rb +23 -0
- data/lib/rbs/parser_aux.rb +114 -0
- data/lib/rbs/prototype/helpers.rb +140 -0
- data/lib/rbs/prototype/node_usage.rb +99 -0
- data/lib/rbs/prototype/rb.rb +840 -0
- data/lib/rbs/prototype/rbi.rb +641 -0
- 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 +667 -0
- data/lib/rbs/repository.rb +127 -0
- data/lib/rbs/resolver/constant_resolver.rb +219 -0
- data/lib/rbs/resolver/type_name_resolver.rb +91 -0
- data/lib/rbs/sorter.rb +198 -0
- data/lib/rbs/substitution.rb +83 -0
- data/lib/rbs/subtractor.rb +201 -0
- data/lib/rbs/test/errors.rb +80 -0
- data/lib/rbs/test/guaranteed.rb +30 -0
- data/lib/rbs/test/hook.rb +212 -0
- data/lib/rbs/test/observer.rb +19 -0
- data/lib/rbs/test/setup.rb +84 -0
- data/lib/rbs/test/setup_helper.rb +50 -0
- data/lib/rbs/test/tester.rb +167 -0
- data/lib/rbs/test/type_check.rb +435 -0
- data/lib/rbs/test.rb +112 -0
- data/lib/rbs/type_alias_dependency.rb +100 -0
- data/lib/rbs/type_alias_regularity.rb +126 -0
- data/lib/rbs/type_name.rb +109 -0
- data/lib/rbs/types.rb +1596 -0
- data/lib/rbs/unit_test/convertibles.rb +176 -0
- data/lib/rbs/unit_test/spy.rb +138 -0
- data/lib/rbs/unit_test/type_assertions.rb +347 -0
- data/lib/rbs/unit_test/with_aliases.rb +143 -0
- data/lib/rbs/unit_test.rb +6 -0
- data/lib/rbs/validator.rb +186 -0
- data/lib/rbs/variance_calculator.rb +189 -0
- data/lib/rbs/vendorer.rb +71 -0
- data/lib/rbs/version.rb +5 -0
- data/lib/rbs/writer.rb +424 -0
- data/lib/rbs.rb +94 -0
- data/lib/rdoc/discover.rb +20 -0
- data/lib/rdoc_plugin/parser.rb +163 -0
- data/rbs-relaxed.gemspec +48 -0
- data/schema/annotation.json +14 -0
- data/schema/comment.json +26 -0
- data/schema/decls.json +326 -0
- data/schema/function.json +87 -0
- data/schema/location.json +56 -0
- data/schema/members.json +266 -0
- data/schema/methodType.json +50 -0
- data/schema/typeParam.json +36 -0
- data/schema/types.json +317 -0
- data/sig/ancestor_builder.rbs +163 -0
- data/sig/ancestor_graph.rbs +60 -0
- data/sig/annotate/annotations.rbs +102 -0
- data/sig/annotate/formatter.rbs +24 -0
- data/sig/annotate/rdoc_annotater.rbs +82 -0
- data/sig/annotate/rdoc_source.rbs +30 -0
- data/sig/annotation.rbs +27 -0
- data/sig/buffer.rbs +32 -0
- data/sig/builtin_names.rbs +44 -0
- 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 +87 -0
- data/sig/collection/cleaner.rbs +13 -0
- data/sig/collection/config/lockfile.rbs +74 -0
- data/sig/collection/config/lockfile_generator.rbs +66 -0
- data/sig/collection/config.rbs +46 -0
- data/sig/collection/installer.rbs +17 -0
- data/sig/collection/sources.rbs +214 -0
- data/sig/collection.rbs +4 -0
- data/sig/comment.rbs +26 -0
- data/sig/constant.rbs +21 -0
- data/sig/declarations.rbs +267 -0
- data/sig/definition.rbs +173 -0
- data/sig/definition_builder.rbs +165 -0
- data/sig/diff.rbs +28 -0
- data/sig/directives.rbs +77 -0
- data/sig/environment.rbs +279 -0
- data/sig/environment_loader.rbs +111 -0
- data/sig/environment_walker.rbs +65 -0
- data/sig/errors.rbs +405 -0
- data/sig/factory.rbs +5 -0
- data/sig/file_finder.rbs +28 -0
- data/sig/location.rbs +110 -0
- data/sig/locator.rbs +58 -0
- data/sig/manifest.yaml +7 -0
- data/sig/members.rbs +258 -0
- data/sig/method_builder.rbs +84 -0
- data/sig/method_types.rbs +58 -0
- data/sig/namespace.rbs +146 -0
- data/sig/parser.rbs +100 -0
- data/sig/prototype/helpers.rbs +27 -0
- data/sig/prototype/node_usage.rbs +20 -0
- data/sig/prototype/rb.rbs +96 -0
- data/sig/prototype/rbi.rbs +75 -0
- data/sig/prototype/runtime.rbs +182 -0
- data/sig/rbs.rbs +21 -0
- data/sig/rdoc/rbs.rbs +67 -0
- data/sig/repository.rbs +85 -0
- data/sig/resolver/constant_resolver.rbs +92 -0
- data/sig/resolver/context.rbs +34 -0
- data/sig/resolver/type_name_resolver.rbs +35 -0
- data/sig/shims/bundler.rbs +38 -0
- data/sig/shims/enumerable.rbs +5 -0
- data/sig/shims/rubygems.rbs +19 -0
- data/sig/sorter.rbs +41 -0
- data/sig/substitution.rbs +48 -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 +53 -0
- data/sig/type_alias_regularity.rbs +98 -0
- data/sig/type_param.rbs +110 -0
- data/sig/typename.rbs +79 -0
- data/sig/types.rbs +579 -0
- data/sig/unit_test/convertibles.rbs +154 -0
- data/sig/unit_test/spy.rbs +30 -0
- data/sig/unit_test/type_assertions.rbs +196 -0
- data/sig/unit_test/with_aliases.rbs +136 -0
- data/sig/use_map.rbs +35 -0
- data/sig/util.rbs +9 -0
- data/sig/validator.rbs +63 -0
- data/sig/variance_calculator.rbs +87 -0
- data/sig/vendorer.rbs +51 -0
- data/sig/version.rbs +3 -0
- data/sig/visitor.rbs +47 -0
- data/sig/writer.rbs +127 -0
- data/src/constants.c +153 -0
- data/src/ruby_objs.c +795 -0
- data/src/util/rbs_constant_pool.c +342 -0
- data/stdlib/abbrev/0/abbrev.rbs +66 -0
- data/stdlib/abbrev/0/array.rbs +26 -0
- data/stdlib/base64/0/base64.rbs +355 -0
- data/stdlib/benchmark/0/benchmark.rbs +452 -0
- data/stdlib/bigdecimal/0/big_decimal.rbs +1629 -0
- data/stdlib/bigdecimal-math/0/big_math.rbs +119 -0
- data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
- data/stdlib/cgi/0/core.rbs +1285 -0
- data/stdlib/cgi/0/manifest.yaml +3 -0
- data/stdlib/coverage/0/coverage.rbs +263 -0
- data/stdlib/csv/0/csv.rbs +3776 -0
- data/stdlib/csv/0/manifest.yaml +3 -0
- data/stdlib/date/0/date.rbs +1585 -0
- data/stdlib/date/0/date_time.rbs +616 -0
- data/stdlib/date/0/time.rbs +26 -0
- data/stdlib/dbm/0/dbm.rbs +421 -0
- 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 +343 -0
- data/stdlib/digest/0/digest.rbs +577 -0
- data/stdlib/erb/0/erb.rbs +532 -0
- data/stdlib/etc/0/etc.rbs +865 -0
- data/stdlib/fileutils/0/fileutils.rbs +1734 -0
- data/stdlib/find/0/find.rbs +49 -0
- data/stdlib/forwardable/0/forwardable.rbs +268 -0
- data/stdlib/io-console/0/io-console.rbs +414 -0
- data/stdlib/ipaddr/0/ipaddr.rbs +428 -0
- data/stdlib/json/0/json.rbs +1916 -0
- data/stdlib/kconv/0/kconv.rbs +166 -0
- data/stdlib/logger/0/formatter.rbs +45 -0
- data/stdlib/logger/0/log_device.rbs +100 -0
- data/stdlib/logger/0/logger.rbs +796 -0
- data/stdlib/logger/0/manifest.yaml +2 -0
- data/stdlib/logger/0/period.rbs +17 -0
- data/stdlib/logger/0/severity.rbs +34 -0
- data/stdlib/minitest/0/kernel.rbs +42 -0
- data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
- data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
- data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
- data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
- data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
- data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
- data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
- 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/expectation.rbs +2 -0
- data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
- data/stdlib/minitest/0/minitest/guard.rbs +64 -0
- data/stdlib/minitest/0/minitest/mock.rbs +64 -0
- data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
- data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
- data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
- data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
- data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
- data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
- data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
- data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
- data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
- data/stdlib/minitest/0/minitest/result.rbs +28 -0
- data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
- data/stdlib/minitest/0/minitest/skip.rbs +6 -0
- data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
- data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
- data/stdlib/minitest/0/minitest/spec.rbs +11 -0
- data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
- data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
- data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
- data/stdlib/minitest/0/minitest/test.rbs +69 -0
- data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
- data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
- data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
- data/stdlib/minitest/0/minitest/unit.rbs +4 -0
- data/stdlib/minitest/0/minitest.rbs +115 -0
- data/stdlib/monitor/0/monitor.rbs +363 -0
- data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
- data/stdlib/net-http/0/manifest.yaml +3 -0
- data/stdlib/net-http/0/net-http.rbs +5552 -0
- 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 +402 -0
- data/stdlib/objspace/0/objspace.rbs +487 -0
- 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 +3 -0
- data/stdlib/openssl/0/openssl.rbs +12113 -0
- data/stdlib/optparse/0/optparse.rbs +1725 -0
- data/stdlib/pathname/0/pathname.rbs +1406 -0
- data/stdlib/pp/0/manifest.yaml +2 -0
- data/stdlib/pp/0/pp.rbs +300 -0
- data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
- data/stdlib/pstore/0/pstore.rbs +603 -0
- data/stdlib/psych/0/core_ext.rbs +12 -0
- data/stdlib/psych/0/dbm.rbs +237 -0
- data/stdlib/psych/0/manifest.yaml +3 -0
- data/stdlib/psych/0/psych.rbs +402 -0
- data/stdlib/psych/0/store.rbs +59 -0
- data/stdlib/pty/0/pty.rbs +237 -0
- 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 +391 -0
- 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/manifest.yaml +3 -0
- data/stdlib/resolv/0/resolv.rbs +1830 -0
- data/stdlib/ripper/0/ripper.rbs +1648 -0
- data/stdlib/securerandom/0/securerandom.rbs +62 -0
- data/stdlib/shellwords/0/shellwords.rbs +229 -0
- data/stdlib/singleton/0/singleton.rbs +131 -0
- data/stdlib/socket/0/addrinfo.rbs +666 -0
- data/stdlib/socket/0/basic_socket.rbs +590 -0
- data/stdlib/socket/0/constants.rbs +2295 -0
- data/stdlib/socket/0/ip_socket.rbs +92 -0
- data/stdlib/socket/0/socket.rbs +4157 -0
- data/stdlib/socket/0/socket_error.rbs +5 -0
- data/stdlib/socket/0/tcp_server.rbs +192 -0
- data/stdlib/socket/0/tcp_socket.rbs +79 -0
- data/stdlib/socket/0/udp_socket.rbs +133 -0
- data/stdlib/socket/0/unix_server.rbs +169 -0
- data/stdlib/socket/0/unix_socket.rbs +172 -0
- data/stdlib/stringio/0/stringio.rbs +567 -0
- data/stdlib/strscan/0/string_scanner.rbs +1627 -0
- data/stdlib/tempfile/0/tempfile.rbs +479 -0
- data/stdlib/time/0/time.rbs +432 -0
- data/stdlib/timeout/0/timeout.rbs +81 -0
- data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
- data/stdlib/tsort/0/cyclic.rbs +5 -0
- data/stdlib/tsort/0/interfaces.rbs +20 -0
- data/stdlib/tsort/0/tsort.rbs +409 -0
- data/stdlib/uri/0/common.rbs +582 -0
- data/stdlib/uri/0/file.rbs +118 -0
- data/stdlib/uri/0/ftp.rbs +13 -0
- data/stdlib/uri/0/generic.rbs +1108 -0
- data/stdlib/uri/0/http.rbs +104 -0
- data/stdlib/uri/0/https.rbs +14 -0
- data/stdlib/uri/0/ldap.rbs +230 -0
- data/stdlib/uri/0/ldaps.rbs +14 -0
- data/stdlib/uri/0/mailto.rbs +92 -0
- data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
- data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
- data/stdlib/uri/0/ws.rbs +13 -0
- data/stdlib/uri/0/wss.rbs +9 -0
- data/stdlib/yaml/0/manifest.yaml +2 -0
- data/stdlib/yaml/0/yaml.rbs +1 -0
- 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 +449 -0
- data/stdlib/zlib/0/zstream.rbs +200 -0
- metadata +532 -0
@@ -0,0 +1,432 @@
|
|
1
|
+
%a{annotate:rdoc:skip}
|
2
|
+
class Time
|
3
|
+
interface _TimeLike
|
4
|
+
def year: () -> Integer
|
5
|
+
|
6
|
+
def mon: () -> Integer
|
7
|
+
|
8
|
+
def day: () -> Integer
|
9
|
+
end
|
10
|
+
|
11
|
+
# <!--
|
12
|
+
# rdoc-file=lib/time.rb
|
13
|
+
# - zone_offset(zone, year=self.now.year)
|
14
|
+
# -->
|
15
|
+
# Return the number of seconds the specified time zone differs from UTC.
|
16
|
+
#
|
17
|
+
# Numeric time zones that include minutes, such as `-10:00` or `+1330` will
|
18
|
+
# work, as will simpler hour-only time zones like `-10` or `+13`.
|
19
|
+
#
|
20
|
+
# Textual time zones listed in ZoneOffset are also supported.
|
21
|
+
#
|
22
|
+
# If the time zone does not match any of the above, `zone_offset` will check if
|
23
|
+
# the local time zone (both with and without potential Daylight Saving Time
|
24
|
+
# changes being in effect) matches `zone`. Specifying a value for `year` will
|
25
|
+
# change the year used to find the local time zone.
|
26
|
+
#
|
27
|
+
# If `zone_offset` is unable to determine the offset, nil will be returned.
|
28
|
+
#
|
29
|
+
# require 'time'
|
30
|
+
#
|
31
|
+
# Time.zone_offset("EST") #=> -18000
|
32
|
+
#
|
33
|
+
# You must require 'time' to use this method.
|
34
|
+
#
|
35
|
+
def self.zone_offset: (String zone, ?Integer year) -> Integer
|
36
|
+
|
37
|
+
# <!--
|
38
|
+
# rdoc-file=lib/time.rb
|
39
|
+
# - parse(date, now=self.now) { |year| ... }
|
40
|
+
# -->
|
41
|
+
# Takes a string representation of a Time and attempts to parse it using a
|
42
|
+
# heuristic.
|
43
|
+
#
|
44
|
+
# This method **does not** function as a validator. If the input string does
|
45
|
+
# not match valid formats strictly, you may get a cryptic result. Should
|
46
|
+
# consider to use Time.strptime instead of this method as possible.
|
47
|
+
#
|
48
|
+
# require 'time'
|
49
|
+
#
|
50
|
+
# Time.parse("2010-10-31") #=> 2010-10-31 00:00:00 -0500
|
51
|
+
#
|
52
|
+
# Any missing pieces of the date are inferred based on the current date.
|
53
|
+
#
|
54
|
+
# require 'time'
|
55
|
+
#
|
56
|
+
# # assuming the current date is "2011-10-31"
|
57
|
+
# Time.parse("12:00") #=> 2011-10-31 12:00:00 -0500
|
58
|
+
#
|
59
|
+
# We can change the date used to infer our missing elements by passing a second
|
60
|
+
# object that responds to #mon, #day and #year, such as Date, Time or DateTime.
|
61
|
+
# We can also use our own object.
|
62
|
+
#
|
63
|
+
# require 'time'
|
64
|
+
#
|
65
|
+
# class MyDate
|
66
|
+
# attr_reader :mon, :day, :year
|
67
|
+
#
|
68
|
+
# def initialize(mon, day, year)
|
69
|
+
# @mon, @day, @year = mon, day, year
|
70
|
+
# end
|
71
|
+
# end
|
72
|
+
#
|
73
|
+
# d = Date.parse("2010-10-28")
|
74
|
+
# t = Time.parse("2010-10-29")
|
75
|
+
# dt = DateTime.parse("2010-10-30")
|
76
|
+
# md = MyDate.new(10,31,2010)
|
77
|
+
#
|
78
|
+
# Time.parse("12:00", d) #=> 2010-10-28 12:00:00 -0500
|
79
|
+
# Time.parse("12:00", t) #=> 2010-10-29 12:00:00 -0500
|
80
|
+
# Time.parse("12:00", dt) #=> 2010-10-30 12:00:00 -0500
|
81
|
+
# Time.parse("12:00", md) #=> 2010-10-31 12:00:00 -0500
|
82
|
+
#
|
83
|
+
# If a block is given, the year described in `date` is converted by the block.
|
84
|
+
# This is specifically designed for handling two digit years. For example, if
|
85
|
+
# you wanted to treat all two digit years prior to 70 as the year 2000+ you
|
86
|
+
# could write this:
|
87
|
+
#
|
88
|
+
# require 'time'
|
89
|
+
#
|
90
|
+
# Time.parse("01-10-31") {|year| year + (year < 70 ? 2000 : 1900)}
|
91
|
+
# #=> 2001-10-31 00:00:00 -0500
|
92
|
+
# Time.parse("70-10-31") {|year| year + (year < 70 ? 2000 : 1900)}
|
93
|
+
# #=> 1970-10-31 00:00:00 -0500
|
94
|
+
#
|
95
|
+
# If the upper components of the given time are broken or missing, they are
|
96
|
+
# supplied with those of `now`. For the lower components, the minimum values (1
|
97
|
+
# or 0) are assumed if broken or missing. For example:
|
98
|
+
#
|
99
|
+
# require 'time'
|
100
|
+
#
|
101
|
+
# # Suppose it is "Thu Nov 29 14:33:20 2001" now and
|
102
|
+
# # your time zone is EST which is GMT-5.
|
103
|
+
# now = Time.parse("Thu Nov 29 14:33:20 2001")
|
104
|
+
# Time.parse("16:30", now) #=> 2001-11-29 16:30:00 -0500
|
105
|
+
# Time.parse("7/23", now) #=> 2001-07-23 00:00:00 -0500
|
106
|
+
# Time.parse("Aug 31", now) #=> 2001-08-31 00:00:00 -0500
|
107
|
+
# Time.parse("Aug 2000", now) #=> 2000-08-01 00:00:00 -0500
|
108
|
+
#
|
109
|
+
# Since there are numerous conflicts among locally defined time zone
|
110
|
+
# abbreviations all over the world, this method is not intended to understand
|
111
|
+
# all of them. For example, the abbreviation "CST" is used variously as:
|
112
|
+
#
|
113
|
+
# -06:00 in America/Chicago,
|
114
|
+
# -05:00 in America/Havana,
|
115
|
+
# +08:00 in Asia/Harbin,
|
116
|
+
# +09:30 in Australia/Darwin,
|
117
|
+
# +10:30 in Australia/Adelaide,
|
118
|
+
# etc.
|
119
|
+
#
|
120
|
+
# Based on this fact, this method only understands the time zone abbreviations
|
121
|
+
# described in RFC 822 and the system time zone, in the order named. (i.e. a
|
122
|
+
# definition in RFC 822 overrides the system time zone definition.) The system
|
123
|
+
# time zone is taken from `Time.local(year, 1, 1).zone` and `Time.local(year, 7,
|
124
|
+
# 1).zone`. If the extracted time zone abbreviation does not match any of them,
|
125
|
+
# it is ignored and the given time is regarded as a local time.
|
126
|
+
#
|
127
|
+
# ArgumentError is raised if Date._parse cannot extract information from `date`
|
128
|
+
# or if the Time class cannot represent specified date.
|
129
|
+
#
|
130
|
+
# This method can be used as a fail-safe for other parsing methods as:
|
131
|
+
#
|
132
|
+
# Time.rfc2822(date) rescue Time.parse(date)
|
133
|
+
# Time.httpdate(date) rescue Time.parse(date)
|
134
|
+
# Time.xmlschema(date) rescue Time.parse(date)
|
135
|
+
#
|
136
|
+
# A failure of Time.parse should be checked, though.
|
137
|
+
#
|
138
|
+
# You must require 'time' to use this method.
|
139
|
+
#
|
140
|
+
def self.parse: (String date, ?_TimeLike now) ?{ (Integer) -> Integer } -> Time
|
141
|
+
|
142
|
+
# <!--
|
143
|
+
# rdoc-file=lib/time.rb
|
144
|
+
# - strptime(date, format, now=self.now) { |year| ... }
|
145
|
+
# -->
|
146
|
+
# Works similar to `parse` except that instead of using a heuristic to detect
|
147
|
+
# the format of the input string, you provide a second argument that describes
|
148
|
+
# the format of the string.
|
149
|
+
#
|
150
|
+
# Raises ArgumentError if the date or format is invalid.
|
151
|
+
#
|
152
|
+
# If a block is given, the year described in `date` is converted by the block.
|
153
|
+
# For example:
|
154
|
+
#
|
155
|
+
# Time.strptime(...) {|y| y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y}
|
156
|
+
#
|
157
|
+
# Below is a list of the formatting options:
|
158
|
+
#
|
159
|
+
# %a
|
160
|
+
# : The abbreviated weekday name ("Sun")
|
161
|
+
#
|
162
|
+
# %A
|
163
|
+
# : The full weekday name ("Sunday")
|
164
|
+
#
|
165
|
+
# %b
|
166
|
+
# : The abbreviated month name ("Jan")
|
167
|
+
#
|
168
|
+
# %B
|
169
|
+
# : The full month name ("January")
|
170
|
+
#
|
171
|
+
# %c
|
172
|
+
# : The preferred local date and time representation
|
173
|
+
#
|
174
|
+
# %C
|
175
|
+
# : Century (20 in 2009)
|
176
|
+
#
|
177
|
+
# %d
|
178
|
+
# : Day of the month (01..31)
|
179
|
+
#
|
180
|
+
# %D
|
181
|
+
# : Date (%m/%d/%y)
|
182
|
+
#
|
183
|
+
# %e
|
184
|
+
# : Day of the month, blank-padded ( 1..31)
|
185
|
+
#
|
186
|
+
# %F
|
187
|
+
# : Equivalent to %Y-%m-%d (the ISO 8601 date format)
|
188
|
+
#
|
189
|
+
# %g
|
190
|
+
# : The last two digits of the commercial year
|
191
|
+
#
|
192
|
+
# %G
|
193
|
+
# : The week-based year according to ISO-8601 (week 1 starts on Monday and
|
194
|
+
# includes January 4)
|
195
|
+
#
|
196
|
+
# %h
|
197
|
+
# : Equivalent to %b
|
198
|
+
#
|
199
|
+
# %H
|
200
|
+
# : Hour of the day, 24-hour clock (00..23)
|
201
|
+
#
|
202
|
+
# %I
|
203
|
+
# : Hour of the day, 12-hour clock (01..12)
|
204
|
+
#
|
205
|
+
# %j
|
206
|
+
# : Day of the year (001..366)
|
207
|
+
#
|
208
|
+
# %k
|
209
|
+
# : hour, 24-hour clock, blank-padded ( 0..23)
|
210
|
+
#
|
211
|
+
# %l
|
212
|
+
# : hour, 12-hour clock, blank-padded ( 0..12)
|
213
|
+
#
|
214
|
+
# %L
|
215
|
+
# : Millisecond of the second (000..999)
|
216
|
+
#
|
217
|
+
# %m
|
218
|
+
# : Month of the year (01..12)
|
219
|
+
#
|
220
|
+
# %M
|
221
|
+
# : Minute of the hour (00..59)
|
222
|
+
#
|
223
|
+
# %n
|
224
|
+
# : Newline (n)
|
225
|
+
#
|
226
|
+
# %N
|
227
|
+
# : Fractional seconds digits
|
228
|
+
#
|
229
|
+
# %p
|
230
|
+
# : Meridian indicator ("AM" or "PM")
|
231
|
+
#
|
232
|
+
# %P
|
233
|
+
# : Meridian indicator ("am" or "pm")
|
234
|
+
#
|
235
|
+
# %r
|
236
|
+
# : time, 12-hour (same as %I:%M:%S %p)
|
237
|
+
#
|
238
|
+
# %R
|
239
|
+
# : time, 24-hour (%H:%M)
|
240
|
+
#
|
241
|
+
# %s
|
242
|
+
# : Number of seconds since 1970-01-01 00:00:00 UTC.
|
243
|
+
#
|
244
|
+
# %S
|
245
|
+
# : Second of the minute (00..60)
|
246
|
+
#
|
247
|
+
# %t
|
248
|
+
# : Tab character (t)
|
249
|
+
#
|
250
|
+
# %T
|
251
|
+
# : time, 24-hour (%H:%M:%S)
|
252
|
+
#
|
253
|
+
# %u
|
254
|
+
# : Day of the week as a decimal, Monday being 1. (1..7)
|
255
|
+
#
|
256
|
+
# %U
|
257
|
+
# : Week number of the current year, starting with the first Sunday as the
|
258
|
+
# first day of the first week (00..53)
|
259
|
+
#
|
260
|
+
# %v
|
261
|
+
# : VMS date (%e-%b-%Y)
|
262
|
+
#
|
263
|
+
# %V
|
264
|
+
# : Week number of year according to ISO 8601 (01..53)
|
265
|
+
#
|
266
|
+
# %W
|
267
|
+
# : Week number of the current year, starting with the first Monday as the
|
268
|
+
# first day of the first week (00..53)
|
269
|
+
#
|
270
|
+
# %w
|
271
|
+
# : Day of the week (Sunday is 0, 0..6)
|
272
|
+
#
|
273
|
+
# %x
|
274
|
+
# : Preferred representation for the date alone, no time
|
275
|
+
#
|
276
|
+
# %X
|
277
|
+
# : Preferred representation for the time alone, no date
|
278
|
+
#
|
279
|
+
# %y
|
280
|
+
# : Year without a century (00..99)
|
281
|
+
#
|
282
|
+
# %Y
|
283
|
+
# : Year which may include century, if provided
|
284
|
+
#
|
285
|
+
# %z
|
286
|
+
# : Time zone as hour offset from UTC (e.g. +0900)
|
287
|
+
#
|
288
|
+
# %Z
|
289
|
+
# : Time zone name
|
290
|
+
#
|
291
|
+
# %%
|
292
|
+
# : Literal "%" character
|
293
|
+
#
|
294
|
+
# %+
|
295
|
+
# : date(1) (%a %b %e %H:%M:%S %Z %Y)
|
296
|
+
#
|
297
|
+
#
|
298
|
+
# require 'time'
|
299
|
+
#
|
300
|
+
# Time.strptime("2000-10-31", "%Y-%m-%d") #=> 2000-10-31 00:00:00 -0500
|
301
|
+
#
|
302
|
+
# You must require 'time' to use this method.
|
303
|
+
#
|
304
|
+
def self.strptime: (String date, String format, ?_TimeLike now) ?{ (Integer) -> Integer } -> Time
|
305
|
+
|
306
|
+
# <!--
|
307
|
+
# rdoc-file=lib/time.rb
|
308
|
+
# - rfc2822(date)
|
309
|
+
# -->
|
310
|
+
# Parses `date` as date-time defined by RFC 2822 and converts it to a Time
|
311
|
+
# object. The format is identical to the date format defined by RFC 822 and
|
312
|
+
# updated by RFC 1123.
|
313
|
+
#
|
314
|
+
# ArgumentError is raised if `date` is not compliant with RFC 2822 or if the
|
315
|
+
# Time class cannot represent specified date.
|
316
|
+
#
|
317
|
+
# See #rfc2822 for more information on this format.
|
318
|
+
#
|
319
|
+
# require 'time'
|
320
|
+
#
|
321
|
+
# Time.rfc2822("Wed, 05 Oct 2011 22:26:12 -0400")
|
322
|
+
# #=> 2010-10-05 22:26:12 -0400
|
323
|
+
#
|
324
|
+
# You must require 'time' to use this method.
|
325
|
+
#
|
326
|
+
def self.rfc2822: (String date) -> Time
|
327
|
+
|
328
|
+
# <!--
|
329
|
+
# rdoc-file=lib/time.rb
|
330
|
+
# - rfc822(date)
|
331
|
+
# -->
|
332
|
+
#
|
333
|
+
alias self.rfc822 self.rfc2822
|
334
|
+
|
335
|
+
# <!--
|
336
|
+
# rdoc-file=lib/time.rb
|
337
|
+
# - httpdate(date)
|
338
|
+
# -->
|
339
|
+
# Parses `date` as an HTTP-date defined by RFC 2616 and converts it to a Time
|
340
|
+
# object.
|
341
|
+
#
|
342
|
+
# ArgumentError is raised if `date` is not compliant with RFC 2616 or if the
|
343
|
+
# Time class cannot represent specified date.
|
344
|
+
#
|
345
|
+
# See #httpdate for more information on this format.
|
346
|
+
#
|
347
|
+
# require 'time'
|
348
|
+
#
|
349
|
+
# Time.httpdate("Thu, 06 Oct 2011 02:26:12 GMT")
|
350
|
+
# #=> 2011-10-06 02:26:12 UTC
|
351
|
+
#
|
352
|
+
# You must require 'time' to use this method.
|
353
|
+
#
|
354
|
+
def self.httpdate: (String date) -> Time
|
355
|
+
|
356
|
+
# <!--
|
357
|
+
# rdoc-file=lib/time.rb
|
358
|
+
# - xmlschema(time)
|
359
|
+
# -->
|
360
|
+
# Parses `time` as a dateTime defined by the XML Schema and converts it to a
|
361
|
+
# Time object. The format is a restricted version of the format defined by ISO
|
362
|
+
# 8601.
|
363
|
+
#
|
364
|
+
# ArgumentError is raised if `time` is not compliant with the format or if the
|
365
|
+
# Time class cannot represent the specified time.
|
366
|
+
#
|
367
|
+
# See #xmlschema for more information on this format.
|
368
|
+
#
|
369
|
+
# require 'time'
|
370
|
+
#
|
371
|
+
# Time.xmlschema("2011-10-05T22:26:12-04:00")
|
372
|
+
# #=> 2011-10-05 22:26:12-04:00
|
373
|
+
#
|
374
|
+
# You must require 'time' to use this method.
|
375
|
+
#
|
376
|
+
def self.xmlschema: (String date) -> Time
|
377
|
+
|
378
|
+
# <!--
|
379
|
+
# rdoc-file=lib/time.rb
|
380
|
+
# - iso8601(time)
|
381
|
+
# -->
|
382
|
+
#
|
383
|
+
alias self.iso8601 self.xmlschema
|
384
|
+
|
385
|
+
# <!--
|
386
|
+
# rdoc-file=lib/time.rb
|
387
|
+
# - rfc2822()
|
388
|
+
# -->
|
389
|
+
# Returns a string which represents the time as date-time defined by RFC 2822:
|
390
|
+
#
|
391
|
+
# day-of-week, DD month-name CCYY hh:mm:ss zone
|
392
|
+
#
|
393
|
+
# where zone is [+-]hhmm.
|
394
|
+
#
|
395
|
+
# If `self` is a UTC time, -0000 is used as zone.
|
396
|
+
#
|
397
|
+
# require 'time'
|
398
|
+
#
|
399
|
+
# t = Time.now
|
400
|
+
# t.rfc2822 # => "Wed, 05 Oct 2011 22:26:12 -0400"
|
401
|
+
#
|
402
|
+
# You must require 'time' to use this method.
|
403
|
+
#
|
404
|
+
def rfc2822: () -> String
|
405
|
+
|
406
|
+
# <!--
|
407
|
+
# rdoc-file=lib/time.rb
|
408
|
+
# - rfc822()
|
409
|
+
# -->
|
410
|
+
#
|
411
|
+
alias rfc822 rfc2822
|
412
|
+
|
413
|
+
# <!--
|
414
|
+
# rdoc-file=lib/time.rb
|
415
|
+
# - httpdate()
|
416
|
+
# -->
|
417
|
+
# Returns a string which represents the time as RFC 1123 date of HTTP-date
|
418
|
+
# defined by RFC 2616:
|
419
|
+
#
|
420
|
+
# day-of-week, DD month-name CCYY hh:mm:ss GMT
|
421
|
+
#
|
422
|
+
# Note that the result is always UTC (GMT).
|
423
|
+
#
|
424
|
+
# require 'time'
|
425
|
+
#
|
426
|
+
# t = Time.now
|
427
|
+
# t.httpdate # => "Thu, 06 Oct 2011 02:26:12 GMT"
|
428
|
+
#
|
429
|
+
# You must require 'time' to use this method.
|
430
|
+
#
|
431
|
+
def httpdate: () -> String
|
432
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# <!-- rdoc-file=lib/timeout.rb -->
|
2
|
+
# Timeout long-running blocks
|
3
|
+
#
|
4
|
+
# ## Synopsis
|
5
|
+
#
|
6
|
+
# require 'timeout'
|
7
|
+
# status = Timeout.timeout(5) {
|
8
|
+
# # Something that should be interrupted if it takes more than 5 seconds...
|
9
|
+
# }
|
10
|
+
#
|
11
|
+
# ## Description
|
12
|
+
#
|
13
|
+
# Timeout provides a way to auto-terminate a potentially long-running operation
|
14
|
+
# if it hasn't finished in a fixed amount of time.
|
15
|
+
#
|
16
|
+
# ## Copyright
|
17
|
+
#
|
18
|
+
# Copyright
|
19
|
+
# : (C) 2000 Network Applied Communication Laboratory, Inc.
|
20
|
+
#
|
21
|
+
# Copyright
|
22
|
+
# : (C) 2000 Information-technology Promotion Agency, Japan
|
23
|
+
#
|
24
|
+
module Timeout
|
25
|
+
# <!--
|
26
|
+
# rdoc-file=lib/timeout.rb
|
27
|
+
# - timeout(sec, klass = nil, message = nil) { |sec| ... }
|
28
|
+
# -->
|
29
|
+
# Perform an operation in a block, raising an error if it takes longer than
|
30
|
+
# `sec` seconds to complete.
|
31
|
+
#
|
32
|
+
# `sec`
|
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
|
+
#
|
38
|
+
# `klass`
|
39
|
+
# : Exception Class to raise if the block fails to terminate in `sec` seconds.
|
40
|
+
# Omitting will use the default, Timeout::Error
|
41
|
+
#
|
42
|
+
# `message`
|
43
|
+
# : Error message to raise with Exception Class. Omitting will use the
|
44
|
+
# default, "execution expired"
|
45
|
+
#
|
46
|
+
#
|
47
|
+
# Returns the result of the block **if** the block completed before `sec`
|
48
|
+
# seconds, otherwise throws an exception, based on the value of `klass`.
|
49
|
+
#
|
50
|
+
# The exception thrown to terminate the given block cannot be rescued inside the
|
51
|
+
# block unless `klass` is given explicitly. However, the block can use ensure to
|
52
|
+
# prevent the handling of the exception. For that reason, this method cannot be
|
53
|
+
# relied on to enforce timeouts for untrusted blocks.
|
54
|
+
#
|
55
|
+
# If a scheduler is defined, it will be used to handle the timeout by invoking
|
56
|
+
# Scheduler#timeout_after.
|
57
|
+
#
|
58
|
+
# Note that this is both a method of module Timeout, so you can `include
|
59
|
+
# Timeout` into your classes so they have a #timeout method, as well as a module
|
60
|
+
# method, so you can call it directly as Timeout.timeout().
|
61
|
+
#
|
62
|
+
def self?.timeout: [T] (Numeric? sec, ?singleton(Exception) klass, ?String message) { (Numeric sec) -> T } -> T
|
63
|
+
end
|
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
|
+
|
71
|
+
# <!-- rdoc-file=lib/timeout.rb -->
|
72
|
+
# Raised by Timeout.timeout when the block times out.
|
73
|
+
#
|
74
|
+
class Timeout::Error < RuntimeError
|
75
|
+
attr_reader thread: Thread?
|
76
|
+
end
|
77
|
+
|
78
|
+
# <!-- rdoc-file=lib/timeout.rb -->
|
79
|
+
# The version
|
80
|
+
#
|
81
|
+
Timeout::VERSION: String
|
@@ -0,0 +1,69 @@
|
|
1
|
+
%a{annotate:rdoc:skip}
|
2
|
+
class Dir
|
3
|
+
# <!--
|
4
|
+
# rdoc-file=lib/tmpdir.rb
|
5
|
+
# - tmpdir()
|
6
|
+
# -->
|
7
|
+
# Returns the operating system's temporary file path.
|
8
|
+
#
|
9
|
+
# require 'tmpdir'
|
10
|
+
# Dir.tmpdir # => "/tmp"
|
11
|
+
#
|
12
|
+
def self.tmpdir: () -> String
|
13
|
+
|
14
|
+
# <!--
|
15
|
+
# rdoc-file=lib/tmpdir.rb
|
16
|
+
# - mktmpdir(prefix_suffix=nil, *rest, **options) { |dup| ... }
|
17
|
+
# -->
|
18
|
+
# Dir.mktmpdir creates a temporary directory.
|
19
|
+
#
|
20
|
+
# require 'tmpdir'
|
21
|
+
# Dir.mktmpdir {|dir|
|
22
|
+
# # use the directory
|
23
|
+
# }
|
24
|
+
#
|
25
|
+
# The directory is created with 0700 permission. Application should not change
|
26
|
+
# the permission to make the temporary directory accessible from other users.
|
27
|
+
#
|
28
|
+
# The prefix and suffix of the name of the directory is specified by the
|
29
|
+
# optional first argument, *prefix_suffix*.
|
30
|
+
# * If it is not specified or nil, "d" is used as the prefix and no suffix is
|
31
|
+
# used.
|
32
|
+
# * If it is a string, it is used as the prefix and no suffix is used.
|
33
|
+
# * If it is an array, first element is used as the prefix and second element
|
34
|
+
# is used as a suffix.
|
35
|
+
#
|
36
|
+
# Dir.mktmpdir {|dir| dir is ".../d..." }
|
37
|
+
# Dir.mktmpdir("foo") {|dir| dir is ".../foo..." }
|
38
|
+
# Dir.mktmpdir(["foo", "bar"]) {|dir| dir is ".../foo...bar" }
|
39
|
+
#
|
40
|
+
# The directory is created under Dir.tmpdir or the optional second argument
|
41
|
+
# *tmpdir* if non-nil value is given.
|
42
|
+
#
|
43
|
+
# Dir.mktmpdir {|dir| dir is "#{Dir.tmpdir}/d..." }
|
44
|
+
# Dir.mktmpdir(nil, "/var/tmp") {|dir| dir is "/var/tmp/d..." }
|
45
|
+
#
|
46
|
+
# If a block is given, it is yielded with the path of the directory. The
|
47
|
+
# directory and its contents are removed using FileUtils.remove_entry before
|
48
|
+
# Dir.mktmpdir returns. The value of the block is returned.
|
49
|
+
#
|
50
|
+
# Dir.mktmpdir {|dir|
|
51
|
+
# # use the directory...
|
52
|
+
# open("#{dir}/foo", "w") { something using the file }
|
53
|
+
# }
|
54
|
+
#
|
55
|
+
# If a block is not given, The path of the directory is returned. In this case,
|
56
|
+
# Dir.mktmpdir doesn't remove the directory.
|
57
|
+
#
|
58
|
+
# dir = Dir.mktmpdir
|
59
|
+
# begin
|
60
|
+
# # use the directory...
|
61
|
+
# open("#{dir}/foo", "w") { something using the file }
|
62
|
+
# ensure
|
63
|
+
# # remove the directory.
|
64
|
+
# FileUtils.remove_entry dir
|
65
|
+
# end
|
66
|
+
#
|
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
|
69
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
%a{annotate:rdoc:skip}
|
2
|
+
module TSort[Node]
|
3
|
+
interface _Sortable[Node]
|
4
|
+
# #tsort_each_node is used to iterate for all nodes over a graph.
|
5
|
+
#
|
6
|
+
def tsort_each_node: () { (Node) -> void } -> void
|
7
|
+
|
8
|
+
# #tsort_each_child is used to iterate for child nodes of node.
|
9
|
+
#
|
10
|
+
def tsort_each_child: (Node) { (Node) -> void } -> void
|
11
|
+
end
|
12
|
+
|
13
|
+
interface _EachNode[Node]
|
14
|
+
def call: () { (Node) -> void } -> void
|
15
|
+
end
|
16
|
+
|
17
|
+
interface _EachChild[Node]
|
18
|
+
def call: (Node) { (Node) -> void } -> void
|
19
|
+
end
|
20
|
+
end
|