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,375 @@
|
|
1
|
+
# <!-- rdoc-file=object.c -->
|
2
|
+
# `BasicObject` is the parent class of all classes in Ruby. In particular,
|
3
|
+
# `BasicObject` is the parent class of class Object, which is itself the default
|
4
|
+
# parent class of every Ruby class:
|
5
|
+
#
|
6
|
+
# class Foo; end
|
7
|
+
# Foo.superclass # => Object
|
8
|
+
# Object.superclass # => BasicObject
|
9
|
+
#
|
10
|
+
# `BasicObject` is the only class that has no parent:
|
11
|
+
#
|
12
|
+
# BasicObject.superclass # => nil
|
13
|
+
#
|
14
|
+
# Class `BasicObject` can be used to create an object hierarchy (e.g., class
|
15
|
+
# Delegator) that is independent of Ruby's object hierarchy. Such objects:
|
16
|
+
#
|
17
|
+
# * Do not have namespace "pollution" from the many methods provided in class
|
18
|
+
# Object and its included module Kernel.
|
19
|
+
# * Do not have definitions of common classes, and so references to such
|
20
|
+
# common classes must be fully qualified (`::String`, not `String`).
|
21
|
+
#
|
22
|
+
# A variety of strategies can be used to provide useful portions of the Standard
|
23
|
+
# Library in subclasses of `BasicObject`:
|
24
|
+
#
|
25
|
+
# * The immediate subclass could `include Kernel`, which would define methods
|
26
|
+
# such as `puts`, `exit`, etc.
|
27
|
+
# * A custom Kernel-like module could be created and included.
|
28
|
+
# * Delegation can be used via #method_missing:
|
29
|
+
#
|
30
|
+
# class MyObjectSystem < BasicObject
|
31
|
+
# DELEGATE = [:puts, :p]
|
32
|
+
#
|
33
|
+
# def method_missing(name, *args, &block)
|
34
|
+
# return super unless DELEGATE.include? name
|
35
|
+
# ::Kernel.send(name, *args, &block)
|
36
|
+
# end
|
37
|
+
#
|
38
|
+
# def respond_to_missing?(name, include_private = false)
|
39
|
+
# DELEGATE.include?(name)
|
40
|
+
# end
|
41
|
+
# end
|
42
|
+
#
|
43
|
+
# ### What's Here
|
44
|
+
#
|
45
|
+
# These are the methods defined for BasicObject:
|
46
|
+
#
|
47
|
+
# * ::new: Returns a new BasicObject instance.
|
48
|
+
# * #!: Returns the boolean negation of `self`: `true` or `false`.
|
49
|
+
# * #!=: Returns whether `self` and the given object are *not* equal.
|
50
|
+
# * #==: Returns whether `self` and the given object are equivalent.
|
51
|
+
# * #__id__: Returns the integer object identifier for `self`.
|
52
|
+
# * #__send__: Calls the method identified by the given symbol.
|
53
|
+
# * #equal?: Returns whether `self` and the given object are the same object.
|
54
|
+
# * #instance_eval: Evaluates the given string or block in the context of
|
55
|
+
# `self`.
|
56
|
+
# * #instance_exec: Executes the given block in the context of `self`, passing
|
57
|
+
# the given arguments.
|
58
|
+
# * #method_missing: Called when `self` is called with a method it does not
|
59
|
+
# define.
|
60
|
+
# * #singleton_method_added: Called when a singleton method is added to
|
61
|
+
# `self`.
|
62
|
+
# * #singleton_method_removed: Called when a singleton method is removed from
|
63
|
+
# `self`.
|
64
|
+
# * #singleton_method_undefined: Called when a singleton method is undefined
|
65
|
+
# in `self`.
|
66
|
+
#
|
67
|
+
class BasicObject
|
68
|
+
# <!--
|
69
|
+
# rdoc-file=object.c
|
70
|
+
# - !obj -> true or false
|
71
|
+
# -->
|
72
|
+
# Boolean negate.
|
73
|
+
#
|
74
|
+
def !: () -> bool
|
75
|
+
|
76
|
+
# <!--
|
77
|
+
# rdoc-file=object.c
|
78
|
+
# - obj != other -> true or false
|
79
|
+
# -->
|
80
|
+
# Returns true if two objects are not-equal, otherwise false.
|
81
|
+
#
|
82
|
+
def !=: (untyped other) -> bool
|
83
|
+
|
84
|
+
# <!--
|
85
|
+
# rdoc-file=object.c
|
86
|
+
# - obj == other -> true or false
|
87
|
+
# - obj.equal?(other) -> true or false
|
88
|
+
# - obj.eql?(other) -> true or false
|
89
|
+
# -->
|
90
|
+
# Equality --- At the Object level, #== returns `true` only if `obj` and `other`
|
91
|
+
# are the same object. Typically, this method is overridden in descendant
|
92
|
+
# classes to provide class-specific meaning.
|
93
|
+
#
|
94
|
+
# Unlike #==, the #equal? method should never be overridden by subclasses as it
|
95
|
+
# is used to determine object identity (that is, `a.equal?(b)` if and only if
|
96
|
+
# `a` is the same object as `b`):
|
97
|
+
#
|
98
|
+
# obj = "a"
|
99
|
+
# other = obj.dup
|
100
|
+
#
|
101
|
+
# obj == other #=> true
|
102
|
+
# obj.equal? other #=> false
|
103
|
+
# obj.equal? obj #=> true
|
104
|
+
#
|
105
|
+
# The #eql? method returns `true` if `obj` and `other` refer to the same hash
|
106
|
+
# key. This is used by Hash to test members for equality. For any pair of
|
107
|
+
# objects where #eql? returns `true`, the #hash value of both objects must be
|
108
|
+
# equal. So any subclass that overrides #eql? should also override #hash
|
109
|
+
# appropriately.
|
110
|
+
#
|
111
|
+
# For objects of class Object, #eql? is synonymous with #==. Subclasses
|
112
|
+
# normally continue this tradition by aliasing #eql? to their overridden #==
|
113
|
+
# method, but there are exceptions. Numeric types, for example, perform type
|
114
|
+
# conversion across #==, but not across #eql?, so:
|
115
|
+
#
|
116
|
+
# 1 == 1.0 #=> true
|
117
|
+
# 1.eql? 1.0 #=> false
|
118
|
+
#
|
119
|
+
def ==: (untyped other) -> bool
|
120
|
+
|
121
|
+
# <!--
|
122
|
+
# rdoc-file=gc.c
|
123
|
+
# - obj.__id__ -> integer
|
124
|
+
# - obj.object_id -> integer
|
125
|
+
# -->
|
126
|
+
# Returns an integer identifier for `obj`.
|
127
|
+
#
|
128
|
+
# The same number will be returned on all calls to `object_id` for a given
|
129
|
+
# object, and no two active objects will share an id.
|
130
|
+
#
|
131
|
+
# Note: that some objects of builtin classes are reused for optimization. This
|
132
|
+
# is the case for immediate values and frozen string literals.
|
133
|
+
#
|
134
|
+
# BasicObject implements `__id__`, Kernel implements `object_id`.
|
135
|
+
#
|
136
|
+
# Immediate values are not passed by reference but are passed by value: `nil`,
|
137
|
+
# `true`, `false`, Fixnums, Symbols, and some Floats.
|
138
|
+
#
|
139
|
+
# Object.new.object_id == Object.new.object_id # => false
|
140
|
+
# (21 * 2).object_id == (21 * 2).object_id # => true
|
141
|
+
# "hello".object_id == "hello".object_id # => false
|
142
|
+
# "hi".freeze.object_id == "hi".freeze.object_id # => true
|
143
|
+
#
|
144
|
+
def __id__: () -> Integer
|
145
|
+
|
146
|
+
# <!--
|
147
|
+
# rdoc-file=vm_eval.c
|
148
|
+
# - foo.send(symbol [, args...]) -> obj
|
149
|
+
# - foo.__send__(symbol [, args...]) -> obj
|
150
|
+
# - foo.send(string [, args...]) -> obj
|
151
|
+
# - foo.__send__(string [, args...]) -> obj
|
152
|
+
# -->
|
153
|
+
# Invokes the method identified by *symbol*, passing it any arguments specified.
|
154
|
+
# When the method is identified by a string, the string is converted to a
|
155
|
+
# symbol.
|
156
|
+
#
|
157
|
+
# BasicObject implements `__send__`, Kernel implements `send`. `__send__` is
|
158
|
+
# safer than `send` when *obj* has the same method name like `Socket`. See also
|
159
|
+
# `public_send`.
|
160
|
+
#
|
161
|
+
# class Klass
|
162
|
+
# def hello(*args)
|
163
|
+
# "Hello " + args.join(' ')
|
164
|
+
# end
|
165
|
+
# end
|
166
|
+
# k = Klass.new
|
167
|
+
# k.send :hello, "gentle", "readers" #=> "Hello gentle readers"
|
168
|
+
#
|
169
|
+
def __send__: (interned name, *untyped, **untyped) ?{ (?) -> untyped } -> untyped
|
170
|
+
|
171
|
+
# <!-- rdoc-file=object.c -->
|
172
|
+
# Equality --- At the Object level, #== returns `true` only if `obj` and `other`
|
173
|
+
# are the same object. Typically, this method is overridden in descendant
|
174
|
+
# classes to provide class-specific meaning.
|
175
|
+
#
|
176
|
+
# Unlike #==, the #equal? method should never be overridden by subclasses as it
|
177
|
+
# is used to determine object identity (that is, `a.equal?(b)` if and only if
|
178
|
+
# `a` is the same object as `b`):
|
179
|
+
#
|
180
|
+
# obj = "a"
|
181
|
+
# other = obj.dup
|
182
|
+
#
|
183
|
+
# obj == other #=> true
|
184
|
+
# obj.equal? other #=> false
|
185
|
+
# obj.equal? obj #=> true
|
186
|
+
#
|
187
|
+
# The #eql? method returns `true` if `obj` and `other` refer to the same hash
|
188
|
+
# key. This is used by Hash to test members for equality. For any pair of
|
189
|
+
# objects where #eql? returns `true`, the #hash value of both objects must be
|
190
|
+
# equal. So any subclass that overrides #eql? should also override #hash
|
191
|
+
# appropriately.
|
192
|
+
#
|
193
|
+
# For objects of class Object, #eql? is synonymous with #==. Subclasses
|
194
|
+
# normally continue this tradition by aliasing #eql? to their overridden #==
|
195
|
+
# method, but there are exceptions. Numeric types, for example, perform type
|
196
|
+
# conversion across #==, but not across #eql?, so:
|
197
|
+
#
|
198
|
+
# 1 == 1.0 #=> true
|
199
|
+
# 1.eql? 1.0 #=> false
|
200
|
+
#
|
201
|
+
alias equal? ==
|
202
|
+
|
203
|
+
# <!--
|
204
|
+
# rdoc-file=vm_eval.c
|
205
|
+
# - obj.instance_eval(string [, filename [, lineno]] ) -> obj
|
206
|
+
# - obj.instance_eval {|obj| block } -> obj
|
207
|
+
# -->
|
208
|
+
# Evaluates a string containing Ruby source code, or the given block, within the
|
209
|
+
# context of the receiver (*obj*). In order to set the context, the variable
|
210
|
+
# `self` is set to *obj* while the code is executing, giving the code access to
|
211
|
+
# *obj*'s instance variables and private methods.
|
212
|
+
#
|
213
|
+
# When `instance_eval` is given a block, *obj* is also passed in as the block's
|
214
|
+
# only argument.
|
215
|
+
#
|
216
|
+
# When `instance_eval` is given a `String`, the optional second and third
|
217
|
+
# parameters supply a filename and starting line number that are used when
|
218
|
+
# reporting compilation errors.
|
219
|
+
#
|
220
|
+
# class KlassWithSecret
|
221
|
+
# def initialize
|
222
|
+
# @secret = 99
|
223
|
+
# end
|
224
|
+
# private
|
225
|
+
# def the_secret
|
226
|
+
# "Ssssh! The secret is #{@secret}."
|
227
|
+
# end
|
228
|
+
# end
|
229
|
+
# k = KlassWithSecret.new
|
230
|
+
# k.instance_eval { @secret } #=> 99
|
231
|
+
# k.instance_eval { the_secret } #=> "Ssssh! The secret is 99."
|
232
|
+
# k.instance_eval {|obj| obj == self } #=> true
|
233
|
+
#
|
234
|
+
def instance_eval: (string code, ?string filename, ?int lineno) -> untyped
|
235
|
+
| [U] () { (self) [self: self] -> U } -> U
|
236
|
+
|
237
|
+
# <!--
|
238
|
+
# rdoc-file=vm_eval.c
|
239
|
+
# - obj.instance_exec(arg...) {|var...| block } -> obj
|
240
|
+
# -->
|
241
|
+
# Executes the given block within the context of the receiver (*obj*). In order
|
242
|
+
# to set the context, the variable `self` is set to *obj* while the code is
|
243
|
+
# executing, giving the code access to *obj*'s instance variables. Arguments
|
244
|
+
# are passed as block parameters.
|
245
|
+
#
|
246
|
+
# class KlassWithSecret
|
247
|
+
# def initialize
|
248
|
+
# @secret = 99
|
249
|
+
# end
|
250
|
+
# end
|
251
|
+
# k = KlassWithSecret.new
|
252
|
+
# k.instance_exec(5) {|x| @secret+x } #=> 104
|
253
|
+
#
|
254
|
+
def instance_exec: [U] (*untyped, **untyped) { (?) [self: self] -> U } -> U
|
255
|
+
|
256
|
+
# <!--
|
257
|
+
# rdoc-file=object.c
|
258
|
+
# - BasicObject.new
|
259
|
+
# -->
|
260
|
+
# Returns a new BasicObject.
|
261
|
+
#
|
262
|
+
def initialize: () -> void
|
263
|
+
|
264
|
+
private
|
265
|
+
|
266
|
+
# <!--
|
267
|
+
# rdoc-file=vm_eval.c
|
268
|
+
# - obj.method_missing(symbol [, *args] ) -> result
|
269
|
+
# -->
|
270
|
+
# Invoked by Ruby when *obj* is sent a message it cannot handle. *symbol* is the
|
271
|
+
# symbol for the method called, and *args* are any arguments that were passed to
|
272
|
+
# it. By default, the interpreter raises an error when this method is called.
|
273
|
+
# However, it is possible to override the method to provide more dynamic
|
274
|
+
# behavior. If it is decided that a particular method should not be handled,
|
275
|
+
# then *super* should be called, so that ancestors can pick up the missing
|
276
|
+
# method. The example below creates a class `Roman`, which responds to methods
|
277
|
+
# with names consisting of roman numerals, returning the corresponding integer
|
278
|
+
# values.
|
279
|
+
#
|
280
|
+
# class Roman
|
281
|
+
# def roman_to_int(str)
|
282
|
+
# # ...
|
283
|
+
# end
|
284
|
+
#
|
285
|
+
# def method_missing(symbol, *args)
|
286
|
+
# str = symbol.id2name
|
287
|
+
# begin
|
288
|
+
# roman_to_int(str)
|
289
|
+
# rescue
|
290
|
+
# super(symbol, *args)
|
291
|
+
# end
|
292
|
+
# end
|
293
|
+
# end
|
294
|
+
#
|
295
|
+
# r = Roman.new
|
296
|
+
# r.iv #=> 4
|
297
|
+
# r.xxiii #=> 23
|
298
|
+
# r.mm #=> 2000
|
299
|
+
# r.foo #=> NoMethodError
|
300
|
+
#
|
301
|
+
def method_missing: (Symbol, *untyped, **untyped) ?{ (?) -> untyped } -> untyped
|
302
|
+
|
303
|
+
# <!--
|
304
|
+
# rdoc-file=object.c
|
305
|
+
# - singleton_method_added(symbol)
|
306
|
+
# -->
|
307
|
+
# Invoked as a callback whenever a singleton method is added to the receiver.
|
308
|
+
#
|
309
|
+
# module Chatty
|
310
|
+
# def Chatty.singleton_method_added(id)
|
311
|
+
# puts "Adding #{id.id2name}"
|
312
|
+
# end
|
313
|
+
# def self.one() end
|
314
|
+
# def two() end
|
315
|
+
# def Chatty.three() end
|
316
|
+
# end
|
317
|
+
#
|
318
|
+
# *produces:*
|
319
|
+
#
|
320
|
+
# Adding singleton_method_added
|
321
|
+
# Adding one
|
322
|
+
# Adding three
|
323
|
+
#
|
324
|
+
def singleton_method_added: (Symbol name) -> nil
|
325
|
+
|
326
|
+
# <!--
|
327
|
+
# rdoc-file=object.c
|
328
|
+
# - singleton_method_removed(symbol)
|
329
|
+
# -->
|
330
|
+
# Invoked as a callback whenever a singleton method is removed from the
|
331
|
+
# receiver.
|
332
|
+
#
|
333
|
+
# module Chatty
|
334
|
+
# def Chatty.singleton_method_removed(id)
|
335
|
+
# puts "Removing #{id.id2name}"
|
336
|
+
# end
|
337
|
+
# def self.one() end
|
338
|
+
# def two() end
|
339
|
+
# def Chatty.three() end
|
340
|
+
# class << self
|
341
|
+
# remove_method :three
|
342
|
+
# remove_method :one
|
343
|
+
# end
|
344
|
+
# end
|
345
|
+
#
|
346
|
+
# *produces:*
|
347
|
+
#
|
348
|
+
# Removing three
|
349
|
+
# Removing one
|
350
|
+
#
|
351
|
+
def singleton_method_removed: (Symbol name) -> nil
|
352
|
+
|
353
|
+
# <!--
|
354
|
+
# rdoc-file=object.c
|
355
|
+
# - singleton_method_undefined(symbol)
|
356
|
+
# -->
|
357
|
+
# Invoked as a callback whenever a singleton method is undefined in the
|
358
|
+
# receiver.
|
359
|
+
#
|
360
|
+
# module Chatty
|
361
|
+
# def Chatty.singleton_method_undefined(id)
|
362
|
+
# puts "Undefining #{id.id2name}"
|
363
|
+
# end
|
364
|
+
# def Chatty.one() end
|
365
|
+
# class << self
|
366
|
+
# undef_method(:one)
|
367
|
+
# end
|
368
|
+
# end
|
369
|
+
#
|
370
|
+
# *produces:*
|
371
|
+
#
|
372
|
+
# Undefining one
|
373
|
+
#
|
374
|
+
def singleton_method_undefined: (Symbol name) -> nil
|
375
|
+
end
|
data/core/binding.rbs
ADDED
@@ -0,0 +1,150 @@
|
|
1
|
+
# <!-- rdoc-file=proc.c -->
|
2
|
+
# Objects of class Binding encapsulate the execution context at some particular
|
3
|
+
# place in the code and retain this context for future use. The variables,
|
4
|
+
# methods, value of `self`, and possibly an iterator block that can be accessed
|
5
|
+
# in this context are all retained. Binding objects can be created using
|
6
|
+
# Kernel#binding, and are made available to the callback of
|
7
|
+
# Kernel#set_trace_func and instances of TracePoint.
|
8
|
+
#
|
9
|
+
# These binding objects can be passed as the second argument of the Kernel#eval
|
10
|
+
# method, establishing an environment for the evaluation.
|
11
|
+
#
|
12
|
+
# class Demo
|
13
|
+
# def initialize(n)
|
14
|
+
# @secret = n
|
15
|
+
# end
|
16
|
+
# def get_binding
|
17
|
+
# binding
|
18
|
+
# end
|
19
|
+
# end
|
20
|
+
#
|
21
|
+
# k1 = Demo.new(99)
|
22
|
+
# b1 = k1.get_binding
|
23
|
+
# k2 = Demo.new(-3)
|
24
|
+
# b2 = k2.get_binding
|
25
|
+
#
|
26
|
+
# eval("@secret", b1) #=> 99
|
27
|
+
# eval("@secret", b2) #=> -3
|
28
|
+
# eval("@secret") #=> nil
|
29
|
+
#
|
30
|
+
# Binding objects have no class-specific methods.
|
31
|
+
#
|
32
|
+
class Binding
|
33
|
+
def clone: () -> self
|
34
|
+
|
35
|
+
def dup: () -> self
|
36
|
+
|
37
|
+
# <!--
|
38
|
+
# rdoc-file=proc.c
|
39
|
+
# - binding.eval(string [, filename [,lineno]]) -> obj
|
40
|
+
# -->
|
41
|
+
# Evaluates the Ruby expression(s) in *string*, in the *binding*'s context. If
|
42
|
+
# the optional *filename* and *lineno* parameters are present, they will be used
|
43
|
+
# when reporting syntax errors.
|
44
|
+
#
|
45
|
+
# def get_binding(param)
|
46
|
+
# binding
|
47
|
+
# end
|
48
|
+
# b = get_binding("hello")
|
49
|
+
# b.eval("param") #=> "hello"
|
50
|
+
#
|
51
|
+
def eval: (string src, ?string filename, ?int lineno) -> untyped
|
52
|
+
|
53
|
+
# <!--
|
54
|
+
# rdoc-file=proc.c
|
55
|
+
# - binding.local_variable_defined?(symbol) -> obj
|
56
|
+
# -->
|
57
|
+
# Returns `true` if a local variable `symbol` exists.
|
58
|
+
#
|
59
|
+
# def foo
|
60
|
+
# a = 1
|
61
|
+
# binding.local_variable_defined?(:a) #=> true
|
62
|
+
# binding.local_variable_defined?(:b) #=> false
|
63
|
+
# end
|
64
|
+
#
|
65
|
+
# This method is the short version of the following code:
|
66
|
+
#
|
67
|
+
# binding.eval("defined?(#{symbol}) == 'local-variable'")
|
68
|
+
#
|
69
|
+
def local_variable_defined?: (interned varname) -> bool
|
70
|
+
|
71
|
+
# <!--
|
72
|
+
# rdoc-file=proc.c
|
73
|
+
# - binding.local_variable_get(symbol) -> obj
|
74
|
+
# -->
|
75
|
+
# Returns the value of the local variable `symbol`.
|
76
|
+
#
|
77
|
+
# def foo
|
78
|
+
# a = 1
|
79
|
+
# binding.local_variable_get(:a) #=> 1
|
80
|
+
# binding.local_variable_get(:b) #=> NameError
|
81
|
+
# end
|
82
|
+
#
|
83
|
+
# This method is the short version of the following code:
|
84
|
+
#
|
85
|
+
# binding.eval("#{symbol}")
|
86
|
+
#
|
87
|
+
def local_variable_get: (interned varname) -> untyped
|
88
|
+
|
89
|
+
# <!--
|
90
|
+
# rdoc-file=proc.c
|
91
|
+
# - binding.local_variable_set(symbol, obj) -> obj
|
92
|
+
# -->
|
93
|
+
# Set local variable named `symbol` as `obj`.
|
94
|
+
#
|
95
|
+
# def foo
|
96
|
+
# a = 1
|
97
|
+
# bind = binding
|
98
|
+
# bind.local_variable_set(:a, 2) # set existing local variable `a'
|
99
|
+
# bind.local_variable_set(:b, 3) # create new local variable `b'
|
100
|
+
# # `b' exists only in binding
|
101
|
+
#
|
102
|
+
# p bind.local_variable_get(:a) #=> 2
|
103
|
+
# p bind.local_variable_get(:b) #=> 3
|
104
|
+
# p a #=> 2
|
105
|
+
# p b #=> NameError
|
106
|
+
# end
|
107
|
+
#
|
108
|
+
# This method behaves similarly to the following code:
|
109
|
+
#
|
110
|
+
# binding.eval("#{symbol} = #{obj}")
|
111
|
+
#
|
112
|
+
# if `obj` can be dumped in Ruby code.
|
113
|
+
#
|
114
|
+
def local_variable_set: [U] (interned varname, U obj) -> U
|
115
|
+
|
116
|
+
# <!--
|
117
|
+
# rdoc-file=proc.c
|
118
|
+
# - binding.local_variables -> Array
|
119
|
+
# -->
|
120
|
+
# Returns the names of the binding's local variables as symbols.
|
121
|
+
#
|
122
|
+
# def foo
|
123
|
+
# a = 1
|
124
|
+
# 2.times do |n|
|
125
|
+
# binding.local_variables #=> [:a, :n]
|
126
|
+
# end
|
127
|
+
# end
|
128
|
+
#
|
129
|
+
# This method is the short version of the following code:
|
130
|
+
#
|
131
|
+
# binding.eval("local_variables")
|
132
|
+
#
|
133
|
+
def local_variables: () -> Array[Symbol]
|
134
|
+
|
135
|
+
# <!--
|
136
|
+
# rdoc-file=proc.c
|
137
|
+
# - binding.receiver -> object
|
138
|
+
# -->
|
139
|
+
# Returns the bound receiver of the binding object.
|
140
|
+
#
|
141
|
+
def receiver: () -> untyped
|
142
|
+
|
143
|
+
# <!--
|
144
|
+
# rdoc-file=proc.c
|
145
|
+
# - binding.source_location -> [String, Integer]
|
146
|
+
# -->
|
147
|
+
# Returns the Ruby source filename and line number of the binding object.
|
148
|
+
#
|
149
|
+
def source_location: () -> [String, Integer]
|
150
|
+
end
|