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/object.rbs
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
# <!-- rdoc-file=object.c -->
|
2
|
+
# Object is the default root of all Ruby objects. Object inherits from
|
3
|
+
# BasicObject which allows creating alternate object hierarchies. Methods on
|
4
|
+
# Object are available to all classes unless explicitly overridden.
|
5
|
+
#
|
6
|
+
# Object mixes in the Kernel module, making the built-in kernel functions
|
7
|
+
# globally accessible. Although the instance methods of Object are defined by
|
8
|
+
# the Kernel module, we have chosen to document them here for clarity.
|
9
|
+
#
|
10
|
+
# When referencing constants in classes inheriting from Object you do not need
|
11
|
+
# to use the full namespace. For example, referencing `File` inside `YourClass`
|
12
|
+
# will find the top-level File class.
|
13
|
+
#
|
14
|
+
# In the descriptions of Object's methods, the parameter *symbol* refers to a
|
15
|
+
# symbol, which is either a quoted string or a Symbol (such as `:name`).
|
16
|
+
#
|
17
|
+
# ## What's Here
|
18
|
+
#
|
19
|
+
# First, what's elsewhere. Class Object:
|
20
|
+
#
|
21
|
+
# * Inherits from [class BasicObject](rdoc-ref:BasicObject@What-27s+Here).
|
22
|
+
# * Includes [module Kernel](rdoc-ref:Kernel@What-27s+Here).
|
23
|
+
#
|
24
|
+
# Here, class Object provides methods for:
|
25
|
+
#
|
26
|
+
# * [Querying](rdoc-ref:Object@Querying)
|
27
|
+
# * [Instance Variables](rdoc-ref:Object@Instance+Variables)
|
28
|
+
# * [Other](rdoc-ref:Object@Other)
|
29
|
+
#
|
30
|
+
# ### Querying
|
31
|
+
#
|
32
|
+
# * #!~: Returns `true` if `self` does not match the given object, otherwise
|
33
|
+
# `false`.
|
34
|
+
# * #<=>: Returns 0 if `self` and the given object `object` are the same
|
35
|
+
# object, or if `self == object`; otherwise returns `nil`.
|
36
|
+
# * #===: Implements case equality, effectively the same as calling #==.
|
37
|
+
# * #eql?: Implements hash equality, effectively the same as calling #==.
|
38
|
+
# * #kind_of? (aliased as #is_a?): Returns whether given argument is an
|
39
|
+
# ancestor of the singleton class of `self`.
|
40
|
+
# * #instance_of?: Returns whether `self` is an instance of the given class.
|
41
|
+
# * #instance_variable_defined?: Returns whether the given instance variable
|
42
|
+
# is defined in `self`.
|
43
|
+
# * #method: Returns the Method object for the given method in `self`.
|
44
|
+
# * #methods: Returns an array of symbol names of public and protected methods
|
45
|
+
# in `self`.
|
46
|
+
# * #nil?: Returns `false`. (Only `nil` responds `true` to method `nil?`.)
|
47
|
+
# * #object_id: Returns an integer corresponding to `self` that is unique for
|
48
|
+
# the current process
|
49
|
+
# * #private_methods: Returns an array of the symbol names of the private
|
50
|
+
# methods in `self`.
|
51
|
+
# * #protected_methods: Returns an array of the symbol names of the protected
|
52
|
+
# methods in `self`.
|
53
|
+
# * #public_method: Returns the Method object for the given public method in
|
54
|
+
# `self`.
|
55
|
+
# * #public_methods: Returns an array of the symbol names of the public
|
56
|
+
# methods in `self`.
|
57
|
+
# * #respond_to?: Returns whether `self` responds to the given method.
|
58
|
+
# * #singleton_class: Returns the singleton class of `self`.
|
59
|
+
# * #singleton_method: Returns the Method object for the given singleton
|
60
|
+
# method in `self`.
|
61
|
+
# * #singleton_methods: Returns an array of the symbol names of the singleton
|
62
|
+
# methods in `self`.
|
63
|
+
#
|
64
|
+
# * #define_singleton_method: Defines a singleton method in `self` for the
|
65
|
+
# given symbol method-name and block or proc.
|
66
|
+
# * #extend: Includes the given modules in the singleton class of `self`.
|
67
|
+
# * #public_send: Calls the given public method in `self` with the given
|
68
|
+
# argument.
|
69
|
+
# * #send: Calls the given method in `self` with the given argument.
|
70
|
+
#
|
71
|
+
# ### Instance Variables
|
72
|
+
#
|
73
|
+
# * #instance_variable_get: Returns the value of the given instance variable
|
74
|
+
# in `self`, or `nil` if the instance variable is not set.
|
75
|
+
# * #instance_variable_set: Sets the value of the given instance variable in
|
76
|
+
# `self` to the given object.
|
77
|
+
# * #instance_variables: Returns an array of the symbol names of the instance
|
78
|
+
# variables in `self`.
|
79
|
+
# * #remove_instance_variable: Removes the named instance variable from
|
80
|
+
# `self`.
|
81
|
+
#
|
82
|
+
# ### Other
|
83
|
+
#
|
84
|
+
# * #clone: Returns a shallow copy of `self`, including singleton class and
|
85
|
+
# frozen state.
|
86
|
+
# * #define_singleton_method: Defines a singleton method in `self` for the
|
87
|
+
# given symbol method-name and block or proc.
|
88
|
+
# * #display: Prints `self` to the given IO stream or `$stdout`.
|
89
|
+
# * #dup: Returns a shallow unfrozen copy of `self`.
|
90
|
+
# * #enum_for (aliased as #to_enum): Returns an Enumerator for `self` using
|
91
|
+
# the using the given method, arguments, and block.
|
92
|
+
# * #extend: Includes the given modules in the singleton class of `self`.
|
93
|
+
# * #freeze: Prevents further modifications to `self`.
|
94
|
+
# * #hash: Returns the integer hash value for `self`.
|
95
|
+
# * #inspect: Returns a human-readable string representation of `self`.
|
96
|
+
# * #itself: Returns `self`.
|
97
|
+
# * #method_missing: Method called when an undefined method is called on
|
98
|
+
# `self`.
|
99
|
+
# * #public_send: Calls the given public method in `self` with the given
|
100
|
+
# argument.
|
101
|
+
# * #send: Calls the given method in `self` with the given argument.
|
102
|
+
# * #to_s: Returns a string representation of `self`.
|
103
|
+
#
|
104
|
+
class Object < BasicObject
|
105
|
+
include Kernel
|
106
|
+
end
|
107
|
+
|
108
|
+
# A previous incarnation of `interned` for backward-compatibility (see #1499)
|
109
|
+
%a{steep:deprecated}
|
110
|
+
type Object::name = interned
|
@@ -0,0 +1,166 @@
|
|
1
|
+
%a{annotate:rdoc:skip}
|
2
|
+
module ObjectSpace
|
3
|
+
# <!-- rdoc-file=weakmap.c -->
|
4
|
+
# An ObjectSpace::WeakKeyMap is a key-value map that holds weak references to
|
5
|
+
# its keys, so they can be garbage collected when there is no more references.
|
6
|
+
#
|
7
|
+
# Unlike ObjectSpace::WeakMap:
|
8
|
+
#
|
9
|
+
# * references to values are *strong*, so they aren't garbage collected while
|
10
|
+
# they are in the map;
|
11
|
+
# * keys are compared by value (using Object#eql?), not by identity;
|
12
|
+
# * only garbage-collectable objects can be used as keys.
|
13
|
+
#
|
14
|
+
# map = ObjectSpace::WeakKeyMap.new
|
15
|
+
# val = Time.new(2023, 12, 7)
|
16
|
+
# key = "name"
|
17
|
+
# map[key] = val
|
18
|
+
#
|
19
|
+
# # Value is fetched by equality: the instance of string "name" is
|
20
|
+
# # different here, but it is equal to the key
|
21
|
+
# map["name"] #=> 2023-12-07 00:00:00 +0200
|
22
|
+
#
|
23
|
+
# val = nil
|
24
|
+
# GC.start
|
25
|
+
# # There are no more references to `val`, yet the pair isn't
|
26
|
+
# # garbage-collected.
|
27
|
+
# map["name"] #=> 2023-12-07 00:00:00 +0200
|
28
|
+
#
|
29
|
+
# key = nil
|
30
|
+
# GC.start
|
31
|
+
# # There are no more references to `key`, key and value are
|
32
|
+
# # garbage-collected.
|
33
|
+
# map["name"] #=> nil
|
34
|
+
#
|
35
|
+
# (Note that GC.start is used here only for demonstrational purposes and might
|
36
|
+
# not always lead to demonstrated results.)
|
37
|
+
#
|
38
|
+
# The collection is especially useful for implementing caches of lightweight
|
39
|
+
# value objects, so that only one copy of each value representation would be
|
40
|
+
# stored in memory, but the copies that aren't used would be garbage-collected.
|
41
|
+
#
|
42
|
+
# CACHE = ObjectSpace::WeakKeyMap
|
43
|
+
#
|
44
|
+
# def make_value(**)
|
45
|
+
# val = ValueObject.new(**)
|
46
|
+
# if (existing = @cache.getkey(val))
|
47
|
+
# # if the object with this value exists, we return it
|
48
|
+
# existing
|
49
|
+
# else
|
50
|
+
# # otherwise, put it in the cache
|
51
|
+
# @cache[val] = true
|
52
|
+
# val
|
53
|
+
# end
|
54
|
+
# end
|
55
|
+
#
|
56
|
+
# This will result in `make_value` returning the same object for same set of
|
57
|
+
# attributes always, but the values that aren't needed anymore wouldn't be
|
58
|
+
# sitting in the cache forever.
|
59
|
+
#
|
60
|
+
class WeakKeyMap[Key, Value]
|
61
|
+
# <!--
|
62
|
+
# rdoc-file=weakmap.c
|
63
|
+
# - map[key] -> value
|
64
|
+
# -->
|
65
|
+
# Returns the value associated with the given `key` if found.
|
66
|
+
#
|
67
|
+
# If `key` is not found, returns `nil`.
|
68
|
+
#
|
69
|
+
def []: (Key) -> Value?
|
70
|
+
|
71
|
+
# <!--
|
72
|
+
# rdoc-file=weakmap.c
|
73
|
+
# - map[key] = value -> value
|
74
|
+
# -->
|
75
|
+
# Associates the given `value` with the given `key`
|
76
|
+
#
|
77
|
+
# The reference to `key` is weak, so when there is no other reference to `key`
|
78
|
+
# it may be garbage collected.
|
79
|
+
#
|
80
|
+
# If the given `key` exists, replaces its value with the given `value`; the
|
81
|
+
# ordering is not affected
|
82
|
+
#
|
83
|
+
def []=: (Key, Value?) -> Value?
|
84
|
+
|
85
|
+
# <!--
|
86
|
+
# rdoc-file=weakmap.c
|
87
|
+
# - map.clear -> self
|
88
|
+
# -->
|
89
|
+
# Removes all map entries; returns `self`.
|
90
|
+
#
|
91
|
+
def clear: () -> self
|
92
|
+
|
93
|
+
# <!--
|
94
|
+
# rdoc-file=weakmap.c
|
95
|
+
# - map.delete(key) -> value or nil
|
96
|
+
# - map.delete(key) {|key| ... } -> object
|
97
|
+
# -->
|
98
|
+
# Deletes the entry for the given `key` and returns its associated value.
|
99
|
+
#
|
100
|
+
# If no block is given and `key` is found, deletes the entry and returns the
|
101
|
+
# associated value:
|
102
|
+
# m = ObjectSpace::WeakKeyMap.new
|
103
|
+
# key = "foo" # to hold reference to the key
|
104
|
+
# m[key] = 1
|
105
|
+
# m.delete("foo") # => 1
|
106
|
+
# m["foo"] # => nil
|
107
|
+
#
|
108
|
+
# If no block given and `key` is not found, returns `nil`.
|
109
|
+
#
|
110
|
+
# If a block is given and `key` is found, ignores the block, deletes the entry,
|
111
|
+
# and returns the associated value:
|
112
|
+
# m = ObjectSpace::WeakKeyMap.new
|
113
|
+
# key = "foo" # to hold reference to the key
|
114
|
+
# m[key] = 2
|
115
|
+
# m.delete("foo") { |key| raise 'Will never happen'} # => 2
|
116
|
+
#
|
117
|
+
# If a block is given and `key` is not found, yields the `key` to the block and
|
118
|
+
# returns the block's return value:
|
119
|
+
# m = ObjectSpace::WeakKeyMap.new
|
120
|
+
# m.delete("nosuch") { |key| "Key #{key} not found" } # => "Key nosuch not found"
|
121
|
+
#
|
122
|
+
def delete: (Key) -> Value?
|
123
|
+
| [T] (Key) { (Key) -> T } -> (Value | T)
|
124
|
+
|
125
|
+
# <!--
|
126
|
+
# rdoc-file=weakmap.c
|
127
|
+
# - map.getkey(key) -> existing_key or nil
|
128
|
+
# -->
|
129
|
+
# Returns the existing equal key if it exists, otherwise returns `nil`.
|
130
|
+
#
|
131
|
+
# This might be useful for implementing caches, so that only one copy of some
|
132
|
+
# object would be used everywhere in the program:
|
133
|
+
#
|
134
|
+
# value = {amount: 1, currency: 'USD'}
|
135
|
+
#
|
136
|
+
# # Now if we put this object in a cache:
|
137
|
+
# cache = ObjectSpace::WeakKeyMap.new
|
138
|
+
# cache[value] = true
|
139
|
+
#
|
140
|
+
# # ...we can always extract from there and use the same object:
|
141
|
+
# copy = cache.getkey({amount: 1, currency: 'USD'})
|
142
|
+
# copy.object_id == value.object_id #=> true
|
143
|
+
#
|
144
|
+
def getkey: (untyped) -> Key?
|
145
|
+
|
146
|
+
# <!--
|
147
|
+
# rdoc-file=weakmap.c
|
148
|
+
# - map.inspect -> new_string
|
149
|
+
# -->
|
150
|
+
# Returns a new String containing informations about the map:
|
151
|
+
#
|
152
|
+
# m = ObjectSpace::WeakKeyMap.new
|
153
|
+
# m[key] = value
|
154
|
+
# m.inspect # => "#<ObjectSpace::WeakKeyMap:0x00000001028dcba8 size=1>"
|
155
|
+
#
|
156
|
+
def inspect: () -> String
|
157
|
+
|
158
|
+
# <!--
|
159
|
+
# rdoc-file=weakmap.c
|
160
|
+
# - map.key?(key) -> true or false
|
161
|
+
# -->
|
162
|
+
# Returns `true` if `key` is a key in `self`, otherwise `false`.
|
163
|
+
#
|
164
|
+
def key?: (Key) -> bool
|
165
|
+
end
|
166
|
+
end
|
@@ -0,0 +1,190 @@
|
|
1
|
+
# <!-- rdoc-file=gc.c -->
|
2
|
+
# The ObjectSpace module contains a number of routines that interact with the
|
3
|
+
# garbage collection facility and allow you to traverse all living objects with
|
4
|
+
# an iterator.
|
5
|
+
#
|
6
|
+
# ObjectSpace also provides support for object finalizers, procs that will be
|
7
|
+
# called after a specific object was destroyed by garbage collection. See the
|
8
|
+
# documentation for `ObjectSpace.define_finalizer` for important information on
|
9
|
+
# how to use this method correctly.
|
10
|
+
#
|
11
|
+
# a = "A"
|
12
|
+
# b = "B"
|
13
|
+
#
|
14
|
+
# ObjectSpace.define_finalizer(a, proc {|id| puts "Finalizer one on #{id}" })
|
15
|
+
# ObjectSpace.define_finalizer(b, proc {|id| puts "Finalizer two on #{id}" })
|
16
|
+
#
|
17
|
+
# a = nil
|
18
|
+
# b = nil
|
19
|
+
#
|
20
|
+
# *produces:*
|
21
|
+
#
|
22
|
+
# Finalizer two on 537763470
|
23
|
+
# Finalizer one on 537763480
|
24
|
+
#
|
25
|
+
%a{annotate:rdoc:source:from=gc.c}
|
26
|
+
module ObjectSpace
|
27
|
+
# <!--
|
28
|
+
# rdoc-file=gc.c
|
29
|
+
# - _id2ref(p1)
|
30
|
+
# -->
|
31
|
+
#
|
32
|
+
def self._id2ref: (Integer id) -> untyped
|
33
|
+
|
34
|
+
# <!--
|
35
|
+
# rdoc-file=gc.c
|
36
|
+
# - ObjectSpace.count_objects([result_hash]) -> hash
|
37
|
+
# -->
|
38
|
+
# Counts all objects grouped by type.
|
39
|
+
#
|
40
|
+
# It returns a hash, such as:
|
41
|
+
# {
|
42
|
+
# :TOTAL=>10000,
|
43
|
+
# :FREE=>3011,
|
44
|
+
# :T_OBJECT=>6,
|
45
|
+
# :T_CLASS=>404,
|
46
|
+
# # ...
|
47
|
+
# }
|
48
|
+
#
|
49
|
+
# The contents of the returned hash are implementation specific. It may be
|
50
|
+
# changed in future.
|
51
|
+
#
|
52
|
+
# The keys starting with `:T_` means live objects. For example, `:T_ARRAY` is
|
53
|
+
# the number of arrays. `:FREE` means object slots which is not used now.
|
54
|
+
# `:TOTAL` means sum of above.
|
55
|
+
#
|
56
|
+
# If the optional argument `result_hash` is given, it is overwritten and
|
57
|
+
# returned. This is intended to avoid probe effect.
|
58
|
+
#
|
59
|
+
# h = {}
|
60
|
+
# ObjectSpace.count_objects(h)
|
61
|
+
# puts h
|
62
|
+
# # => { :TOTAL=>10000, :T_CLASS=>158280, :T_MODULE=>20672, :T_STRING=>527249 }
|
63
|
+
#
|
64
|
+
# This method is only expected to work on C Ruby.
|
65
|
+
#
|
66
|
+
def self.count_objects: (?Hash[Symbol, Integer] result_hash) -> Hash[Symbol, Integer]
|
67
|
+
|
68
|
+
# <!--
|
69
|
+
# rdoc-file=gc.c
|
70
|
+
# - ObjectSpace.define_finalizer(obj, aProc=proc())
|
71
|
+
# -->
|
72
|
+
# Adds *aProc* as a finalizer, to be called after *obj* was destroyed. The
|
73
|
+
# object ID of the *obj* will be passed as an argument to *aProc*. If *aProc* is
|
74
|
+
# a lambda or method, make sure it can be called with a single argument.
|
75
|
+
#
|
76
|
+
# The return value is an array `[0, aProc]`.
|
77
|
+
#
|
78
|
+
# The two recommended patterns are to either create the finaliser proc in a
|
79
|
+
# non-instance method where it can safely capture the needed state, or to use a
|
80
|
+
# custom callable object that stores the needed state explicitly as instance
|
81
|
+
# variables.
|
82
|
+
#
|
83
|
+
# class Foo
|
84
|
+
# def initialize(data_needed_for_finalization)
|
85
|
+
# ObjectSpace.define_finalizer(self, self.class.create_finalizer(data_needed_for_finalization))
|
86
|
+
# end
|
87
|
+
#
|
88
|
+
# def self.create_finalizer(data_needed_for_finalization)
|
89
|
+
# proc {
|
90
|
+
# puts "finalizing #{data_needed_for_finalization}"
|
91
|
+
# }
|
92
|
+
# end
|
93
|
+
# end
|
94
|
+
#
|
95
|
+
# class Bar
|
96
|
+
# class Remover
|
97
|
+
# def initialize(data_needed_for_finalization)
|
98
|
+
# @data_needed_for_finalization = data_needed_for_finalization
|
99
|
+
# end
|
100
|
+
#
|
101
|
+
# def call(id)
|
102
|
+
# puts "finalizing #{@data_needed_for_finalization}"
|
103
|
+
# end
|
104
|
+
# end
|
105
|
+
#
|
106
|
+
# def initialize(data_needed_for_finalization)
|
107
|
+
# ObjectSpace.define_finalizer(self, Remover.new(data_needed_for_finalization))
|
108
|
+
# end
|
109
|
+
# end
|
110
|
+
#
|
111
|
+
# Note that if your finalizer references the object to be finalized it will
|
112
|
+
# never be run on GC, although it will still be run at exit. You will get a
|
113
|
+
# warning if you capture the object to be finalized as the receiver of the
|
114
|
+
# finalizer.
|
115
|
+
#
|
116
|
+
# class CapturesSelf
|
117
|
+
# def initialize(name)
|
118
|
+
# ObjectSpace.define_finalizer(self, proc {
|
119
|
+
# # this finalizer will only be run on exit
|
120
|
+
# puts "finalizing #{name}"
|
121
|
+
# })
|
122
|
+
# end
|
123
|
+
# end
|
124
|
+
#
|
125
|
+
# Also note that finalization can be unpredictable and is never guaranteed to be
|
126
|
+
# run except on exit.
|
127
|
+
#
|
128
|
+
def self.define_finalizer: (untyped obj, ^(Integer id) -> void aProc) -> [ Integer, Proc ]
|
129
|
+
| (untyped obj) { (Integer id) -> void } -> [ Integer, Proc ]
|
130
|
+
|
131
|
+
# <!--
|
132
|
+
# rdoc-file=gc.c
|
133
|
+
# - ObjectSpace.each_object([module]) {|obj| ... } -> integer
|
134
|
+
# - ObjectSpace.each_object([module]) -> an_enumerator
|
135
|
+
# -->
|
136
|
+
# Calls the block once for each living, nonimmediate object in this Ruby
|
137
|
+
# process. If *module* is specified, calls the block for only those classes or
|
138
|
+
# modules that match (or are a subclass of) *module*. Returns the number of
|
139
|
+
# objects found. Immediate objects (`Fixnum`s, `Symbol`s `true`, `false`, and
|
140
|
+
# `nil`) are never returned. In the example below, #each_object returns both the
|
141
|
+
# numbers we defined and several constants defined in the Math module.
|
142
|
+
#
|
143
|
+
# If no block is given, an enumerator is returned instead.
|
144
|
+
#
|
145
|
+
# a = 102.7
|
146
|
+
# b = 95 # Won't be returned
|
147
|
+
# c = 12345678987654321
|
148
|
+
# count = ObjectSpace.each_object(Numeric) {|x| p x }
|
149
|
+
# puts "Total count: #{count}"
|
150
|
+
#
|
151
|
+
# *produces:*
|
152
|
+
#
|
153
|
+
# 12345678987654321
|
154
|
+
# 102.7
|
155
|
+
# 2.71828182845905
|
156
|
+
# 3.14159265358979
|
157
|
+
# 2.22044604925031e-16
|
158
|
+
# 1.7976931348623157e+308
|
159
|
+
# 2.2250738585072e-308
|
160
|
+
# Total count: 7
|
161
|
+
#
|
162
|
+
def self.each_object: (?Module `module`) -> Enumerator[untyped, Integer]
|
163
|
+
| (?Module `module`) { (untyped obj) -> void } -> Integer
|
164
|
+
|
165
|
+
# <!--
|
166
|
+
# rdoc-file=gc.rb
|
167
|
+
# - garbage_collect(full_mark: true, immediate_mark: true, immediate_sweep: true)
|
168
|
+
# -->
|
169
|
+
# Alias of GC.start
|
170
|
+
#
|
171
|
+
def self.garbage_collect: (?full_mark: bool, ?immediate_mark: bool, ?immediate_sweep: bool) -> void
|
172
|
+
|
173
|
+
# <!--
|
174
|
+
# rdoc-file=gc.c
|
175
|
+
# - ObjectSpace.undefine_finalizer(obj)
|
176
|
+
# -->
|
177
|
+
# Removes all finalizers for *obj*.
|
178
|
+
#
|
179
|
+
def self.undefine_finalizer: [X] (X obj) -> X
|
180
|
+
|
181
|
+
private
|
182
|
+
|
183
|
+
# <!--
|
184
|
+
# rdoc-file=gc.rb
|
185
|
+
# - garbage_collect(full_mark: true, immediate_mark: true, immediate_sweep: true)
|
186
|
+
# -->
|
187
|
+
# Alias of GC.start
|
188
|
+
#
|
189
|
+
def garbage_collect: (?full_mark: bool, ?immediate_mark: bool, ?immediate_sweep: bool) -> void
|
190
|
+
end
|