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,582 @@
|
|
1
|
+
# <!-- rdoc-file=lib/uri/common.rb -->
|
2
|
+
# Base class for all URI exceptions.
|
3
|
+
#
|
4
|
+
class URI::Error < StandardError
|
5
|
+
end
|
6
|
+
|
7
|
+
# <!-- rdoc-file=lib/uri/common.rb -->
|
8
|
+
# Not a URI.
|
9
|
+
#
|
10
|
+
class URI::InvalidURIError < URI::Error
|
11
|
+
end
|
12
|
+
|
13
|
+
# <!-- rdoc-file=lib/uri/common.rb -->
|
14
|
+
# Not a URI component.
|
15
|
+
#
|
16
|
+
class URI::InvalidComponentError < URI::Error
|
17
|
+
end
|
18
|
+
|
19
|
+
# <!-- rdoc-file=lib/uri/common.rb -->
|
20
|
+
# URI is valid, bad usage is not.
|
21
|
+
#
|
22
|
+
class URI::BadURIError < URI::Error
|
23
|
+
end
|
24
|
+
|
25
|
+
# <!-- rdoc-file=lib/uri.rb -->
|
26
|
+
# URI is a module providing classes to handle Uniform Resource Identifiers
|
27
|
+
# ([RFC2396](https://www.rfc-editor.org/rfc/rfc2396)).
|
28
|
+
#
|
29
|
+
# ## Features
|
30
|
+
#
|
31
|
+
# * Uniform way of handling URIs.
|
32
|
+
# * Flexibility to introduce custom URI schemes.
|
33
|
+
# * Flexibility to have an alternate URI::Parser (or just different patterns
|
34
|
+
# and regexp's).
|
35
|
+
#
|
36
|
+
# ## Basic example
|
37
|
+
#
|
38
|
+
# require 'uri'
|
39
|
+
#
|
40
|
+
# uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")
|
41
|
+
# #=> #<URI::HTTP http://foo.com/posts?id=30&limit=5#time=1305298413>
|
42
|
+
#
|
43
|
+
# uri.scheme #=> "http"
|
44
|
+
# uri.host #=> "foo.com"
|
45
|
+
# uri.path #=> "/posts"
|
46
|
+
# uri.query #=> "id=30&limit=5"
|
47
|
+
# uri.fragment #=> "time=1305298413"
|
48
|
+
#
|
49
|
+
# uri.to_s #=> "http://foo.com/posts?id=30&limit=5#time=1305298413"
|
50
|
+
#
|
51
|
+
# ## Adding custom URIs
|
52
|
+
#
|
53
|
+
# module URI
|
54
|
+
# class RSYNC < Generic
|
55
|
+
# DEFAULT_PORT = 873
|
56
|
+
# end
|
57
|
+
# register_scheme 'RSYNC', RSYNC
|
58
|
+
# end
|
59
|
+
# #=> URI::RSYNC
|
60
|
+
#
|
61
|
+
# URI.scheme_list
|
62
|
+
# #=> {"FILE"=>URI::File, "FTP"=>URI::FTP, "HTTP"=>URI::HTTP,
|
63
|
+
# # "HTTPS"=>URI::HTTPS, "LDAP"=>URI::LDAP, "LDAPS"=>URI::LDAPS,
|
64
|
+
# # "MAILTO"=>URI::MailTo, "RSYNC"=>URI::RSYNC}
|
65
|
+
#
|
66
|
+
# uri = URI("rsync://rsync.foo.com")
|
67
|
+
# #=> #<URI::RSYNC rsync://rsync.foo.com>
|
68
|
+
#
|
69
|
+
# ## RFC References
|
70
|
+
#
|
71
|
+
# A good place to view an RFC spec is http://www.ietf.org/rfc.html.
|
72
|
+
#
|
73
|
+
# Here is a list of all related RFC's:
|
74
|
+
# * [RFC822](https://www.rfc-editor.org/rfc/rfc822)
|
75
|
+
# * [RFC1738](https://www.rfc-editor.org/rfc/rfc1738)
|
76
|
+
# * [RFC2255](https://www.rfc-editor.org/rfc/rfc2255)
|
77
|
+
# * [RFC2368](https://www.rfc-editor.org/rfc/rfc2368)
|
78
|
+
# * [RFC2373](https://www.rfc-editor.org/rfc/rfc2373)
|
79
|
+
# * [RFC2396](https://www.rfc-editor.org/rfc/rfc2396)
|
80
|
+
# * [RFC2732](https://www.rfc-editor.org/rfc/rfc2732)
|
81
|
+
# * [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)
|
82
|
+
#
|
83
|
+
# ## Class tree
|
84
|
+
#
|
85
|
+
# * URI::Generic (in uri/generic.rb)
|
86
|
+
# * URI::File - (in uri/file.rb)
|
87
|
+
# * URI::FTP - (in uri/ftp.rb)
|
88
|
+
# * URI::HTTP - (in uri/http.rb)
|
89
|
+
# * URI::HTTPS - (in uri/https.rb)
|
90
|
+
# * URI::LDAP - (in uri/ldap.rb)
|
91
|
+
# * URI::LDAPS - (in uri/ldaps.rb)
|
92
|
+
# * URI::MailTo - (in uri/mailto.rb)
|
93
|
+
# * URI::Parser - (in uri/common.rb)
|
94
|
+
# * URI::REGEXP - (in uri/common.rb)
|
95
|
+
# * URI::REGEXP::PATTERN - (in uri/common.rb)
|
96
|
+
# * URI::Util - (in uri/common.rb)
|
97
|
+
# * URI::Error - (in uri/common.rb)
|
98
|
+
# * URI::InvalidURIError - (in uri/common.rb)
|
99
|
+
# * URI::InvalidComponentError - (in uri/common.rb)
|
100
|
+
# * URI::BadURIError - (in uri/common.rb)
|
101
|
+
#
|
102
|
+
# ## Copyright Info
|
103
|
+
#
|
104
|
+
# Author
|
105
|
+
# : Akira Yamada <akira@ruby-lang.org>
|
106
|
+
#
|
107
|
+
# Documentation
|
108
|
+
# : Akira Yamada <akira@ruby-lang.org> Dmitry V. Sabanin <sdmitry@lrn.ru>
|
109
|
+
# Vincent Batts <vbatts@hashbangbash.com>
|
110
|
+
#
|
111
|
+
# License
|
112
|
+
# : Copyright (c) 2001 akira yamada <akira@ruby-lang.org> You can redistribute
|
113
|
+
# it and/or modify it under the same term as Ruby.
|
114
|
+
#
|
115
|
+
module URI
|
116
|
+
include URI::RFC2396_REGEXP
|
117
|
+
|
118
|
+
# <!--
|
119
|
+
# rdoc-file=lib/uri/common.rb
|
120
|
+
# - decode_www_form(str, enc=Encoding::UTF_8, separator: '&', use__charset_: false, isindex: false)
|
121
|
+
# -->
|
122
|
+
# Returns name/value pairs derived from the given string `str`, which must be an
|
123
|
+
# ASCII string.
|
124
|
+
#
|
125
|
+
# The method may be used to decode the body of Net::HTTPResponse object `res`
|
126
|
+
# for which `res['Content-Type']` is `'application/x-www-form-urlencoded'`.
|
127
|
+
#
|
128
|
+
# The returned data is an array of 2-element subarrays; each subarray is a
|
129
|
+
# name/value pair (both are strings). Each returned string has encoding `enc`,
|
130
|
+
# and has had invalid characters removed via
|
131
|
+
# [String#scrub](rdoc-ref:String#scrub).
|
132
|
+
#
|
133
|
+
# A simple example:
|
134
|
+
#
|
135
|
+
# URI.decode_www_form('foo=0&bar=1&baz')
|
136
|
+
# # => [["foo", "0"], ["bar", "1"], ["baz", ""]]
|
137
|
+
#
|
138
|
+
# The returned strings have certain conversions, similar to those performed in
|
139
|
+
# URI.decode_www_form_component:
|
140
|
+
#
|
141
|
+
# URI.decode_www_form('f%23o=%2F&b-r=%24&b+z=%40')
|
142
|
+
# # => [["f#o", "/"], ["b-r", "$"], ["b z", "@"]]
|
143
|
+
#
|
144
|
+
# The given string may contain consecutive separators:
|
145
|
+
#
|
146
|
+
# URI.decode_www_form('foo=0&&bar=1&&baz=2')
|
147
|
+
# # => [["foo", "0"], ["", ""], ["bar", "1"], ["", ""], ["baz", "2"]]
|
148
|
+
#
|
149
|
+
# A different separator may be specified:
|
150
|
+
#
|
151
|
+
# URI.decode_www_form('foo=0--bar=1--baz', separator: '--')
|
152
|
+
# # => [["foo", "0"], ["bar", "1"], ["baz", ""]]
|
153
|
+
#
|
154
|
+
def self.decode_www_form: (String str, ?encoding enc, ?isindex: boolish, ?use__charset_: boolish, ?separator: String) -> Array[[ String, String ]]
|
155
|
+
|
156
|
+
# <!--
|
157
|
+
# rdoc-file=lib/uri/common.rb
|
158
|
+
# - decode_www_form_component(str, enc=Encoding::UTF_8)
|
159
|
+
# -->
|
160
|
+
# Returns a string decoded from the given URL-encoded string `str`.
|
161
|
+
#
|
162
|
+
# The given string is first encoded as Encoding::ASCII-8BIT (using String#b),
|
163
|
+
# then decoded (as below), and finally force-encoded to the given encoding
|
164
|
+
# `enc`.
|
165
|
+
#
|
166
|
+
# The returned string:
|
167
|
+
#
|
168
|
+
# * Preserves:
|
169
|
+
#
|
170
|
+
# * Characters `'*'`, `'.'`, `'-'`, and `'_'`.
|
171
|
+
# * Character in ranges `'a'..'z'`, `'A'..'Z'`, and `'0'..'9'`.
|
172
|
+
#
|
173
|
+
# Example:
|
174
|
+
#
|
175
|
+
# URI.decode_www_form_component('*.-_azAZ09')
|
176
|
+
# # => "*.-_azAZ09"
|
177
|
+
#
|
178
|
+
# * Converts:
|
179
|
+
#
|
180
|
+
# * Character `'+'` to character `' '`.
|
181
|
+
# * Each "percent notation" to an ASCII character.
|
182
|
+
#
|
183
|
+
# Example:
|
184
|
+
#
|
185
|
+
# URI.decode_www_form_component('Here+are+some+punctuation+characters%3A+%2C%3B%3F%3A')
|
186
|
+
# # => "Here are some punctuation characters: ,;?:"
|
187
|
+
#
|
188
|
+
# Related: URI.decode_uri_component (preserves `'+'`).
|
189
|
+
#
|
190
|
+
def self.decode_www_form_component: (String str, ?encoding enc) -> String
|
191
|
+
|
192
|
+
# <!--
|
193
|
+
# rdoc-file=lib/uri/common.rb
|
194
|
+
# - encode_www_form(enum, enc=nil)
|
195
|
+
# -->
|
196
|
+
# Returns a URL-encoded string derived from the given
|
197
|
+
# [Enumerable](rdoc-ref:Enumerable@Enumerable+in+Ruby+Classes) `enum`.
|
198
|
+
#
|
199
|
+
# The result is suitable for use as form data for an HTTP request whose
|
200
|
+
# `Content-Type` is `'application/x-www-form-urlencoded'`.
|
201
|
+
#
|
202
|
+
# The returned string consists of the elements of `enum`, each converted to one
|
203
|
+
# or more URL-encoded strings, and all joined with character `'&'`.
|
204
|
+
#
|
205
|
+
# Simple examples:
|
206
|
+
#
|
207
|
+
# URI.encode_www_form([['foo', 0], ['bar', 1], ['baz', 2]])
|
208
|
+
# # => "foo=0&bar=1&baz=2"
|
209
|
+
# URI.encode_www_form({foo: 0, bar: 1, baz: 2})
|
210
|
+
# # => "foo=0&bar=1&baz=2"
|
211
|
+
#
|
212
|
+
# The returned string is formed using method URI.encode_www_form_component,
|
213
|
+
# which converts certain characters:
|
214
|
+
#
|
215
|
+
# URI.encode_www_form('f#o': '/', 'b-r': '$', 'b z': '@')
|
216
|
+
# # => "f%23o=%2F&b-r=%24&b+z=%40"
|
217
|
+
#
|
218
|
+
# When `enum` is Array-like, each element `ele` is converted to a field:
|
219
|
+
#
|
220
|
+
# * If `ele` is an array of two or more elements, the field is formed from its
|
221
|
+
# first two elements (and any additional elements are ignored):
|
222
|
+
#
|
223
|
+
# name = URI.encode_www_form_component(ele[0], enc)
|
224
|
+
# value = URI.encode_www_form_component(ele[1], enc)
|
225
|
+
# "#{name}=#{value}"
|
226
|
+
#
|
227
|
+
# Examples:
|
228
|
+
#
|
229
|
+
# URI.encode_www_form([%w[foo bar], %w[baz bat bah]])
|
230
|
+
# # => "foo=bar&baz=bat"
|
231
|
+
# URI.encode_www_form([['foo', 0], ['bar', :baz, 'bat']])
|
232
|
+
# # => "foo=0&bar=baz"
|
233
|
+
#
|
234
|
+
# * If `ele` is an array of one element, the field is formed from `ele[0]`:
|
235
|
+
#
|
236
|
+
# URI.encode_www_form_component(ele[0])
|
237
|
+
#
|
238
|
+
# Example:
|
239
|
+
#
|
240
|
+
# URI.encode_www_form([['foo'], [:bar], [0]])
|
241
|
+
# # => "foo&bar&0"
|
242
|
+
#
|
243
|
+
# * Otherwise the field is formed from `ele`:
|
244
|
+
#
|
245
|
+
# URI.encode_www_form_component(ele)
|
246
|
+
#
|
247
|
+
# Example:
|
248
|
+
#
|
249
|
+
# URI.encode_www_form(['foo', :bar, 0])
|
250
|
+
# # => "foo&bar&0"
|
251
|
+
#
|
252
|
+
# The elements of an Array-like `enum` may be mixture:
|
253
|
+
#
|
254
|
+
# URI.encode_www_form([['foo', 0], ['bar', 1, 2], ['baz'], :bat])
|
255
|
+
# # => "foo=0&bar=1&baz&bat"
|
256
|
+
#
|
257
|
+
# When `enum` is Hash-like, each `key`/`value` pair is converted to one or more
|
258
|
+
# fields:
|
259
|
+
#
|
260
|
+
# * If `value` is
|
261
|
+
# [Array-convertible](rdoc-ref:implicit_conversion.rdoc@Array-Convertible+Ob
|
262
|
+
# jects), each element `ele` in `value` is paired with `key` to form a
|
263
|
+
# field:
|
264
|
+
#
|
265
|
+
# name = URI.encode_www_form_component(key, enc)
|
266
|
+
# value = URI.encode_www_form_component(ele, enc)
|
267
|
+
# "#{name}=#{value}"
|
268
|
+
#
|
269
|
+
# Example:
|
270
|
+
#
|
271
|
+
# URI.encode_www_form({foo: [:bar, 1], baz: [:bat, :bam, 2]})
|
272
|
+
# # => "foo=bar&foo=1&baz=bat&baz=bam&baz=2"
|
273
|
+
#
|
274
|
+
# * Otherwise, `key` and `value` are paired to form a field:
|
275
|
+
#
|
276
|
+
# name = URI.encode_www_form_component(key, enc)
|
277
|
+
# value = URI.encode_www_form_component(value, enc)
|
278
|
+
# "#{name}=#{value}"
|
279
|
+
#
|
280
|
+
# Example:
|
281
|
+
#
|
282
|
+
# URI.encode_www_form({foo: 0, bar: 1, baz: 2})
|
283
|
+
# # => "foo=0&bar=1&baz=2"
|
284
|
+
#
|
285
|
+
# The elements of a Hash-like `enum` may be mixture:
|
286
|
+
#
|
287
|
+
# URI.encode_www_form({foo: [0, 1], bar: 2})
|
288
|
+
# # => "foo=0&foo=1&bar=2"
|
289
|
+
#
|
290
|
+
def self.encode_www_form: (Enumerable[[ _ToS, _ToS ]] enum, ?encoding? enc) -> String
|
291
|
+
|
292
|
+
# <!--
|
293
|
+
# rdoc-file=lib/uri/common.rb
|
294
|
+
# - encode_www_form_component(str, enc=nil)
|
295
|
+
# -->
|
296
|
+
# Returns a URL-encoded string derived from the given string `str`.
|
297
|
+
#
|
298
|
+
# The returned string:
|
299
|
+
#
|
300
|
+
# * Preserves:
|
301
|
+
#
|
302
|
+
# * Characters `'*'`, `'.'`, `'-'`, and `'_'`.
|
303
|
+
# * Character in ranges `'a'..'z'`, `'A'..'Z'`, and `'0'..'9'`.
|
304
|
+
#
|
305
|
+
# Example:
|
306
|
+
#
|
307
|
+
# URI.encode_www_form_component('*.-_azAZ09')
|
308
|
+
# # => "*.-_azAZ09"
|
309
|
+
#
|
310
|
+
# * Converts:
|
311
|
+
#
|
312
|
+
# * Character `' '` to character `'+'`.
|
313
|
+
# * Any other character to "percent notation"; the percent notation for
|
314
|
+
# character *c* is `'%%%X' % c.ord`.
|
315
|
+
#
|
316
|
+
# Example:
|
317
|
+
#
|
318
|
+
# URI.encode_www_form_component('Here are some punctuation characters: ,;?:')
|
319
|
+
# # => "Here+are+some+punctuation+characters%3A+%2C%3B%3F%3A"
|
320
|
+
#
|
321
|
+
# Encoding:
|
322
|
+
#
|
323
|
+
# * If `str` has encoding Encoding::ASCII_8BIT, argument `enc` is ignored.
|
324
|
+
# * Otherwise `str` is converted first to Encoding::UTF_8 (with suitable
|
325
|
+
# character replacements), and then to encoding `enc`.
|
326
|
+
#
|
327
|
+
# In either case, the returned string has forced encoding Encoding::US_ASCII.
|
328
|
+
#
|
329
|
+
# Related: URI.encode_uri_component (encodes `' '` as `'%20'`).
|
330
|
+
#
|
331
|
+
def self.encode_www_form_component: (_ToS str, ?encoding? enc) -> String
|
332
|
+
|
333
|
+
# <!--
|
334
|
+
# rdoc-file=lib/uri/common.rb
|
335
|
+
# - extract(str, schemes = nil, &block)
|
336
|
+
# -->
|
337
|
+
# ## Synopsis
|
338
|
+
#
|
339
|
+
# URI::extract(str[, schemes][,&blk])
|
340
|
+
#
|
341
|
+
# ## Args
|
342
|
+
#
|
343
|
+
# `str`
|
344
|
+
# : String to extract URIs from.
|
345
|
+
# `schemes`
|
346
|
+
# : Limit URI matching to specific schemes.
|
347
|
+
#
|
348
|
+
#
|
349
|
+
# ## Description
|
350
|
+
#
|
351
|
+
# Extracts URIs from a string. If block given, iterates through all matched
|
352
|
+
# URIs. Returns nil if block given or array with matches.
|
353
|
+
#
|
354
|
+
# ## Usage
|
355
|
+
#
|
356
|
+
# require "uri"
|
357
|
+
#
|
358
|
+
# URI.extract("text here http://foo.example.org/bla and here mailto:test@example.com and here also.")
|
359
|
+
# # => ["http://foo.example.com/bla", "mailto:test@example.com"]
|
360
|
+
#
|
361
|
+
def self.extract: (String str, ?Array[String] schemes) -> Array[String]
|
362
|
+
| (String str, ?Array[String] schemes) { (String) -> void } -> nil
|
363
|
+
|
364
|
+
def self.get_encoding: (String label) -> Encoding?
|
365
|
+
|
366
|
+
# <!--
|
367
|
+
# rdoc-file=lib/uri/common.rb
|
368
|
+
# - join(*str)
|
369
|
+
# -->
|
370
|
+
# Merges the given URI strings `str` per [RFC
|
371
|
+
# 2396](https://www.rfc-editor.org/rfc/rfc2396.html).
|
372
|
+
#
|
373
|
+
# Each string in `str` is converted to an [RFC3986
|
374
|
+
# URI](https://www.rfc-editor.org/rfc/rfc3986.html) before being merged.
|
375
|
+
#
|
376
|
+
# Examples:
|
377
|
+
#
|
378
|
+
# URI.join("http://example.com/","main.rbx")
|
379
|
+
# # => #<URI::HTTP http://example.com/main.rbx>
|
380
|
+
#
|
381
|
+
# URI.join('http://example.com', 'foo')
|
382
|
+
# # => #<URI::HTTP http://example.com/foo>
|
383
|
+
#
|
384
|
+
# URI.join('http://example.com', '/foo', '/bar')
|
385
|
+
# # => #<URI::HTTP http://example.com/bar>
|
386
|
+
#
|
387
|
+
# URI.join('http://example.com', '/foo', 'bar')
|
388
|
+
# # => #<URI::HTTP http://example.com/bar>
|
389
|
+
#
|
390
|
+
# URI.join('http://example.com', '/foo/', 'bar')
|
391
|
+
# # => #<URI::HTTP http://example.com/foo/bar>
|
392
|
+
#
|
393
|
+
def self.join: (_ToStr | URI::Generic str, *_ToStr | URI::Generic strs) -> URI::Generic
|
394
|
+
|
395
|
+
# <!--
|
396
|
+
# rdoc-file=lib/uri/common.rb
|
397
|
+
# - parse(uri)
|
398
|
+
# -->
|
399
|
+
# Returns a new URI object constructed from the given string `uri`:
|
400
|
+
#
|
401
|
+
# URI.parse('https://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top')
|
402
|
+
# # => #<URI::HTTPS https://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top>
|
403
|
+
# URI.parse('http://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top')
|
404
|
+
# # => #<URI::HTTP http://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top>
|
405
|
+
#
|
406
|
+
# It's recommended to first ::escape string `uri` if it may contain invalid URI
|
407
|
+
# characters.
|
408
|
+
#
|
409
|
+
def self.parse: (_ToStr uri) -> (File | FTP | HTTP | HTTPS | LDAP | LDAPS | MailTo | WS | WSS | Generic)
|
410
|
+
|
411
|
+
# <!--
|
412
|
+
# rdoc-file=lib/uri/common.rb
|
413
|
+
# - regexp(schemes = nil)
|
414
|
+
# -->
|
415
|
+
# ## Synopsis
|
416
|
+
#
|
417
|
+
# URI::regexp([match_schemes])
|
418
|
+
#
|
419
|
+
# ## Args
|
420
|
+
#
|
421
|
+
# `match_schemes`
|
422
|
+
# : Array of schemes. If given, resulting regexp matches to URIs whose scheme
|
423
|
+
# is one of the match_schemes.
|
424
|
+
#
|
425
|
+
#
|
426
|
+
# ## Description
|
427
|
+
#
|
428
|
+
# Returns a Regexp object which matches to URI-like strings. The Regexp object
|
429
|
+
# returned by this method includes arbitrary number of capture group
|
430
|
+
# (parentheses). Never rely on its number.
|
431
|
+
#
|
432
|
+
# ## Usage
|
433
|
+
#
|
434
|
+
# require 'uri'
|
435
|
+
#
|
436
|
+
# # extract first URI from html_string
|
437
|
+
# html_string.slice(URI.regexp)
|
438
|
+
#
|
439
|
+
# # remove ftp URIs
|
440
|
+
# html_string.sub(URI.regexp(['ftp']), '')
|
441
|
+
#
|
442
|
+
# # You should not rely on the number of parentheses
|
443
|
+
# html_string.scan(URI.regexp) do |*matches|
|
444
|
+
# p $&
|
445
|
+
# end
|
446
|
+
#
|
447
|
+
def self.regexp: (?Array[String]? schemes) -> Regexp
|
448
|
+
|
449
|
+
# <!--
|
450
|
+
# rdoc-file=lib/uri/common.rb
|
451
|
+
# - scheme_list()
|
452
|
+
# -->
|
453
|
+
# Returns a hash of the defined schemes:
|
454
|
+
#
|
455
|
+
# URI.scheme_list
|
456
|
+
# # =>
|
457
|
+
# {"MAILTO"=>URI::MailTo,
|
458
|
+
# "LDAPS"=>URI::LDAPS,
|
459
|
+
# "WS"=>URI::WS,
|
460
|
+
# "HTTP"=>URI::HTTP,
|
461
|
+
# "HTTPS"=>URI::HTTPS,
|
462
|
+
# "LDAP"=>URI::LDAP,
|
463
|
+
# "FILE"=>URI::File,
|
464
|
+
# "FTP"=>URI::FTP}
|
465
|
+
#
|
466
|
+
# Related: URI.register_scheme.
|
467
|
+
#
|
468
|
+
def self.scheme_list: () -> Hash[String, Class]
|
469
|
+
|
470
|
+
# <!--
|
471
|
+
# rdoc-file=lib/uri/common.rb
|
472
|
+
# - for(scheme, *arguments, default: Generic)
|
473
|
+
# -->
|
474
|
+
# Returns a new object constructed from the given `scheme`, `arguments`, and
|
475
|
+
# `default`:
|
476
|
+
#
|
477
|
+
# * The new object is an instance of `URI.scheme_list[scheme.upcase]`.
|
478
|
+
# * The object is initialized by calling the class initializer using `scheme`
|
479
|
+
# and `arguments`. See URI::Generic.new.
|
480
|
+
#
|
481
|
+
# Examples:
|
482
|
+
#
|
483
|
+
# values = ['john.doe', 'www.example.com', '123', nil, '/forum/questions/', nil, 'tag=networking&order=newest', 'top']
|
484
|
+
# URI.for('https', *values)
|
485
|
+
# # => #<URI::HTTPS https://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top>
|
486
|
+
# URI.for('foo', *values, default: URI::HTTP)
|
487
|
+
# # => #<URI::HTTP foo://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top>
|
488
|
+
#
|
489
|
+
def self.for: (String scheme, *untyped arguments, ?default: Class) -> (File | FTP | HTTP | HTTPS | LDAP | LDAPS | MailTo | WS | WSS | Generic)
|
490
|
+
|
491
|
+
# <!--
|
492
|
+
# rdoc-file=lib/uri/common.rb
|
493
|
+
# - split(uri)
|
494
|
+
# -->
|
495
|
+
# Returns a 9-element array representing the parts of the URI formed from the
|
496
|
+
# string `uri`; each array element is a string or `nil`:
|
497
|
+
#
|
498
|
+
# names = %w[scheme userinfo host port registry path opaque query fragment]
|
499
|
+
# values = URI.split('https://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top')
|
500
|
+
# names.zip(values)
|
501
|
+
# # =>
|
502
|
+
# [["scheme", "https"],
|
503
|
+
# ["userinfo", "john.doe"],
|
504
|
+
# ["host", "www.example.com"],
|
505
|
+
# ["port", "123"],
|
506
|
+
# ["registry", nil],
|
507
|
+
# ["path", "/forum/questions/"],
|
508
|
+
# ["opaque", nil],
|
509
|
+
# ["query", "tag=networking&order=newest"],
|
510
|
+
# ["fragment", "top"]]
|
511
|
+
#
|
512
|
+
def self.split: (_ToStr uri) -> [ String?, String?, String?, String?, nil, String?, String?, String?, String? ]
|
513
|
+
end
|
514
|
+
|
515
|
+
URI::ABS_PATH: Regexp
|
516
|
+
|
517
|
+
URI::ABS_URI: Regexp
|
518
|
+
|
519
|
+
URI::ABS_URI_REF: Regexp
|
520
|
+
|
521
|
+
URI::DEFAULT_PARSER: URI::RFC2396_Parser
|
522
|
+
|
523
|
+
URI::ESCAPED: Regexp
|
524
|
+
|
525
|
+
URI::FRAGMENT: Regexp
|
526
|
+
|
527
|
+
URI::HOST: Regexp
|
528
|
+
|
529
|
+
URI::OPAQUE: Regexp
|
530
|
+
|
531
|
+
URI::PORT: Regexp
|
532
|
+
|
533
|
+
URI::QUERY: Regexp
|
534
|
+
|
535
|
+
URI::REGISTRY: Regexp
|
536
|
+
|
537
|
+
URI::REL_PATH: Regexp
|
538
|
+
|
539
|
+
URI::REL_URI: Regexp
|
540
|
+
|
541
|
+
URI::REL_URI_REF: Regexp
|
542
|
+
|
543
|
+
URI::RFC3986_PARSER: URI::RFC3986_Parser
|
544
|
+
|
545
|
+
URI::SCHEME: Regexp
|
546
|
+
|
547
|
+
URI::TBLDECWWWCOMP_: Hash[String, String]
|
548
|
+
|
549
|
+
URI::TBLENCWWWCOMP_: Hash[String, String]
|
550
|
+
|
551
|
+
URI::UNSAFE: Regexp
|
552
|
+
|
553
|
+
URI::URI_REF: Regexp
|
554
|
+
|
555
|
+
URI::USERINFO: Regexp
|
556
|
+
|
557
|
+
URI::VERSION: String
|
558
|
+
|
559
|
+
URI::VERSION_CODE: String
|
560
|
+
|
561
|
+
URI::WEB_ENCODINGS_: Hash[String, String]
|
562
|
+
|
563
|
+
%a{annotate:rdoc:skip}
|
564
|
+
module Kernel
|
565
|
+
private
|
566
|
+
|
567
|
+
# <!--
|
568
|
+
# rdoc-file=lib/uri/common.rb
|
569
|
+
# - URI(uri)
|
570
|
+
# -->
|
571
|
+
# Returns a URI object derived from the given `uri`, which may be a URI string
|
572
|
+
# or an existing URI object:
|
573
|
+
#
|
574
|
+
# # Returns a new URI.
|
575
|
+
# uri = URI('http://github.com/ruby/ruby')
|
576
|
+
# # => #<URI::HTTP http://github.com/ruby/ruby>
|
577
|
+
# # Returns the given URI.
|
578
|
+
# URI(uri)
|
579
|
+
# # => #<URI::HTTP http://github.com/ruby/ruby>
|
580
|
+
#
|
581
|
+
def self?.URI: (URI::Generic | String uri) -> URI::Generic
|
582
|
+
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
%a{annotate:rdoc:skip}
|
2
|
+
module URI
|
3
|
+
# <!-- rdoc-file=lib/uri/file.rb -->
|
4
|
+
# The "file" URI is defined by RFC8089.
|
5
|
+
#
|
6
|
+
class File < Generic
|
7
|
+
# <!-- rdoc-file=lib/uri/file.rb -->
|
8
|
+
# A Default port of nil for URI::File.
|
9
|
+
#
|
10
|
+
DEFAULT_PORT: Integer?
|
11
|
+
|
12
|
+
# <!-- rdoc-file=lib/uri/file.rb -->
|
13
|
+
# An Array of the available components for URI::File.
|
14
|
+
#
|
15
|
+
COMPONENT: Array[Symbol]
|
16
|
+
|
17
|
+
# <!--
|
18
|
+
# rdoc-file=lib/uri/file.rb
|
19
|
+
# - build(args)
|
20
|
+
# -->
|
21
|
+
# ## Description
|
22
|
+
#
|
23
|
+
# Creates a new URI::File object from components, with syntax checking.
|
24
|
+
#
|
25
|
+
# The components accepted are `host` and `path`.
|
26
|
+
#
|
27
|
+
# The components should be provided either as an Array, or as a Hash with keys
|
28
|
+
# formed by preceding the component names with a colon.
|
29
|
+
#
|
30
|
+
# If an Array is used, the components must be passed in the order `[host,
|
31
|
+
# path]`.
|
32
|
+
#
|
33
|
+
# A path from e.g. the File class should be escaped before being passed.
|
34
|
+
#
|
35
|
+
# Examples:
|
36
|
+
#
|
37
|
+
# require 'uri'
|
38
|
+
#
|
39
|
+
# uri1 = URI::File.build(['host.example.com', '/path/file.zip'])
|
40
|
+
# uri1.to_s # => "file://host.example.com/path/file.zip"
|
41
|
+
#
|
42
|
+
# uri2 = URI::File.build({:host => 'host.example.com',
|
43
|
+
# :path => '/ruby/src'})
|
44
|
+
# uri2.to_s # => "file://host.example.com/ruby/src"
|
45
|
+
#
|
46
|
+
# uri3 = URI::File.build({:path => URI::escape('/path/my file.txt')})
|
47
|
+
# uri3.to_s # => "file:///path/my%20file.txt"
|
48
|
+
#
|
49
|
+
def self.build: (Array[String] args) -> URI::File
|
50
|
+
| ({ host: String?, path: String? }) -> URI::File
|
51
|
+
|
52
|
+
# <!--
|
53
|
+
# rdoc-file=lib/uri/file.rb
|
54
|
+
# - set_host(v)
|
55
|
+
# -->
|
56
|
+
# Protected setter for the host component `v`.
|
57
|
+
#
|
58
|
+
# See also URI::Generic.host=.
|
59
|
+
#
|
60
|
+
def set_host: (String? v) -> String
|
61
|
+
|
62
|
+
# <!--
|
63
|
+
# rdoc-file=lib/uri/file.rb
|
64
|
+
# - set_port(v)
|
65
|
+
# -->
|
66
|
+
# do nothing
|
67
|
+
#
|
68
|
+
def set_port: (Integer v) -> nil
|
69
|
+
|
70
|
+
# <!--
|
71
|
+
# rdoc-file=lib/uri/file.rb
|
72
|
+
# - check_userinfo(user)
|
73
|
+
# -->
|
74
|
+
# raise InvalidURIError
|
75
|
+
#
|
76
|
+
def check_userinfo: (String user) -> nil
|
77
|
+
|
78
|
+
# <!--
|
79
|
+
# rdoc-file=lib/uri/file.rb
|
80
|
+
# - check_user(user)
|
81
|
+
# -->
|
82
|
+
# raise InvalidURIError
|
83
|
+
#
|
84
|
+
def check_user: (String user) -> nil
|
85
|
+
|
86
|
+
# <!--
|
87
|
+
# rdoc-file=lib/uri/file.rb
|
88
|
+
# - check_password(user)
|
89
|
+
# -->
|
90
|
+
# raise InvalidURIError
|
91
|
+
#
|
92
|
+
def check_password: (String user) -> nil
|
93
|
+
|
94
|
+
# <!--
|
95
|
+
# rdoc-file=lib/uri/file.rb
|
96
|
+
# - set_userinfo(v)
|
97
|
+
# -->
|
98
|
+
# do nothing
|
99
|
+
#
|
100
|
+
def set_userinfo: (String v) -> nil
|
101
|
+
|
102
|
+
# <!--
|
103
|
+
# rdoc-file=lib/uri/file.rb
|
104
|
+
# - set_user(v)
|
105
|
+
# -->
|
106
|
+
# do nothing
|
107
|
+
#
|
108
|
+
def set_user: (String v) -> nil
|
109
|
+
|
110
|
+
# <!--
|
111
|
+
# rdoc-file=lib/uri/file.rb
|
112
|
+
# - set_password(v)
|
113
|
+
# -->
|
114
|
+
# do nothing
|
115
|
+
#
|
116
|
+
def set_password: (String v) -> nil
|
117
|
+
end
|
118
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
%a{annotate:rdoc:skip}
|
2
|
+
module URI
|
3
|
+
# <!-- rdoc-file=lib/uri/ftp.rb -->
|
4
|
+
# FTP URI syntax is defined by RFC1738 section 3.2.
|
5
|
+
#
|
6
|
+
# This class will be redesigned because of difference of implementations; the
|
7
|
+
# structure of its path. draft-hoffman-ftp-uri-04 is a draft but it is a good
|
8
|
+
# summary about the de facto spec.
|
9
|
+
# https://datatracker.ietf.org/doc/html/draft-hoffman-ftp-uri-04
|
10
|
+
#
|
11
|
+
class FTP < Generic
|
12
|
+
end
|
13
|
+
end
|