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/match_data.rbs
ADDED
@@ -0,0 +1,635 @@
|
|
1
|
+
# <!-- rdoc-file=re.c -->
|
2
|
+
# MatchData encapsulates the result of matching a Regexp against string. It is
|
3
|
+
# returned by Regexp#match and String#match, and also stored in a global
|
4
|
+
# variable returned by Regexp.last_match.
|
5
|
+
#
|
6
|
+
# Usage:
|
7
|
+
#
|
8
|
+
# url = 'https://docs.ruby-lang.org/en/2.5.0/MatchData.html'
|
9
|
+
# m = url.match(/(\d\.?)+/) # => #<MatchData "2.5.0" 1:"0">
|
10
|
+
# m.string # => "https://docs.ruby-lang.org/en/2.5.0/MatchData.html"
|
11
|
+
# m.regexp # => /(\d\.?)+/
|
12
|
+
# # entire matched substring:
|
13
|
+
# m[0] # => "2.5.0"
|
14
|
+
#
|
15
|
+
# # Working with unnamed captures
|
16
|
+
# m = url.match(%r{([^/]+)/([^/]+)\.html$})
|
17
|
+
# m.captures # => ["2.5.0", "MatchData"]
|
18
|
+
# m[1] # => "2.5.0"
|
19
|
+
# m.values_at(1, 2) # => ["2.5.0", "MatchData"]
|
20
|
+
#
|
21
|
+
# # Working with named captures
|
22
|
+
# m = url.match(%r{(?<version>[^/]+)/(?<module>[^/]+)\.html$})
|
23
|
+
# m.captures # => ["2.5.0", "MatchData"]
|
24
|
+
# m.named_captures # => {"version"=>"2.5.0", "module"=>"MatchData"}
|
25
|
+
# m[:version] # => "2.5.0"
|
26
|
+
# m.values_at(:version, :module)
|
27
|
+
# # => ["2.5.0", "MatchData"]
|
28
|
+
# # Numerical indexes are working, too
|
29
|
+
# m[1] # => "2.5.0"
|
30
|
+
# m.values_at(1, 2) # => ["2.5.0", "MatchData"]
|
31
|
+
#
|
32
|
+
# ## Global variables equivalence
|
33
|
+
#
|
34
|
+
# Parts of last MatchData (returned by Regexp.last_match) are also aliased as
|
35
|
+
# global variables:
|
36
|
+
#
|
37
|
+
# * `$~` is Regexp.last_match;
|
38
|
+
# * `$&` is Regexp.last_match`[ 0 ]`;
|
39
|
+
# * `$1`, `$2`, and so on are Regexp.last_match`[ i ]` (captures by number);
|
40
|
+
# * `$`` is Regexp.last_match`.pre_match`;
|
41
|
+
# * `$'` is Regexp.last_match`.post_match`;
|
42
|
+
# * `$+` is Regexp.last_match`[ -1 ]` (the last capture).
|
43
|
+
#
|
44
|
+
# See also "Special global variables" section in Regexp documentation.
|
45
|
+
#
|
46
|
+
class MatchData
|
47
|
+
type capture = String | Symbol | int
|
48
|
+
|
49
|
+
def initialize_copy: (MatchData instance) -> self
|
50
|
+
|
51
|
+
# <!-- rdoc-file=re.c -->
|
52
|
+
# Returns `true` if `object` is another MatchData object whose target string,
|
53
|
+
# regexp, match, and captures are the same as `self`, `false` otherwise.
|
54
|
+
#
|
55
|
+
def ==: (MatchData other) -> bool
|
56
|
+
| (untyped) -> false
|
57
|
+
|
58
|
+
# <!--
|
59
|
+
# rdoc-file=re.c
|
60
|
+
# - matchdata[index] -> string or nil
|
61
|
+
# - matchdata[start, length] -> array
|
62
|
+
# - matchdata[range] -> array
|
63
|
+
# - matchdata[name] -> string or nil
|
64
|
+
# -->
|
65
|
+
# When arguments `index`, +start and `length`, or `range` are given, returns
|
66
|
+
# match and captures in the style of Array#[]:
|
67
|
+
#
|
68
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
69
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
70
|
+
# m[0] # => "HX1138"
|
71
|
+
# m[1, 2] # => ["H", "X"]
|
72
|
+
# m[1..3] # => ["H", "X", "113"]
|
73
|
+
# m[-3, 2] # => ["X", "113"]
|
74
|
+
#
|
75
|
+
# When string or symbol argument `name` is given, returns the matched substring
|
76
|
+
# for the given name:
|
77
|
+
#
|
78
|
+
# m = /(?<foo>.)(.)(?<bar>.+)/.match("hoge")
|
79
|
+
# # => #<MatchData "hoge" foo:"h" bar:"ge">
|
80
|
+
# m['foo'] # => "h"
|
81
|
+
# m[:bar] # => "ge"
|
82
|
+
#
|
83
|
+
# If multiple captures have the same name, returns the last matched substring.
|
84
|
+
#
|
85
|
+
# m = /(?<foo>.)(?<foo>.+)/.match("hoge")
|
86
|
+
# # => #<MatchData "hoge" foo:"h" foo:"oge">
|
87
|
+
# m[:foo] #=> "oge"
|
88
|
+
#
|
89
|
+
# m = /\W(?<foo>.+)|\w(?<foo>.+)|(?<foo>.+)/.match("hoge")
|
90
|
+
# #<MatchData "hoge" foo:nil foo:"oge" foo:nil>
|
91
|
+
# m[:foo] #=> "oge"
|
92
|
+
#
|
93
|
+
def []: (capture backref, ?nil) -> String?
|
94
|
+
| (int start, int length) -> Array[String?]
|
95
|
+
| (range[int?] range) -> Array[String?]
|
96
|
+
|
97
|
+
# <!--
|
98
|
+
# rdoc-file=re.c
|
99
|
+
# - begin(n) -> integer
|
100
|
+
# - begin(name) -> integer
|
101
|
+
# -->
|
102
|
+
# Returns the offset (in characters) of the beginning of the specified match.
|
103
|
+
#
|
104
|
+
# When non-negative integer argument `n` is given, returns the offset of the
|
105
|
+
# beginning of the `n`th match:
|
106
|
+
#
|
107
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
108
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
109
|
+
# m[0] # => "HX1138"
|
110
|
+
# m.begin(0) # => 1
|
111
|
+
# m[3] # => "113"
|
112
|
+
# m.begin(3) # => 3
|
113
|
+
#
|
114
|
+
# m = /(т)(е)(с)/.match('тест')
|
115
|
+
# # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
|
116
|
+
# m[0] # => "тес"
|
117
|
+
# m.begin(0) # => 0
|
118
|
+
# m[3] # => "с"
|
119
|
+
# m.begin(3) # => 2
|
120
|
+
#
|
121
|
+
# When string or symbol argument `name` is given, returns the offset of the
|
122
|
+
# beginning for the named match:
|
123
|
+
#
|
124
|
+
# m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
|
125
|
+
# # => #<MatchData "hog" foo:"h" bar:"g">
|
126
|
+
# m[:foo] # => "h"
|
127
|
+
# m.begin('foo') # => 0
|
128
|
+
# m[:bar] # => "g"
|
129
|
+
# m.begin(:bar) # => 2
|
130
|
+
#
|
131
|
+
# Related: MatchData#end, MatchData#offset, MatchData#byteoffset.
|
132
|
+
#
|
133
|
+
def begin: (capture backref) -> Integer?
|
134
|
+
|
135
|
+
# <!--
|
136
|
+
# rdoc-file=re.c
|
137
|
+
# - bytebegin(n) -> integer
|
138
|
+
# - bytebegin(name) -> integer
|
139
|
+
# -->
|
140
|
+
# Returns the offset (in bytes) of the beginning of the specified match.
|
141
|
+
#
|
142
|
+
# When non-negative integer argument `n` is given, returns the offset of the
|
143
|
+
# beginning of the `n`th match:
|
144
|
+
#
|
145
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
146
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
147
|
+
# m[0] # => "HX1138"
|
148
|
+
# m.bytebegin(0) # => 1
|
149
|
+
# m[3] # => "113"
|
150
|
+
# m.bytebegin(3) # => 3
|
151
|
+
#
|
152
|
+
# m = /(т)(е)(с)/.match('тест')
|
153
|
+
# # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
|
154
|
+
# m[0] # => "тес"
|
155
|
+
# m.bytebegin(0) # => 0
|
156
|
+
# m[3] # => "с"
|
157
|
+
# m.bytebegin(3) # => 4
|
158
|
+
#
|
159
|
+
# When string or symbol argument `name` is given, returns the offset of the
|
160
|
+
# beginning for the named match:
|
161
|
+
#
|
162
|
+
# m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
|
163
|
+
# # => #<MatchData "hog" foo:"h" bar:"g">
|
164
|
+
# m[:foo] # => "h"
|
165
|
+
# m.bytebegin('foo') # => 0
|
166
|
+
# m[:bar] # => "g"
|
167
|
+
# m.bytebegin(:bar) # => 2
|
168
|
+
#
|
169
|
+
# Related: MatchData#byteend, MatchData#byteoffset.
|
170
|
+
#
|
171
|
+
def bytebegin: (capture backref) -> Integer?
|
172
|
+
|
173
|
+
# <!--
|
174
|
+
# rdoc-file=re.c
|
175
|
+
# - byteend(n) -> integer
|
176
|
+
# - byteend(name) -> integer
|
177
|
+
# -->
|
178
|
+
# Returns the offset (in bytes) of the end of the specified match.
|
179
|
+
#
|
180
|
+
# When non-negative integer argument `n` is given, returns the offset of the end
|
181
|
+
# of the `n`th match:
|
182
|
+
#
|
183
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
184
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
185
|
+
# m[0] # => "HX1138"
|
186
|
+
# m.byteend(0) # => 7
|
187
|
+
# m[3] # => "113"
|
188
|
+
# m.byteend(3) # => 6
|
189
|
+
#
|
190
|
+
# m = /(т)(е)(с)/.match('тест')
|
191
|
+
# # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
|
192
|
+
# m[0] # => "тес"
|
193
|
+
# m.byteend(0) # => 6
|
194
|
+
# m[3] # => "с"
|
195
|
+
# m.byteend(3) # => 6
|
196
|
+
#
|
197
|
+
# When string or symbol argument `name` is given, returns the offset of the end
|
198
|
+
# for the named match:
|
199
|
+
#
|
200
|
+
# m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
|
201
|
+
# # => #<MatchData "hog" foo:"h" bar:"g">
|
202
|
+
# m[:foo] # => "h"
|
203
|
+
# m.byteend('foo') # => 1
|
204
|
+
# m[:bar] # => "g"
|
205
|
+
# m.byteend(:bar) # => 3
|
206
|
+
#
|
207
|
+
# Related: MatchData#bytebegin, MatchData#byteoffset.
|
208
|
+
#
|
209
|
+
def byteend: (capture backref) -> Integer?
|
210
|
+
|
211
|
+
# <!--
|
212
|
+
# rdoc-file=re.c
|
213
|
+
# - mtch.byteoffset(n) -> array
|
214
|
+
# -->
|
215
|
+
# Returns a two-element array containing the beginning and ending byte-based
|
216
|
+
# offsets of the *n*th match. *n* can be a string or symbol to reference a named
|
217
|
+
# capture.
|
218
|
+
#
|
219
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
220
|
+
# m.byteoffset(0) #=> [1, 7]
|
221
|
+
# m.byteoffset(4) #=> [6, 7]
|
222
|
+
#
|
223
|
+
# m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
|
224
|
+
# p m.byteoffset(:foo) #=> [0, 1]
|
225
|
+
# p m.byteoffset(:bar) #=> [2, 3]
|
226
|
+
#
|
227
|
+
def byteoffset: (capture backref) -> ([Integer, Integer] | [nil, nil])
|
228
|
+
|
229
|
+
# <!--
|
230
|
+
# rdoc-file=re.c
|
231
|
+
# - captures -> array
|
232
|
+
# -->
|
233
|
+
# Returns the array of captures, which are all matches except `m[0]`:
|
234
|
+
#
|
235
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
236
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
237
|
+
# m[0] # => "HX1138"
|
238
|
+
# m.captures # => ["H", "X", "113", "8"]
|
239
|
+
#
|
240
|
+
# Related: MatchData.to_a.
|
241
|
+
#
|
242
|
+
def captures: () -> Array[String?]
|
243
|
+
|
244
|
+
# <!-- rdoc-file=re.c -->
|
245
|
+
# Returns the array of captures, which are all matches except `m[0]`:
|
246
|
+
#
|
247
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
248
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
249
|
+
# m[0] # => "HX1138"
|
250
|
+
# m.captures # => ["H", "X", "113", "8"]
|
251
|
+
#
|
252
|
+
# Related: MatchData.to_a.
|
253
|
+
#
|
254
|
+
alias deconstruct captures
|
255
|
+
|
256
|
+
# <!--
|
257
|
+
# rdoc-file=re.c
|
258
|
+
# - deconstruct_keys(array_of_names) -> hash
|
259
|
+
# -->
|
260
|
+
# Returns a hash of the named captures for the given names.
|
261
|
+
#
|
262
|
+
# m = /(?<hours>\d{2}):(?<minutes>\d{2}):(?<seconds>\d{2})/.match("18:37:22")
|
263
|
+
# m.deconstruct_keys([:hours, :minutes]) # => {:hours => "18", :minutes => "37"}
|
264
|
+
# m.deconstruct_keys(nil) # => {:hours => "18", :minutes => "37", :seconds => "22"}
|
265
|
+
#
|
266
|
+
# Returns an empty hash if no named captures were defined:
|
267
|
+
#
|
268
|
+
# m = /(\d{2}):(\d{2}):(\d{2})/.match("18:37:22")
|
269
|
+
# m.deconstruct_keys(nil) # => {}
|
270
|
+
#
|
271
|
+
def deconstruct_keys: (Array[Symbol]? array_of_names) -> Hash[Symbol, String?]
|
272
|
+
|
273
|
+
# <!--
|
274
|
+
# rdoc-file=re.c
|
275
|
+
# - end(n) -> integer
|
276
|
+
# - end(name) -> integer
|
277
|
+
# -->
|
278
|
+
# Returns the offset (in characters) of the end of the specified match.
|
279
|
+
#
|
280
|
+
# When non-negative integer argument `n` is given, returns the offset of the end
|
281
|
+
# of the `n`th match:
|
282
|
+
#
|
283
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
284
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
285
|
+
# m[0] # => "HX1138"
|
286
|
+
# m.end(0) # => 7
|
287
|
+
# m[3] # => "113"
|
288
|
+
# m.end(3) # => 6
|
289
|
+
#
|
290
|
+
# m = /(т)(е)(с)/.match('тест')
|
291
|
+
# # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
|
292
|
+
# m[0] # => "тес"
|
293
|
+
# m.end(0) # => 3
|
294
|
+
# m[3] # => "с"
|
295
|
+
# m.end(3) # => 3
|
296
|
+
#
|
297
|
+
# When string or symbol argument `name` is given, returns the offset of the end
|
298
|
+
# for the named match:
|
299
|
+
#
|
300
|
+
# m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
|
301
|
+
# # => #<MatchData "hog" foo:"h" bar:"g">
|
302
|
+
# m[:foo] # => "h"
|
303
|
+
# m.end('foo') # => 1
|
304
|
+
# m[:bar] # => "g"
|
305
|
+
# m.end(:bar) # => 3
|
306
|
+
#
|
307
|
+
# Related: MatchData#begin, MatchData#offset, MatchData#byteoffset.
|
308
|
+
#
|
309
|
+
def end: (capture backref) -> Integer?
|
310
|
+
|
311
|
+
# <!--
|
312
|
+
# rdoc-file=re.c
|
313
|
+
# - matchdata == object -> true or false
|
314
|
+
# -->
|
315
|
+
# Returns `true` if `object` is another MatchData object whose target string,
|
316
|
+
# regexp, match, and captures are the same as `self`, `false` otherwise.
|
317
|
+
#
|
318
|
+
alias eql? ==
|
319
|
+
|
320
|
+
# <!--
|
321
|
+
# rdoc-file=re.c
|
322
|
+
# - hash -> integer
|
323
|
+
# -->
|
324
|
+
# Returns the integer hash value for `self`, based on the target string, regexp,
|
325
|
+
# match, and captures.
|
326
|
+
#
|
327
|
+
# See also Object#hash.
|
328
|
+
#
|
329
|
+
def hash: () -> Integer
|
330
|
+
|
331
|
+
# <!--
|
332
|
+
# rdoc-file=re.c
|
333
|
+
# - inspect -> string
|
334
|
+
# -->
|
335
|
+
# Returns a string representation of `self`:
|
336
|
+
#
|
337
|
+
# m = /.$/.match("foo")
|
338
|
+
# # => #<MatchData "o">
|
339
|
+
# m.inspect # => "#<MatchData \"o\">"
|
340
|
+
#
|
341
|
+
# m = /(.)(.)(.)/.match("foo")
|
342
|
+
# # => #<MatchData "foo" 1:"f" 2:"o" 3:"o">
|
343
|
+
# m.inspect # => "#<MatchData \"foo\" 1:\"f\" 2:\"o\
|
344
|
+
#
|
345
|
+
# m = /(.)(.)?(.)/.match("fo")
|
346
|
+
# # => #<MatchData "fo" 1:"f" 2:nil 3:"o">
|
347
|
+
# m.inspect # => "#<MatchData \"fo\" 1:\"f\" 2:nil 3:\"o\">"
|
348
|
+
#
|
349
|
+
# Related: MatchData#to_s.
|
350
|
+
#
|
351
|
+
def inspect: () -> String
|
352
|
+
|
353
|
+
# <!-- rdoc-file=re.c -->
|
354
|
+
# Returns size of the match array:
|
355
|
+
#
|
356
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
357
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
358
|
+
# m.size # => 5
|
359
|
+
#
|
360
|
+
alias length size
|
361
|
+
|
362
|
+
# <!--
|
363
|
+
# rdoc-file=re.c
|
364
|
+
# - named_captures(symbolize_names: false) -> hash
|
365
|
+
# -->
|
366
|
+
# Returns a hash of the named captures; each key is a capture name; each value
|
367
|
+
# is its captured string or `nil`:
|
368
|
+
#
|
369
|
+
# m = /(?<foo>.)(.)(?<bar>.+)/.match("hoge")
|
370
|
+
# # => #<MatchData "hoge" foo:"h" bar:"ge">
|
371
|
+
# m.named_captures # => {"foo"=>"h", "bar"=>"ge"}
|
372
|
+
#
|
373
|
+
# m = /(?<a>.)(?<b>.)/.match("01")
|
374
|
+
# # => #<MatchData "01" a:"0" b:"1">
|
375
|
+
# m.named_captures #=> {"a" => "0", "b" => "1"}
|
376
|
+
#
|
377
|
+
# m = /(?<a>.)(?<b>.)?/.match("0")
|
378
|
+
# # => #<MatchData "0" a:"0" b:nil>
|
379
|
+
# m.named_captures #=> {"a" => "0", "b" => nil}
|
380
|
+
#
|
381
|
+
# m = /(?<a>.)(?<a>.)/.match("01")
|
382
|
+
# # => #<MatchData "01" a:"0" a:"1">
|
383
|
+
# m.named_captures #=> {"a" => "1"}
|
384
|
+
#
|
385
|
+
# If keyword argument `symbolize_names` is given a true value, the keys in the
|
386
|
+
# resulting hash are Symbols:
|
387
|
+
#
|
388
|
+
# m = /(?<a>.)(?<a>.)/.match("01")
|
389
|
+
# # => #<MatchData "01" a:"0" a:"1">
|
390
|
+
# m.named_captures(symbolize_names: true) #=> {:a => "1"}
|
391
|
+
#
|
392
|
+
def named_captures: () -> Hash[String, String?]
|
393
|
+
| (symbolize_names: true) -> Hash[Symbol, String?]
|
394
|
+
| (symbolize_names: boolish) -> Hash[String | Symbol, String?]
|
395
|
+
|
396
|
+
# <!--
|
397
|
+
# rdoc-file=re.c
|
398
|
+
# - names -> array_of_names
|
399
|
+
# -->
|
400
|
+
# Returns an array of the capture names (see [Named
|
401
|
+
# Captures](rdoc-ref:Regexp@Named+Captures)):
|
402
|
+
#
|
403
|
+
# m = /(?<foo>.)(?<bar>.)(?<baz>.)/.match("hoge")
|
404
|
+
# # => #<MatchData "hog" foo:"h" bar:"o" baz:"g">
|
405
|
+
# m.names # => ["foo", "bar", "baz"]
|
406
|
+
#
|
407
|
+
# m = /foo/.match('foo') # => #<MatchData "foo">
|
408
|
+
# m.names # => [] # No named captures.
|
409
|
+
#
|
410
|
+
# Equivalent to:
|
411
|
+
#
|
412
|
+
# m = /(?<foo>.)(?<bar>.)(?<baz>.)/.match("hoge")
|
413
|
+
# m.regexp.names # => ["foo", "bar", "baz"]
|
414
|
+
#
|
415
|
+
def names: () -> Array[String]
|
416
|
+
|
417
|
+
# <!--
|
418
|
+
# rdoc-file=re.c
|
419
|
+
# - match(n) -> string or nil
|
420
|
+
# - match(name) -> string or nil
|
421
|
+
# -->
|
422
|
+
# Returns the matched substring corresponding to the given argument.
|
423
|
+
#
|
424
|
+
# When non-negative argument `n` is given, returns the matched substring for the
|
425
|
+
# `n`th match:
|
426
|
+
#
|
427
|
+
# m = /(.)(.)(\d+)(\d)(\w)?/.match("THX1138.")
|
428
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8" 5:nil>
|
429
|
+
# m.match(0) # => "HX1138"
|
430
|
+
# m.match(4) # => "8"
|
431
|
+
# m.match(5) # => nil
|
432
|
+
#
|
433
|
+
# When string or symbol argument `name` is given, returns the matched substring
|
434
|
+
# for the given name:
|
435
|
+
#
|
436
|
+
# m = /(?<foo>.)(.)(?<bar>.+)/.match("hoge")
|
437
|
+
# # => #<MatchData "hoge" foo:"h" bar:"ge">
|
438
|
+
# m.match('foo') # => "h"
|
439
|
+
# m.match(:bar) # => "ge"
|
440
|
+
#
|
441
|
+
def match: (capture backref) -> String?
|
442
|
+
|
443
|
+
# <!--
|
444
|
+
# rdoc-file=re.c
|
445
|
+
# - match_length(n) -> integer or nil
|
446
|
+
# - match_length(name) -> integer or nil
|
447
|
+
# -->
|
448
|
+
# Returns the length (in characters) of the matched substring corresponding to
|
449
|
+
# the given argument.
|
450
|
+
#
|
451
|
+
# When non-negative argument `n` is given, returns the length of the matched
|
452
|
+
# substring for the `n`th match:
|
453
|
+
#
|
454
|
+
# m = /(.)(.)(\d+)(\d)(\w)?/.match("THX1138.")
|
455
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8" 5:nil>
|
456
|
+
# m.match_length(0) # => 6
|
457
|
+
# m.match_length(4) # => 1
|
458
|
+
# m.match_length(5) # => nil
|
459
|
+
#
|
460
|
+
# When string or symbol argument `name` is given, returns the length of the
|
461
|
+
# matched substring for the named match:
|
462
|
+
#
|
463
|
+
# m = /(?<foo>.)(.)(?<bar>.+)/.match("hoge")
|
464
|
+
# # => #<MatchData "hoge" foo:"h" bar:"ge">
|
465
|
+
# m.match_length('foo') # => 1
|
466
|
+
# m.match_length(:bar) # => 2
|
467
|
+
#
|
468
|
+
def match_length: (capture backref) -> Integer?
|
469
|
+
|
470
|
+
# <!--
|
471
|
+
# rdoc-file=re.c
|
472
|
+
# - offset(n) -> [start_offset, end_offset]
|
473
|
+
# - offset(name) -> [start_offset, end_offset]
|
474
|
+
# -->
|
475
|
+
# Returns a 2-element array containing the beginning and ending offsets (in
|
476
|
+
# characters) of the specified match.
|
477
|
+
#
|
478
|
+
# When non-negative integer argument `n` is given, returns the starting and
|
479
|
+
# ending offsets of the `n`th match:
|
480
|
+
#
|
481
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
482
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
483
|
+
# m[0] # => "HX1138"
|
484
|
+
# m.offset(0) # => [1, 7]
|
485
|
+
# m[3] # => "113"
|
486
|
+
# m.offset(3) # => [3, 6]
|
487
|
+
#
|
488
|
+
# m = /(т)(е)(с)/.match('тест')
|
489
|
+
# # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
|
490
|
+
# m[0] # => "тес"
|
491
|
+
# m.offset(0) # => [0, 3]
|
492
|
+
# m[3] # => "с"
|
493
|
+
# m.offset(3) # => [2, 3]
|
494
|
+
#
|
495
|
+
# When string or symbol argument `name` is given, returns the starting and
|
496
|
+
# ending offsets for the named match:
|
497
|
+
#
|
498
|
+
# m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
|
499
|
+
# # => #<MatchData "hog" foo:"h" bar:"g">
|
500
|
+
# m[:foo] # => "h"
|
501
|
+
# m.offset('foo') # => [0, 1]
|
502
|
+
# m[:bar] # => "g"
|
503
|
+
# m.offset(:bar) # => [2, 3]
|
504
|
+
#
|
505
|
+
# Related: MatchData#byteoffset, MatchData#begin, MatchData#end.
|
506
|
+
#
|
507
|
+
def offset: (capture backref) -> ([Integer, Integer] | [nil, nil])
|
508
|
+
|
509
|
+
# <!--
|
510
|
+
# rdoc-file=re.c
|
511
|
+
# - post_match -> str
|
512
|
+
# -->
|
513
|
+
# Returns the substring of the target string from the end of the first match in
|
514
|
+
# `self` (that is, `self[0]`) to the end of the string; equivalent to regexp
|
515
|
+
# global variable `$'`:
|
516
|
+
#
|
517
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138: The Movie")
|
518
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
519
|
+
# m[0] # => "HX1138"
|
520
|
+
# m.post_match # => ": The Movie"\
|
521
|
+
#
|
522
|
+
# Related: MatchData.pre_match.
|
523
|
+
#
|
524
|
+
def post_match: () -> String
|
525
|
+
|
526
|
+
# <!--
|
527
|
+
# rdoc-file=re.c
|
528
|
+
# - pre_match -> string
|
529
|
+
# -->
|
530
|
+
# Returns the substring of the target string from its beginning up to the first
|
531
|
+
# match in `self` (that is, `self[0]`); equivalent to regexp global variable
|
532
|
+
# `$``:
|
533
|
+
#
|
534
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
535
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
536
|
+
# m[0] # => "HX1138"
|
537
|
+
# m.pre_match # => "T"
|
538
|
+
#
|
539
|
+
# Related: MatchData#post_match.
|
540
|
+
#
|
541
|
+
def pre_match: () -> String
|
542
|
+
|
543
|
+
# <!--
|
544
|
+
# rdoc-file=re.c
|
545
|
+
# - regexp -> regexp
|
546
|
+
# -->
|
547
|
+
# Returns the regexp that produced the match:
|
548
|
+
#
|
549
|
+
# m = /a.*b/.match("abc") # => #<MatchData "ab">
|
550
|
+
# m.regexp # => /a.*b/
|
551
|
+
#
|
552
|
+
def regexp: () -> Regexp
|
553
|
+
|
554
|
+
# <!--
|
555
|
+
# rdoc-file=re.c
|
556
|
+
# - size -> integer
|
557
|
+
# -->
|
558
|
+
# Returns size of the match array:
|
559
|
+
#
|
560
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
561
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
562
|
+
# m.size # => 5
|
563
|
+
#
|
564
|
+
def size: () -> Integer
|
565
|
+
|
566
|
+
# <!--
|
567
|
+
# rdoc-file=re.c
|
568
|
+
# - string -> string
|
569
|
+
# -->
|
570
|
+
# Returns the target string if it was frozen; otherwise, returns a frozen copy
|
571
|
+
# of the target string:
|
572
|
+
#
|
573
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
574
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
575
|
+
# m.string # => "THX1138."
|
576
|
+
#
|
577
|
+
def string: () -> String
|
578
|
+
|
579
|
+
# <!--
|
580
|
+
# rdoc-file=re.c
|
581
|
+
# - to_a -> array
|
582
|
+
# -->
|
583
|
+
# Returns the array of matches:
|
584
|
+
#
|
585
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
586
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
587
|
+
# m.to_a # => ["HX1138", "H", "X", "113", "8"]
|
588
|
+
#
|
589
|
+
# Related: MatchData#captures.
|
590
|
+
#
|
591
|
+
def to_a: () -> Array[String?]
|
592
|
+
|
593
|
+
# <!--
|
594
|
+
# rdoc-file=re.c
|
595
|
+
# - to_s -> string
|
596
|
+
# -->
|
597
|
+
# Returns the matched string:
|
598
|
+
#
|
599
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138.")
|
600
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
601
|
+
# m.to_s # => "HX1138"
|
602
|
+
#
|
603
|
+
# m = /(?<foo>.)(.)(?<bar>.+)/.match("hoge")
|
604
|
+
# # => #<MatchData "hoge" foo:"h" bar:"ge">
|
605
|
+
# m.to_s # => "hoge"
|
606
|
+
#
|
607
|
+
# Related: MatchData.inspect.
|
608
|
+
#
|
609
|
+
def to_s: () -> String
|
610
|
+
|
611
|
+
# <!--
|
612
|
+
# rdoc-file=re.c
|
613
|
+
# - values_at(*indexes) -> array
|
614
|
+
# -->
|
615
|
+
# Returns match and captures at the given `indexes`, which may include any
|
616
|
+
# mixture of:
|
617
|
+
#
|
618
|
+
# * Integers.
|
619
|
+
# * Ranges.
|
620
|
+
# * Names (strings and symbols).
|
621
|
+
#
|
622
|
+
# Examples:
|
623
|
+
#
|
624
|
+
# m = /(.)(.)(\d+)(\d)/.match("THX1138: The Movie")
|
625
|
+
# # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
|
626
|
+
# m.values_at(0, 2, -2) # => ["HX1138", "X", "113"]
|
627
|
+
# m.values_at(1..2, -1) # => ["H", "X", "8"]
|
628
|
+
#
|
629
|
+
# m = /(?<a>\d+) *(?<op>[+\-*\/]) *(?<b>\d+)/.match("1 + 2")
|
630
|
+
# # => #<MatchData "1 + 2" a:"1" op:"+" b:"2">
|
631
|
+
# m.values_at(0, 1..2, :a, :b, :op)
|
632
|
+
# # => ["1 + 2", "1", "+", "1", "2", "+"]
|
633
|
+
#
|
634
|
+
def values_at: (*capture | range[int?] backrefs) -> Array[String?]
|
635
|
+
end
|