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
data/core/exception.rbs
ADDED
@@ -0,0 +1,485 @@
|
|
1
|
+
# <!-- rdoc-file=error.c -->
|
2
|
+
# Class `Exception` and its subclasses are used to indicate that an error or
|
3
|
+
# other problem has occurred, and may need to be handled. See
|
4
|
+
# [Exceptions](rdoc-ref:exceptions.md).
|
5
|
+
#
|
6
|
+
# An `Exception` object carries certain information:
|
7
|
+
#
|
8
|
+
# * The type (the exception's class), commonly StandardError, RuntimeError, or
|
9
|
+
# a subclass of one or the other; see [Built-In Exception Class
|
10
|
+
# Hierarchy](rdoc-ref:Exception@Built-In+Exception+Class+Hierarchy).
|
11
|
+
# * An optional descriptive message; see methods ::new, #message.
|
12
|
+
# * Optional backtrace information; see methods #backtrace,
|
13
|
+
# #backtrace_locations, #set_backtrace.
|
14
|
+
# * An optional cause; see method #cause.
|
15
|
+
#
|
16
|
+
# ## Built-In Exception Class Hierarchy
|
17
|
+
#
|
18
|
+
# The hierarchy of built-in subclasses of class `Exception`:
|
19
|
+
#
|
20
|
+
# * NoMemoryError
|
21
|
+
# * ScriptError
|
22
|
+
# * LoadError
|
23
|
+
# * NotImplementedError
|
24
|
+
# * SyntaxError
|
25
|
+
# * SecurityError
|
26
|
+
# * SignalException
|
27
|
+
# * Interrupt
|
28
|
+
# * StandardError
|
29
|
+
# * ArgumentError
|
30
|
+
# * UncaughtThrowError
|
31
|
+
# * EncodingError
|
32
|
+
# * FiberError
|
33
|
+
# * IOError
|
34
|
+
# * EOFError
|
35
|
+
# * IndexError
|
36
|
+
# * KeyError
|
37
|
+
# * StopIteration
|
38
|
+
# * ClosedQueueError
|
39
|
+
# * LocalJumpError
|
40
|
+
# * NameError
|
41
|
+
# * NoMethodError
|
42
|
+
# * RangeError
|
43
|
+
# * FloatDomainError
|
44
|
+
# * RegexpError
|
45
|
+
# * RuntimeError
|
46
|
+
# * FrozenError
|
47
|
+
# * SystemCallError
|
48
|
+
# * Errno (and its subclasses, representing system errors)
|
49
|
+
# * ThreadError
|
50
|
+
# * TypeError
|
51
|
+
# * ZeroDivisionError
|
52
|
+
# * SystemExit
|
53
|
+
# * SystemStackError
|
54
|
+
# * [fatal](rdoc-ref:fatal)
|
55
|
+
#
|
56
|
+
class Exception
|
57
|
+
# <!--
|
58
|
+
# rdoc-file=error.c
|
59
|
+
# - Exception.to_tty? -> true or false
|
60
|
+
# -->
|
61
|
+
# Returns `true` if exception messages will be sent to a terminal device.
|
62
|
+
#
|
63
|
+
def self.to_tty?: () -> bool
|
64
|
+
|
65
|
+
# <!--
|
66
|
+
# rdoc-file=error.c
|
67
|
+
# - exception(message = nil) -> self or new_exception
|
68
|
+
# -->
|
69
|
+
# Returns an exception object of the same class as `self`; useful for creating a
|
70
|
+
# similar exception, but with a different message.
|
71
|
+
#
|
72
|
+
# With `message` `nil`, returns `self`:
|
73
|
+
#
|
74
|
+
# x0 = StandardError.new('Boom') # => #<StandardError: Boom>
|
75
|
+
# x1 = x0.exception # => #<StandardError: Boom>
|
76
|
+
# x0.__id__ == x1.__id__ # => true
|
77
|
+
#
|
78
|
+
# With [string-convertible
|
79
|
+
# object](rdoc-ref:implicit_conversion.rdoc@String-Convertible+Objects)
|
80
|
+
# `message` (even the same as the original message), returns a new exception
|
81
|
+
# object whose class is the same as `self`, and whose message is the given
|
82
|
+
# `message`:
|
83
|
+
#
|
84
|
+
# x1 = x0.exception('Boom') # => #<StandardError: Boom>
|
85
|
+
# x0..equal?(x1) # => false
|
86
|
+
#
|
87
|
+
def self.exception: (?string | _ToS msg) -> instance
|
88
|
+
|
89
|
+
# <!--
|
90
|
+
# rdoc-file=error.c
|
91
|
+
# - self == object -> true or false
|
92
|
+
# -->
|
93
|
+
# Returns whether `object` is the same class as `self` and its #message and
|
94
|
+
# #backtrace are equal to those of `self`.
|
95
|
+
#
|
96
|
+
def ==: (untyped obj) -> bool
|
97
|
+
|
98
|
+
# <!--
|
99
|
+
# rdoc-file=error.c
|
100
|
+
# - backtrace -> array or nil
|
101
|
+
# -->
|
102
|
+
# Returns the backtrace (the list of code locations that led to the exception),
|
103
|
+
# as an array of strings.
|
104
|
+
#
|
105
|
+
# Example (assuming the code is stored in the file named `t.rb`):
|
106
|
+
#
|
107
|
+
# def division(numerator, denominator)
|
108
|
+
# numerator / denominator
|
109
|
+
# end
|
110
|
+
#
|
111
|
+
# begin
|
112
|
+
# division(1, 0)
|
113
|
+
# rescue => ex
|
114
|
+
# p ex.backtrace
|
115
|
+
# # ["t.rb:2:in 'Integer#/'", "t.rb:2:in 'Object#division'", "t.rb:6:in '<main>'"]
|
116
|
+
# loc = ex.backtrace.first
|
117
|
+
# p loc.class
|
118
|
+
# # String
|
119
|
+
# end
|
120
|
+
#
|
121
|
+
# The value returned by this method migth be adjusted when raising (see
|
122
|
+
# Kernel#raise), or during intermediate handling by #set_backtrace.
|
123
|
+
#
|
124
|
+
# See also #backtrace_locations that provide the same value, as structured
|
125
|
+
# objects. (Note though that two values might not be consistent with each other
|
126
|
+
# when backtraces are manually adjusted.)
|
127
|
+
#
|
128
|
+
# see [Backtraces](rdoc-ref:exceptions.md@Backtraces).
|
129
|
+
#
|
130
|
+
def backtrace: () -> Array[String]?
|
131
|
+
|
132
|
+
# <!--
|
133
|
+
# rdoc-file=error.c
|
134
|
+
# - backtrace_locations -> array or nil
|
135
|
+
# -->
|
136
|
+
# Returns the backtrace (the list of code locations that led to the exception),
|
137
|
+
# as an array of Thread::Backtrace::Location instances.
|
138
|
+
#
|
139
|
+
# Example (assuming the code is stored in the file named `t.rb`):
|
140
|
+
#
|
141
|
+
# def division(numerator, denominator)
|
142
|
+
# numerator / denominator
|
143
|
+
# end
|
144
|
+
#
|
145
|
+
# begin
|
146
|
+
# division(1, 0)
|
147
|
+
# rescue => ex
|
148
|
+
# p ex.backtrace_locations
|
149
|
+
# # ["t.rb:2:in 'Integer#/'", "t.rb:2:in 'Object#division'", "t.rb:6:in '<main>'"]
|
150
|
+
# loc = ex.backtrace_locations.first
|
151
|
+
# p loc.class
|
152
|
+
# # Thread::Backtrace::Location
|
153
|
+
# p loc.path
|
154
|
+
# # "t.rb"
|
155
|
+
# p loc.lineno
|
156
|
+
# # 2
|
157
|
+
# p loc.label
|
158
|
+
# # "Integer#/"
|
159
|
+
# end
|
160
|
+
#
|
161
|
+
# The value returned by this method might be adjusted when raising (see
|
162
|
+
# Kernel#raise), or during intermediate handling by #set_backtrace.
|
163
|
+
#
|
164
|
+
# See also #backtrace that provide the same value as an array of strings. (Note
|
165
|
+
# though that two values might not be consistent with each other when backtraces
|
166
|
+
# are manually adjusted.)
|
167
|
+
#
|
168
|
+
# See [Backtraces](rdoc-ref:exceptions.md@Backtraces).
|
169
|
+
#
|
170
|
+
def backtrace_locations: () -> Array[Thread::Backtrace::Location]?
|
171
|
+
|
172
|
+
# <!--
|
173
|
+
# rdoc-file=error.c
|
174
|
+
# - cause -> exception or nil
|
175
|
+
# -->
|
176
|
+
# Returns the previous value of global variable `$!`, which may be `nil` (see
|
177
|
+
# [Global Variables](rdoc-ref:exceptions.md@Global+Variables)):
|
178
|
+
#
|
179
|
+
# begin
|
180
|
+
# raise('Boom 0')
|
181
|
+
# rescue => x0
|
182
|
+
# puts "Exception: #{x0}; $!: #{$!}; cause: #{x0.cause.inspect}."
|
183
|
+
# begin
|
184
|
+
# raise('Boom 1')
|
185
|
+
# rescue => x1
|
186
|
+
# puts "Exception: #{x1}; $!: #{$!}; cause: #{x1.cause}."
|
187
|
+
# begin
|
188
|
+
# raise('Boom 2')
|
189
|
+
# rescue => x2
|
190
|
+
# puts "Exception: #{x2}; $!: #{$!}; cause: #{x2.cause}."
|
191
|
+
# end
|
192
|
+
# end
|
193
|
+
# end
|
194
|
+
#
|
195
|
+
# Output:
|
196
|
+
#
|
197
|
+
# Exception: Boom 0; $!: Boom 0; cause: nil.
|
198
|
+
# Exception: Boom 1; $!: Boom 1; cause: Boom 0.
|
199
|
+
# Exception: Boom 2; $!: Boom 2; cause: Boom 1.
|
200
|
+
#
|
201
|
+
def cause: () -> Exception?
|
202
|
+
|
203
|
+
# <!--
|
204
|
+
# rdoc-file=error.c
|
205
|
+
# - detailed_message(highlight: false, **kwargs) -> string
|
206
|
+
# -->
|
207
|
+
# Returns the message string with enhancements:
|
208
|
+
#
|
209
|
+
# * Includes the exception class name in the first line.
|
210
|
+
# * If the value of keyword `highlight` is `true`, includes bolding and
|
211
|
+
# underlining ANSI codes (see below) to enhance the appearance of the
|
212
|
+
# message.
|
213
|
+
#
|
214
|
+
# Examples:
|
215
|
+
#
|
216
|
+
# begin
|
217
|
+
# 1 / 0
|
218
|
+
# rescue => x
|
219
|
+
# p x.message
|
220
|
+
# p x.detailed_message # Class name added.
|
221
|
+
# p x.detailed_message(highlight: true) # Class name, bolding, and underlining added.
|
222
|
+
# end
|
223
|
+
#
|
224
|
+
# Output:
|
225
|
+
#
|
226
|
+
# "divided by 0"
|
227
|
+
# "divided by 0 (ZeroDivisionError)"
|
228
|
+
# "\e[1mdivided by 0 (\e[1;4mZeroDivisionError\e[m\e[1m)\e[m"
|
229
|
+
#
|
230
|
+
# This method is overridden by some gems in the Ruby standard library to add
|
231
|
+
# information:
|
232
|
+
#
|
233
|
+
# * DidYouMean::Correctable#detailed_message.
|
234
|
+
# * ErrorHighlight::CoreExt#detailed_message.
|
235
|
+
# * SyntaxSuggest#detailed_message.
|
236
|
+
#
|
237
|
+
# An overriding method must be tolerant of passed keyword arguments, which may
|
238
|
+
# include (but may not be limited to):
|
239
|
+
#
|
240
|
+
# * `:highlight`.
|
241
|
+
# * `:did_you_mean`.
|
242
|
+
# * `:error_highlight`.
|
243
|
+
# * `:syntax_suggest`.
|
244
|
+
#
|
245
|
+
# An overriding method should also be careful with ANSI code enhancements; see
|
246
|
+
# [Messages](rdoc-ref:exceptions.md@Messages).
|
247
|
+
#
|
248
|
+
def detailed_message: (?highlight: bool?, **untyped ignored) -> String
|
249
|
+
|
250
|
+
# <!--
|
251
|
+
# rdoc-file=error.c
|
252
|
+
# - exception(message = nil) -> self or new_exception
|
253
|
+
# -->
|
254
|
+
# Returns an exception object of the same class as `self`; useful for creating a
|
255
|
+
# similar exception, but with a different message.
|
256
|
+
#
|
257
|
+
# With `message` `nil`, returns `self`:
|
258
|
+
#
|
259
|
+
# x0 = StandardError.new('Boom') # => #<StandardError: Boom>
|
260
|
+
# x1 = x0.exception # => #<StandardError: Boom>
|
261
|
+
# x0.__id__ == x1.__id__ # => true
|
262
|
+
#
|
263
|
+
# With [string-convertible
|
264
|
+
# object](rdoc-ref:implicit_conversion.rdoc@String-Convertible+Objects)
|
265
|
+
# `message` (even the same as the original message), returns a new exception
|
266
|
+
# object whose class is the same as `self`, and whose message is the given
|
267
|
+
# `message`:
|
268
|
+
#
|
269
|
+
# x1 = x0.exception('Boom') # => #<StandardError: Boom>
|
270
|
+
# x0..equal?(x1) # => false
|
271
|
+
#
|
272
|
+
def exception: (?self) -> self
|
273
|
+
| (string | _ToS message) -> instance
|
274
|
+
|
275
|
+
# <!--
|
276
|
+
# rdoc-file=error.c
|
277
|
+
# - Exception.new(message = nil) -> exception
|
278
|
+
# -->
|
279
|
+
# Returns a new exception object.
|
280
|
+
#
|
281
|
+
# The given `message` should be a [string-convertible
|
282
|
+
# object](rdoc-ref:implicit_conversion.rdoc@String-Convertible+Objects); see
|
283
|
+
# method #message; if not given, the message is the class name of the new
|
284
|
+
# instance (which may be the name of a subclass):
|
285
|
+
#
|
286
|
+
# Examples:
|
287
|
+
#
|
288
|
+
# Exception.new # => #<Exception: Exception>
|
289
|
+
# LoadError.new # => #<LoadError: LoadError> # Subclass of Exception.
|
290
|
+
# Exception.new('Boom') # => #<Exception: Boom>
|
291
|
+
#
|
292
|
+
def initialize: (?string | _ToS message) -> void
|
293
|
+
|
294
|
+
# <!--
|
295
|
+
# rdoc-file=error.c
|
296
|
+
# - inspect -> string
|
297
|
+
# -->
|
298
|
+
# Returns a string representation of `self`:
|
299
|
+
#
|
300
|
+
# x = RuntimeError.new('Boom')
|
301
|
+
# x.inspect # => "#<RuntimeError: Boom>"
|
302
|
+
# x = RuntimeError.new
|
303
|
+
# x.inspect # => "#<RuntimeError: RuntimeError>"
|
304
|
+
#
|
305
|
+
def inspect: () -> String
|
306
|
+
|
307
|
+
# <!--
|
308
|
+
# rdoc-file=error.c
|
309
|
+
# - message -> string
|
310
|
+
# -->
|
311
|
+
# Returns #to_s.
|
312
|
+
#
|
313
|
+
# See [Messages](rdoc-ref:exceptions.md@Messages).
|
314
|
+
#
|
315
|
+
def message: () -> String
|
316
|
+
|
317
|
+
# <!--
|
318
|
+
# rdoc-file=error.c
|
319
|
+
# - set_backtrace(value) -> value
|
320
|
+
# -->
|
321
|
+
# Sets the backtrace value for `self`; returns the given `value`.
|
322
|
+
#
|
323
|
+
# The `value` might be:
|
324
|
+
#
|
325
|
+
# * an array of Thread::Backtrace::Location;
|
326
|
+
# * an array of String instances;
|
327
|
+
# * a single String instance; or
|
328
|
+
# * `nil`.
|
329
|
+
#
|
330
|
+
# Using array of Thread::Backtrace::Location is the most consistent option: it
|
331
|
+
# sets both #backtrace and #backtrace_locations. It should be preferred when
|
332
|
+
# possible. The suitable array of locations can be obtained from
|
333
|
+
# Kernel#caller_locations, copied from another error, or just set to the
|
334
|
+
# adjusted result of the current error's #backtrace_locations:
|
335
|
+
#
|
336
|
+
# require 'json'
|
337
|
+
#
|
338
|
+
# def parse_payload(text)
|
339
|
+
# JSON.parse(text) # test.rb, line 4
|
340
|
+
# rescue JSON::ParserError => ex
|
341
|
+
# ex.set_backtrace(ex.backtrace_locations[2...])
|
342
|
+
# raise
|
343
|
+
# end
|
344
|
+
#
|
345
|
+
# parse_payload('{"wrong: "json"')
|
346
|
+
# # test.rb:4:in 'Object#parse_payload': unexpected token at '{"wrong: "json"' (JSON::ParserError)
|
347
|
+
# #
|
348
|
+
# # An error points to the body of parse_payload method,
|
349
|
+
# # hiding the parts of the backtrace related to the internals
|
350
|
+
# # of the "json" library
|
351
|
+
#
|
352
|
+
# # The error has both #backtace and #backtrace_locations set
|
353
|
+
# # consistently:
|
354
|
+
# begin
|
355
|
+
# parse_payload('{"wrong: "json"')
|
356
|
+
# rescue => ex
|
357
|
+
# p ex.backtrace
|
358
|
+
# # ["test.rb:4:in 'Object#parse_payload'", "test.rb:20:in '<main>'"]
|
359
|
+
# p ex.backtrace_locations
|
360
|
+
# # ["test.rb:4:in 'Object#parse_payload'", "test.rb:20:in '<main>'"]
|
361
|
+
# end
|
362
|
+
#
|
363
|
+
# When the desired stack of locations is not available and should be constructed
|
364
|
+
# from scratch, an array of strings or a singular string can be used. In this
|
365
|
+
# case, only #backtrace is affected:
|
366
|
+
#
|
367
|
+
# def parse_payload(text)
|
368
|
+
# JSON.parse(text)
|
369
|
+
# rescue JSON::ParserError => ex
|
370
|
+
# ex.set_backtrace(["dsl.rb:34", "framework.rb:1"])
|
371
|
+
# # The error have the new value in #backtrace:
|
372
|
+
# p ex.backtrace
|
373
|
+
# # ["dsl.rb:34", "framework.rb:1"]
|
374
|
+
#
|
375
|
+
# # but the original one in #backtrace_locations
|
376
|
+
# p ex.backtrace_locations
|
377
|
+
# # [".../json/common.rb:221:in 'JSON::Ext::Parser.parse'", ...]
|
378
|
+
# end
|
379
|
+
#
|
380
|
+
# parse_payload('{"wrong: "json"')
|
381
|
+
#
|
382
|
+
# Calling #set_backtrace with `nil` clears up #backtrace but doesn't affect
|
383
|
+
# #backtrace_locations:
|
384
|
+
#
|
385
|
+
# def parse_payload(text)
|
386
|
+
# JSON.parse(text)
|
387
|
+
# rescue JSON::ParserError => ex
|
388
|
+
# ex.set_backtrace(nil)
|
389
|
+
# p ex.backtrace
|
390
|
+
# # nil
|
391
|
+
# p ex.backtrace_locations
|
392
|
+
# # [".../json/common.rb:221:in 'JSON::Ext::Parser.parse'", ...]
|
393
|
+
# end
|
394
|
+
#
|
395
|
+
# parse_payload('{"wrong: "json"')
|
396
|
+
#
|
397
|
+
# On reraising of such an exception, both #backtrace and #backtrace_locations is
|
398
|
+
# set to the place of reraising:
|
399
|
+
#
|
400
|
+
# def parse_payload(text)
|
401
|
+
# JSON.parse(text)
|
402
|
+
# rescue JSON::ParserError => ex
|
403
|
+
# ex.set_backtrace(nil)
|
404
|
+
# raise # test.rb, line 7
|
405
|
+
# end
|
406
|
+
#
|
407
|
+
# begin
|
408
|
+
# parse_payload('{"wrong: "json"')
|
409
|
+
# rescue => ex
|
410
|
+
# p ex.backtrace
|
411
|
+
# # ["test.rb:7:in 'Object#parse_payload'", "test.rb:11:in '<main>'"]
|
412
|
+
# p ex.backtrace_locations
|
413
|
+
# # ["test.rb:7:in 'Object#parse_payload'", "test.rb:11:in '<main>'"]
|
414
|
+
# end
|
415
|
+
#
|
416
|
+
# See [Backtraces](rdoc-ref:exceptions.md@Backtraces).
|
417
|
+
#
|
418
|
+
def set_backtrace: (String | Array[String]) -> Array[String]
|
419
|
+
| (Array[Thread::Backtrace::Location]) -> Array[Thread::Backtrace::Location]
|
420
|
+
| (nil) -> nil
|
421
|
+
|
422
|
+
# <!--
|
423
|
+
# rdoc-file=error.c
|
424
|
+
# - to_s -> string
|
425
|
+
# -->
|
426
|
+
# Returns a string representation of `self`:
|
427
|
+
#
|
428
|
+
# x = RuntimeError.new('Boom')
|
429
|
+
# x.to_s # => "Boom"
|
430
|
+
# x = RuntimeError.new
|
431
|
+
# x.to_s # => "RuntimeError"
|
432
|
+
#
|
433
|
+
def to_s: () -> String
|
434
|
+
|
435
|
+
# <!--
|
436
|
+
# rdoc-file=error.c
|
437
|
+
# - full_message(highlight: true, order: :top) -> string
|
438
|
+
# -->
|
439
|
+
# Returns an enhanced message string:
|
440
|
+
#
|
441
|
+
# * Includes the exception class name.
|
442
|
+
# * If the value of keyword `highlight` is true (not `nil` or `false`),
|
443
|
+
# includes bolding ANSI codes (see below) to enhance the appearance of the
|
444
|
+
# message.
|
445
|
+
# * Includes the [backtrace](rdoc-ref:exceptions.md@Backtraces):
|
446
|
+
#
|
447
|
+
# * If the value of keyword `order` is `:top` (the default), lists the
|
448
|
+
# error message and the innermost backtrace entry first.
|
449
|
+
# * If the value of keyword `order` is `:bottom`, lists the error message
|
450
|
+
# the the innermost entry last.
|
451
|
+
#
|
452
|
+
# Example:
|
453
|
+
#
|
454
|
+
# def baz
|
455
|
+
# begin
|
456
|
+
# 1 / 0
|
457
|
+
# rescue => x
|
458
|
+
# pp x.message
|
459
|
+
# pp x.full_message(highlight: false).split("\n")
|
460
|
+
# pp x.full_message.split("\n")
|
461
|
+
# end
|
462
|
+
# end
|
463
|
+
# def bar; baz; end
|
464
|
+
# def foo; bar; end
|
465
|
+
# foo
|
466
|
+
#
|
467
|
+
# Output:
|
468
|
+
#
|
469
|
+
# "divided by 0"
|
470
|
+
# ["t.rb:3:in 'Integer#/': divided by 0 (ZeroDivisionError)",
|
471
|
+
# "\tfrom t.rb:3:in 'Object#baz'",
|
472
|
+
# "\tfrom t.rb:10:in 'Object#bar'",
|
473
|
+
# "\tfrom t.rb:11:in 'Object#foo'",
|
474
|
+
# "\tfrom t.rb:12:in '<main>'"]
|
475
|
+
# ["t.rb:3:in 'Integer#/': \e[1mdivided by 0 (\e[1;4mZeroDivisionError\e[m\e[1m)\e[m",
|
476
|
+
# "\tfrom t.rb:3:in 'Object#baz'",
|
477
|
+
# "\tfrom t.rb:10:in 'Object#bar'",
|
478
|
+
# "\tfrom t.rb:11:in 'Object#foo'",
|
479
|
+
# "\tfrom t.rb:12:in '<main>'"]
|
480
|
+
#
|
481
|
+
# An overriding method should be careful with ANSI code enhancements; see
|
482
|
+
# [Messages](rdoc-ref:exceptions.md@Messages).
|
483
|
+
#
|
484
|
+
def full_message: (?highlight: bool?, ?order: (:top | :bottom | string)?) -> String
|
485
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# <!-- rdoc-file=object.c -->
|
2
|
+
# The global value `false` is the only instance of class FalseClass and
|
3
|
+
# represents a logically false value in boolean expressions. The class provides
|
4
|
+
# operators allowing `false` to participate correctly in logical expressions.
|
5
|
+
#
|
6
|
+
class FalseClass
|
7
|
+
def !: () -> true
|
8
|
+
|
9
|
+
# <!--
|
10
|
+
# rdoc-file=object.c
|
11
|
+
# - false & object -> false
|
12
|
+
# - nil & object -> false
|
13
|
+
# -->
|
14
|
+
# Returns `false`:
|
15
|
+
#
|
16
|
+
# false & true # => false
|
17
|
+
# false & Object.new # => false
|
18
|
+
#
|
19
|
+
# Argument `object` is evaluated:
|
20
|
+
#
|
21
|
+
# false & raise # Raises RuntimeError.
|
22
|
+
#
|
23
|
+
def &: (untyped obj) -> false
|
24
|
+
|
25
|
+
# <!--
|
26
|
+
# rdoc-file=object.c
|
27
|
+
# - true === other -> true or false
|
28
|
+
# - false === other -> true or false
|
29
|
+
# - nil === other -> true or false
|
30
|
+
# -->
|
31
|
+
# Returns `true` or `false`.
|
32
|
+
#
|
33
|
+
# Like Object#==, if `object` is an instance of Object (and not an instance of
|
34
|
+
# one of its many subclasses).
|
35
|
+
#
|
36
|
+
# This method is commonly overridden by those subclasses, to provide meaningful
|
37
|
+
# semantics in `case` statements.
|
38
|
+
#
|
39
|
+
def ===: (false) -> true
|
40
|
+
| (untyped obj) -> bool
|
41
|
+
|
42
|
+
# <!--
|
43
|
+
# rdoc-file=object.c
|
44
|
+
# - false ^ object -> true or false
|
45
|
+
# - nil ^ object -> true or false
|
46
|
+
# -->
|
47
|
+
# Returns `false` if `object` is `nil` or `false`, `true` otherwise:
|
48
|
+
#
|
49
|
+
# nil ^ nil # => false
|
50
|
+
# nil ^ false # => false
|
51
|
+
# nil ^ Object.new # => true
|
52
|
+
#
|
53
|
+
def ^: (false | nil) -> false
|
54
|
+
| (untyped obj) -> bool
|
55
|
+
|
56
|
+
# <!-- rdoc-file=object.c -->
|
57
|
+
# The string representation of `false` is "false".
|
58
|
+
#
|
59
|
+
alias inspect to_s
|
60
|
+
|
61
|
+
# <!--
|
62
|
+
# rdoc-file=object.c
|
63
|
+
# - false.to_s -> "false"
|
64
|
+
# -->
|
65
|
+
# The string representation of `false` is "false".
|
66
|
+
#
|
67
|
+
def to_s: () -> "false"
|
68
|
+
|
69
|
+
# <!--
|
70
|
+
# rdoc-file=object.c
|
71
|
+
# - false | object -> true or false
|
72
|
+
# - nil | object -> true or false
|
73
|
+
# -->
|
74
|
+
# Returns `false` if `object` is `nil` or `false`, `true` otherwise:
|
75
|
+
#
|
76
|
+
# nil | nil # => false
|
77
|
+
# nil | false # => false
|
78
|
+
# nil | Object.new # => true
|
79
|
+
#
|
80
|
+
def |: (nil | false) -> false
|
81
|
+
| (untyped obj) -> bool
|
82
|
+
end
|