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,1209 @@
|
|
1
|
+
module RBS
|
2
|
+
module Unnamed
|
3
|
+
# <!-- rdoc-file=hash.c -->
|
4
|
+
# `ENV` is a hash-like accessor for environment variables.
|
5
|
+
#
|
6
|
+
# ### Interaction with the Operating System
|
7
|
+
#
|
8
|
+
# The `ENV` object interacts with the operating system's environment variables:
|
9
|
+
#
|
10
|
+
# * When you get the value for a name in `ENV`, the value is retrieved from
|
11
|
+
# among the current environment variables.
|
12
|
+
# * When you create or set a name-value pair in `ENV`, the name and value are
|
13
|
+
# immediately set in the environment variables.
|
14
|
+
# * When you delete a name-value pair in `ENV`, it is immediately deleted from
|
15
|
+
# the environment variables.
|
16
|
+
#
|
17
|
+
# ### Names and Values
|
18
|
+
#
|
19
|
+
# Generally, a name or value is a String.
|
20
|
+
#
|
21
|
+
# #### Valid Names and Values
|
22
|
+
#
|
23
|
+
# Each name or value must be one of the following:
|
24
|
+
#
|
25
|
+
# * A String.
|
26
|
+
# * An object that responds to #to_str by returning a String, in which case
|
27
|
+
# that String will be used as the name or value.
|
28
|
+
#
|
29
|
+
# #### Invalid Names and Values
|
30
|
+
#
|
31
|
+
# A new name:
|
32
|
+
#
|
33
|
+
# * May not be the empty string:
|
34
|
+
# ENV[''] = '0'
|
35
|
+
# # Raises Errno::EINVAL (Invalid argument - ruby_setenv())
|
36
|
+
#
|
37
|
+
# * May not contain character `"="`:
|
38
|
+
# ENV['='] = '0'
|
39
|
+
# # Raises Errno::EINVAL (Invalid argument - ruby_setenv(=))
|
40
|
+
#
|
41
|
+
# A new name or value:
|
42
|
+
#
|
43
|
+
# * May not be a non-String that does not respond to #to_str:
|
44
|
+
#
|
45
|
+
# ENV['foo'] = Object.new
|
46
|
+
# # Raises TypeError (no implicit conversion of Object into String)
|
47
|
+
# ENV[Object.new] = '0'
|
48
|
+
# # Raises TypeError (no implicit conversion of Object into String)
|
49
|
+
#
|
50
|
+
# * May not contain the NUL character `"\0"`:
|
51
|
+
#
|
52
|
+
# ENV['foo'] = "\0"
|
53
|
+
# # Raises ArgumentError (bad environment variable value: contains null byte)
|
54
|
+
# ENV["\0"] == '0'
|
55
|
+
# # Raises ArgumentError (bad environment variable name: contains null byte)
|
56
|
+
#
|
57
|
+
# * May not have an ASCII-incompatible encoding such as UTF-16LE or
|
58
|
+
# ISO-2022-JP:
|
59
|
+
#
|
60
|
+
# ENV['foo'] = '0'.force_encoding(Encoding::ISO_2022_JP)
|
61
|
+
# # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: ISO-2022-JP)
|
62
|
+
# ENV["foo".force_encoding(Encoding::ISO_2022_JP)] = '0'
|
63
|
+
# # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: ISO-2022-JP)
|
64
|
+
#
|
65
|
+
# ### About Ordering
|
66
|
+
#
|
67
|
+
# `ENV` enumerates its name/value pairs in the order found in the operating
|
68
|
+
# system's environment variables. Therefore the ordering of `ENV` content is
|
69
|
+
# OS-dependent, and may be indeterminate.
|
70
|
+
#
|
71
|
+
# This will be seen in:
|
72
|
+
# * A Hash returned by an `ENV` method.
|
73
|
+
# * An Enumerator returned by an `ENV` method.
|
74
|
+
# * An Array returned by ENV.keys, ENV.values, or ENV.to_a.
|
75
|
+
# * The String returned by ENV.inspect.
|
76
|
+
# * The Array returned by ENV.shift.
|
77
|
+
# * The name returned by ENV.key.
|
78
|
+
#
|
79
|
+
# ### About the Examples
|
80
|
+
# Some methods in `ENV` return `ENV` itself. Typically, there are many
|
81
|
+
# environment variables. It's not useful to display a large `ENV` in the
|
82
|
+
# examples here, so most example snippets begin by resetting the contents of
|
83
|
+
# `ENV`:
|
84
|
+
# * ENV.replace replaces `ENV` with a new collection of entries.
|
85
|
+
# * ENV.clear empties `ENV`.
|
86
|
+
#
|
87
|
+
# ### What's Here
|
88
|
+
#
|
89
|
+
# First, what's elsewhere. Class `ENV`:
|
90
|
+
#
|
91
|
+
# * Inherits from [class Object](rdoc-ref:Object@What-27s+Here).
|
92
|
+
# * Extends [module Enumerable](rdoc-ref:Enumerable@What-27s+Here),
|
93
|
+
#
|
94
|
+
# Here, class `ENV` provides methods that are useful for:
|
95
|
+
#
|
96
|
+
# * [Querying](rdoc-ref:ENV@Methods+for+Querying)
|
97
|
+
# * [Assigning](rdoc-ref:ENV@Methods+for+Assigning)
|
98
|
+
# * [Deleting](rdoc-ref:ENV@Methods+for+Deleting)
|
99
|
+
# * [Iterating](rdoc-ref:ENV@Methods+for+Iterating)
|
100
|
+
# * [Converting](rdoc-ref:ENV@Methods+for+Converting)
|
101
|
+
# * [And more ....](rdoc-ref:ENV@More+Methods)
|
102
|
+
#
|
103
|
+
# #### Methods for Querying
|
104
|
+
#
|
105
|
+
# * ::[]: Returns the value for the given environment variable name if it
|
106
|
+
# exists:
|
107
|
+
# * ::empty?: Returns whether `ENV` is empty.
|
108
|
+
# * ::has_value?, ::value?: Returns whether the given value is in `ENV`.
|
109
|
+
# * ::include?, ::has_key?, ::key?, ::member?: Returns whether the given name
|
110
|
+
# is in `ENV`.
|
111
|
+
# * ::key: Returns the name of the first entry with the given value.
|
112
|
+
# * ::size, ::length: Returns the number of entries.
|
113
|
+
# * ::value?: Returns whether any entry has the given value.
|
114
|
+
#
|
115
|
+
# #### Methods for Assigning
|
116
|
+
#
|
117
|
+
# * ::[]=, ::store: Creates, updates, or deletes the named environment
|
118
|
+
# variable.
|
119
|
+
# * ::clear: Removes every environment variable; returns `ENV`:
|
120
|
+
# * ::update, ::merge!: Adds to `ENV` each key/value pair in the given hash.
|
121
|
+
# * ::replace: Replaces the entire content of the `ENV` with the name/value
|
122
|
+
# pairs in the given hash.
|
123
|
+
#
|
124
|
+
# #### Methods for Deleting
|
125
|
+
#
|
126
|
+
# * ::delete: Deletes the named environment variable name if it exists.
|
127
|
+
# * ::delete_if: Deletes entries selected by the block.
|
128
|
+
# * ::keep_if: Deletes entries not selected by the block.
|
129
|
+
# * ::reject!: Similar to #delete_if, but returns `nil` if no change was made.
|
130
|
+
# * ::select!, ::filter!: Deletes entries selected by the block.
|
131
|
+
# * ::shift: Removes and returns the first entry.
|
132
|
+
#
|
133
|
+
# #### Methods for Iterating
|
134
|
+
#
|
135
|
+
# * ::each, ::each_pair: Calls the block with each name/value pair.
|
136
|
+
# * ::each_key: Calls the block with each name.
|
137
|
+
# * ::each_value: Calls the block with each value.
|
138
|
+
#
|
139
|
+
# #### Methods for Converting
|
140
|
+
#
|
141
|
+
# * ::assoc: Returns a 2-element array containing the name and value of the
|
142
|
+
# named environment variable if it exists:
|
143
|
+
# * ::clone: Returns `ENV` (and issues a warning).
|
144
|
+
# * ::except: Returns a hash of all name/value pairs except those given.
|
145
|
+
# * ::fetch: Returns the value for the given name.
|
146
|
+
# * ::inspect: Returns the contents of `ENV` as a string.
|
147
|
+
# * ::invert: Returns a hash whose keys are the `ENV` values, and whose values
|
148
|
+
# are the corresponding `ENV` names.
|
149
|
+
# * ::keys: Returns an array of all names.
|
150
|
+
# * ::rassoc: Returns the name and value of the first found entry that has the
|
151
|
+
# given value.
|
152
|
+
# * ::reject: Returns a hash of those entries not rejected by the block.
|
153
|
+
# * ::select, ::filter: Returns a hash of name/value pairs selected by the
|
154
|
+
# block.
|
155
|
+
# * ::slice: Returns a hash of the given names and their corresponding values.
|
156
|
+
# * ::to_a: Returns the entries as an array of 2-element Arrays.
|
157
|
+
# * ::to_h: Returns a hash of entries selected by the block.
|
158
|
+
# * ::to_hash: Returns a hash of all entries.
|
159
|
+
# * ::to_s: Returns the string `'ENV'`.
|
160
|
+
# * ::values: Returns all values as an array.
|
161
|
+
# * ::values_at: Returns an array of the values for the given name.
|
162
|
+
#
|
163
|
+
# #### More Methods
|
164
|
+
#
|
165
|
+
# * ::dup: Raises an exception.
|
166
|
+
# * ::freeze: Raises an exception.
|
167
|
+
# * ::rehash: Returns `nil`, without modifying `ENV`.
|
168
|
+
#
|
169
|
+
%a{annotate:rdoc:copy:ENV}
|
170
|
+
class ENVClass
|
171
|
+
include Enumerable[[ String, String ]]
|
172
|
+
|
173
|
+
# <!--
|
174
|
+
# rdoc-file=hash.c
|
175
|
+
# - ENV[name] -> value
|
176
|
+
# -->
|
177
|
+
# Returns the value for the environment variable `name` if it exists:
|
178
|
+
# ENV['foo'] = '0'
|
179
|
+
# ENV['foo'] # => "0"
|
180
|
+
#
|
181
|
+
# Returns `nil` if the named variable does not exist.
|
182
|
+
#
|
183
|
+
# Raises an exception if `name` is invalid. See [Invalid Names and
|
184
|
+
# Values](rdoc-ref:ENV@Invalid+Names+and+Values).
|
185
|
+
#
|
186
|
+
%a{annotate:rdoc:copy:ENV.[]}
|
187
|
+
def []: (String name) -> String?
|
188
|
+
|
189
|
+
# <!--
|
190
|
+
# rdoc-file=hash.c
|
191
|
+
# - ENV.fetch(name) -> value
|
192
|
+
# - ENV.fetch(name, default) -> value
|
193
|
+
# - ENV.fetch(name) { |name| block } -> value
|
194
|
+
# -->
|
195
|
+
# If `name` is the name of an environment variable, returns its value:
|
196
|
+
# ENV['foo'] = '0'
|
197
|
+
# ENV.fetch('foo') # => '0'
|
198
|
+
#
|
199
|
+
# Otherwise if a block is given (but not a default value), yields `name` to the
|
200
|
+
# block and returns the block's return value:
|
201
|
+
# ENV.fetch('foo') { |name| :need_not_return_a_string } # => :need_not_return_a_string
|
202
|
+
#
|
203
|
+
# Otherwise if a default value is given (but not a block), returns the default
|
204
|
+
# value:
|
205
|
+
# ENV.delete('foo')
|
206
|
+
# ENV.fetch('foo', :default_need_not_be_a_string) # => :default_need_not_be_a_string
|
207
|
+
#
|
208
|
+
# If the environment variable does not exist and both default and block are
|
209
|
+
# given, issues a warning ("warning: block supersedes default value argument"),
|
210
|
+
# yields `name` to the block, and returns the block's return value:
|
211
|
+
# ENV.fetch('foo', :default) { |name| :block_return } # => :block_return
|
212
|
+
#
|
213
|
+
# Raises KeyError if `name` is valid, but not found, and neither default value
|
214
|
+
# nor block is given:
|
215
|
+
# ENV.fetch('foo') # Raises KeyError (key not found: "foo")
|
216
|
+
#
|
217
|
+
# Raises an exception if `name` is invalid. See [Invalid Names and
|
218
|
+
# Values](rdoc-ref:ENV@Invalid+Names+and+Values).
|
219
|
+
#
|
220
|
+
%a{annotate:rdoc:copy:ENV.fetch}
|
221
|
+
def fetch: (String name) -> String
|
222
|
+
| [X] (String name, X default) -> (String | X)
|
223
|
+
| [X] (String name) { (String) -> X } -> (String | X)
|
224
|
+
|
225
|
+
# <!--
|
226
|
+
# rdoc-file=hash.c
|
227
|
+
# - ENV[name] = value -> value
|
228
|
+
# - ENV.store(name, value) -> value
|
229
|
+
# -->
|
230
|
+
# Creates, updates, or deletes the named environment variable, returning the
|
231
|
+
# value. Both `name` and `value` may be instances of String. See [Valid Names
|
232
|
+
# and Values](rdoc-ref:ENV@Valid+Names+and+Values).
|
233
|
+
#
|
234
|
+
# * If the named environment variable does not exist:
|
235
|
+
# * If `value` is `nil`, does nothing.
|
236
|
+
# ENV.clear
|
237
|
+
# ENV['foo'] = nil # => nil
|
238
|
+
# ENV.include?('foo') # => false
|
239
|
+
# ENV.store('bar', nil) # => nil
|
240
|
+
# ENV.include?('bar') # => false
|
241
|
+
#
|
242
|
+
# * If `value` is not `nil`, creates the environment variable with `name`
|
243
|
+
# and `value`:
|
244
|
+
# # Create 'foo' using ENV.[]=.
|
245
|
+
# ENV['foo'] = '0' # => '0'
|
246
|
+
# ENV['foo'] # => '0'
|
247
|
+
# # Create 'bar' using ENV.store.
|
248
|
+
# ENV.store('bar', '1') # => '1'
|
249
|
+
# ENV['bar'] # => '1'
|
250
|
+
#
|
251
|
+
# * If the named environment variable exists:
|
252
|
+
# * If `value` is not `nil`, updates the environment variable with value
|
253
|
+
# `value`:
|
254
|
+
# # Update 'foo' using ENV.[]=.
|
255
|
+
# ENV['foo'] = '2' # => '2'
|
256
|
+
# ENV['foo'] # => '2'
|
257
|
+
# # Update 'bar' using ENV.store.
|
258
|
+
# ENV.store('bar', '3') # => '3'
|
259
|
+
# ENV['bar'] # => '3'
|
260
|
+
#
|
261
|
+
# * If `value` is `nil`, deletes the environment variable:
|
262
|
+
# # Delete 'foo' using ENV.[]=.
|
263
|
+
# ENV['foo'] = nil # => nil
|
264
|
+
# ENV.include?('foo') # => false
|
265
|
+
# # Delete 'bar' using ENV.store.
|
266
|
+
# ENV.store('bar', nil) # => nil
|
267
|
+
# ENV.include?('bar') # => false
|
268
|
+
#
|
269
|
+
# Raises an exception if `name` or `value` is invalid. See [Invalid Names and
|
270
|
+
# Values](rdoc-ref:ENV@Invalid+Names+and+Values).
|
271
|
+
#
|
272
|
+
%a{annotate:rdoc:copy:ENV.[]=}
|
273
|
+
def []=: (String name, String? value) -> String?
|
274
|
+
|
275
|
+
# <!--
|
276
|
+
# rdoc-file=hash.c
|
277
|
+
# - ENV[name] = value -> value
|
278
|
+
# - ENV.store(name, value) -> value
|
279
|
+
# -->
|
280
|
+
# Creates, updates, or deletes the named environment variable, returning the
|
281
|
+
# value. Both `name` and `value` may be instances of String. See [Valid Names
|
282
|
+
# and Values](rdoc-ref:ENV@Valid+Names+and+Values).
|
283
|
+
#
|
284
|
+
# * If the named environment variable does not exist:
|
285
|
+
# * If `value` is `nil`, does nothing.
|
286
|
+
# ENV.clear
|
287
|
+
# ENV['foo'] = nil # => nil
|
288
|
+
# ENV.include?('foo') # => false
|
289
|
+
# ENV.store('bar', nil) # => nil
|
290
|
+
# ENV.include?('bar') # => false
|
291
|
+
#
|
292
|
+
# * If `value` is not `nil`, creates the environment variable with `name`
|
293
|
+
# and `value`:
|
294
|
+
# # Create 'foo' using ENV.[]=.
|
295
|
+
# ENV['foo'] = '0' # => '0'
|
296
|
+
# ENV['foo'] # => '0'
|
297
|
+
# # Create 'bar' using ENV.store.
|
298
|
+
# ENV.store('bar', '1') # => '1'
|
299
|
+
# ENV['bar'] # => '1'
|
300
|
+
#
|
301
|
+
# * If the named environment variable exists:
|
302
|
+
# * If `value` is not `nil`, updates the environment variable with value
|
303
|
+
# `value`:
|
304
|
+
# # Update 'foo' using ENV.[]=.
|
305
|
+
# ENV['foo'] = '2' # => '2'
|
306
|
+
# ENV['foo'] # => '2'
|
307
|
+
# # Update 'bar' using ENV.store.
|
308
|
+
# ENV.store('bar', '3') # => '3'
|
309
|
+
# ENV['bar'] # => '3'
|
310
|
+
#
|
311
|
+
# * If `value` is `nil`, deletes the environment variable:
|
312
|
+
# # Delete 'foo' using ENV.[]=.
|
313
|
+
# ENV['foo'] = nil # => nil
|
314
|
+
# ENV.include?('foo') # => false
|
315
|
+
# # Delete 'bar' using ENV.store.
|
316
|
+
# ENV.store('bar', nil) # => nil
|
317
|
+
# ENV.include?('bar') # => false
|
318
|
+
#
|
319
|
+
# Raises an exception if `name` or `value` is invalid. See [Invalid Names and
|
320
|
+
# Values](rdoc-ref:ENV@Invalid+Names+and+Values).
|
321
|
+
#
|
322
|
+
%a{annotate:rdoc:copy:ENV.store}
|
323
|
+
alias store []=
|
324
|
+
|
325
|
+
# <!--
|
326
|
+
# rdoc-file=hash.c
|
327
|
+
# - ENV.each { |name, value| block } -> ENV
|
328
|
+
# - ENV.each -> an_enumerator
|
329
|
+
# - ENV.each_pair { |name, value| block } -> ENV
|
330
|
+
# - ENV.each_pair -> an_enumerator
|
331
|
+
# -->
|
332
|
+
# Yields each environment variable name and its value as a 2-element Array:
|
333
|
+
# h = {}
|
334
|
+
# ENV.each_pair { |name, value| h[name] = value } # => ENV
|
335
|
+
# h # => {"bar"=>"1", "foo"=>"0"}
|
336
|
+
#
|
337
|
+
# Returns an Enumerator if no block given:
|
338
|
+
# h = {}
|
339
|
+
# e = ENV.each_pair # => #<Enumerator: {"bar"=>"1", "foo"=>"0"}:each_pair>
|
340
|
+
# e.each { |name, value| h[name] = value } # => ENV
|
341
|
+
# h # => {"bar"=>"1", "foo"=>"0"}
|
342
|
+
#
|
343
|
+
%a{annotate:rdoc:copy:ENV.each}
|
344
|
+
def each: () -> ::Enumerator[[ String, String ], self]
|
345
|
+
| () { ([ String, String ]) -> void } -> self
|
346
|
+
|
347
|
+
# <!--
|
348
|
+
# rdoc-file=hash.c
|
349
|
+
# - ENV.each { |name, value| block } -> ENV
|
350
|
+
# - ENV.each -> an_enumerator
|
351
|
+
# - ENV.each_pair { |name, value| block } -> ENV
|
352
|
+
# - ENV.each_pair -> an_enumerator
|
353
|
+
# -->
|
354
|
+
# Yields each environment variable name and its value as a 2-element Array:
|
355
|
+
# h = {}
|
356
|
+
# ENV.each_pair { |name, value| h[name] = value } # => ENV
|
357
|
+
# h # => {"bar"=>"1", "foo"=>"0"}
|
358
|
+
#
|
359
|
+
# Returns an Enumerator if no block given:
|
360
|
+
# h = {}
|
361
|
+
# e = ENV.each_pair # => #<Enumerator: {"bar"=>"1", "foo"=>"0"}:each_pair>
|
362
|
+
# e.each { |name, value| h[name] = value } # => ENV
|
363
|
+
# h # => {"bar"=>"1", "foo"=>"0"}
|
364
|
+
#
|
365
|
+
%a{annotate:rdoc:copy:ENV.each_pair}
|
366
|
+
def each_pair: () -> ::Enumerator[[ String, String ], self]
|
367
|
+
| () { ([ String, String ]) -> void } -> self
|
368
|
+
|
369
|
+
# <!--
|
370
|
+
# rdoc-file=hash.c
|
371
|
+
# - ENV.each_key { |name| block } -> ENV
|
372
|
+
# - ENV.each_key -> an_enumerator
|
373
|
+
# -->
|
374
|
+
# Yields each environment variable name:
|
375
|
+
# ENV.replace('foo' => '0', 'bar' => '1') # => ENV
|
376
|
+
# names = []
|
377
|
+
# ENV.each_key { |name| names.push(name) } # => ENV
|
378
|
+
# names # => ["bar", "foo"]
|
379
|
+
#
|
380
|
+
# Returns an Enumerator if no block given:
|
381
|
+
# e = ENV.each_key # => #<Enumerator: {"bar"=>"1", "foo"=>"0"}:each_key>
|
382
|
+
# names = []
|
383
|
+
# e.each { |name| names.push(name) } # => ENV
|
384
|
+
# names # => ["bar", "foo"]
|
385
|
+
#
|
386
|
+
%a{annotate:rdoc:copy:ENV.each_key}
|
387
|
+
def each_key: () -> ::Enumerator[[ String ], self]
|
388
|
+
| () { (String name) -> void } -> self
|
389
|
+
|
390
|
+
# <!--
|
391
|
+
# rdoc-file=hash.c
|
392
|
+
# - ENV.each_value { |value| block } -> ENV
|
393
|
+
# - ENV.each_value -> an_enumerator
|
394
|
+
# -->
|
395
|
+
# Yields each environment variable value:
|
396
|
+
# ENV.replace('foo' => '0', 'bar' => '1') # => ENV
|
397
|
+
# values = []
|
398
|
+
# ENV.each_value { |value| values.push(value) } # => ENV
|
399
|
+
# values # => ["1", "0"]
|
400
|
+
#
|
401
|
+
# Returns an Enumerator if no block given:
|
402
|
+
# e = ENV.each_value # => #<Enumerator: {"bar"=>"1", "foo"=>"0"}:each_value>
|
403
|
+
# values = []
|
404
|
+
# e.each { |value| values.push(value) } # => ENV
|
405
|
+
# values # => ["1", "0"]
|
406
|
+
#
|
407
|
+
%a{annotate:rdoc:copy:ENV.each_value}
|
408
|
+
def each_value: () -> ::Enumerator[[ String ], self]
|
409
|
+
| () { (String value) -> void } -> self
|
410
|
+
|
411
|
+
# <!--
|
412
|
+
# rdoc-file=hash.c
|
413
|
+
# - ENV.delete(name) -> value
|
414
|
+
# - ENV.delete(name) { |name| block } -> value
|
415
|
+
# - ENV.delete(missing_name) -> nil
|
416
|
+
# - ENV.delete(missing_name) { |name| block } -> block_value
|
417
|
+
# -->
|
418
|
+
# Deletes the environment variable with `name` if it exists and returns its
|
419
|
+
# value:
|
420
|
+
# ENV['foo'] = '0'
|
421
|
+
# ENV.delete('foo') # => '0'
|
422
|
+
#
|
423
|
+
# If a block is not given and the named environment variable does not exist,
|
424
|
+
# returns `nil`.
|
425
|
+
#
|
426
|
+
# If a block given and the environment variable does not exist, yields `name` to
|
427
|
+
# the block and returns the value of the block:
|
428
|
+
# ENV.delete('foo') { |name| name * 2 } # => "foofoo"
|
429
|
+
#
|
430
|
+
# If a block given and the environment variable exists, deletes the environment
|
431
|
+
# variable and returns its value (ignoring the block):
|
432
|
+
# ENV['foo'] = '0'
|
433
|
+
# ENV.delete('foo') { |name| raise 'ignored' } # => "0"
|
434
|
+
#
|
435
|
+
# Raises an exception if `name` is invalid. See [Invalid Names and
|
436
|
+
# Values](rdoc-ref:ENV@Invalid+Names+and+Values).
|
437
|
+
#
|
438
|
+
%a{annotate:rdoc:copy:ENV.delete}
|
439
|
+
def delete: (String name) -> String?
|
440
|
+
| (String name) { (String) -> String } -> String
|
441
|
+
|
442
|
+
# <!--
|
443
|
+
# rdoc-file=hash.c
|
444
|
+
# - ENV.delete_if { |name, value| block } -> ENV
|
445
|
+
# - ENV.delete_if -> an_enumerator
|
446
|
+
# -->
|
447
|
+
# Yields each environment variable name and its value as a 2-element Array,
|
448
|
+
# deleting each environment variable for which the block returns a truthy value,
|
449
|
+
# and returning ENV (regardless of whether any deletions):
|
450
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
451
|
+
# ENV.delete_if { |name, value| name.start_with?('b') } # => ENV
|
452
|
+
# ENV # => {"foo"=>"0"}
|
453
|
+
# ENV.delete_if { |name, value| name.start_with?('b') } # => ENV
|
454
|
+
#
|
455
|
+
# Returns an Enumerator if no block given:
|
456
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
457
|
+
# e = ENV.delete_if # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:delete_if!>
|
458
|
+
# e.each { |name, value| name.start_with?('b') } # => ENV
|
459
|
+
# ENV # => {"foo"=>"0"}
|
460
|
+
# e.each { |name, value| name.start_with?('b') } # => ENV
|
461
|
+
#
|
462
|
+
%a{annotate:rdoc:copy:ENV.delete_if}
|
463
|
+
def delete_if: () -> ::Enumerator[[ String, String ], self]
|
464
|
+
| () { (String name, String value) -> boolish } -> self
|
465
|
+
|
466
|
+
# <!--
|
467
|
+
# rdoc-file=hash.c
|
468
|
+
# - ENV.keep_if { |name, value| block } -> ENV
|
469
|
+
# - ENV.keep_if -> an_enumerator
|
470
|
+
# -->
|
471
|
+
# Yields each environment variable name and its value as a 2-element Array,
|
472
|
+
# deleting each environment variable for which the block returns `false` or
|
473
|
+
# `nil`, and returning ENV:
|
474
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
475
|
+
# ENV.keep_if { |name, value| name.start_with?('b') } # => ENV
|
476
|
+
# ENV # => {"bar"=>"1", "baz"=>"2"}
|
477
|
+
#
|
478
|
+
# Returns an Enumerator if no block given:
|
479
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
480
|
+
# e = ENV.keep_if # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:keep_if>
|
481
|
+
# e.each { |name, value| name.start_with?('b') } # => ENV
|
482
|
+
# ENV # => {"bar"=>"1", "baz"=>"2"}
|
483
|
+
#
|
484
|
+
%a{annotate:rdoc:copy:ENV.keep_if}
|
485
|
+
def keep_if: () -> ::Enumerator[[ String, String ], self]
|
486
|
+
| () { (String name, String value) -> boolish } -> self
|
487
|
+
|
488
|
+
# <!--
|
489
|
+
# rdoc-file=hash.c
|
490
|
+
# - ENV.slice(*names) -> hash of name/value pairs
|
491
|
+
# -->
|
492
|
+
# Returns a Hash of the given ENV names and their corresponding values:
|
493
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2', 'bat' => '3')
|
494
|
+
# ENV.slice('foo', 'baz') # => {"foo"=>"0", "baz"=>"2"}
|
495
|
+
# ENV.slice('baz', 'foo') # => {"baz"=>"2", "foo"=>"0"}
|
496
|
+
#
|
497
|
+
# Raises an exception if any of the `names` is invalid (see [Invalid Names and
|
498
|
+
# Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
|
499
|
+
# ENV.slice('foo', 'bar', :bat) # Raises TypeError (no implicit conversion of Symbol into String)
|
500
|
+
#
|
501
|
+
%a{annotate:rdoc:copy:ENV.slice}
|
502
|
+
def slice: (*String names) -> ::Hash[String, String]
|
503
|
+
|
504
|
+
# <!--
|
505
|
+
# rdoc-file=hash.c
|
506
|
+
# - ENV.except(*keys) -> a_hash
|
507
|
+
# -->
|
508
|
+
# Returns a hash except the given keys from ENV and their values.
|
509
|
+
#
|
510
|
+
# ENV #=> {"LANG"=>"en_US.UTF-8", "TERM"=>"xterm-256color", "HOME"=>"/Users/rhc"}
|
511
|
+
# ENV.except("TERM","HOME") #=> {"LANG"=>"en_US.UTF-8"}
|
512
|
+
#
|
513
|
+
%a{annotate:rdoc:copy:ENV.except}
|
514
|
+
def except: (*String names) -> ::Hash[String, String]
|
515
|
+
|
516
|
+
# <!--
|
517
|
+
# rdoc-file=hash.c
|
518
|
+
# - ENV.clear -> ENV
|
519
|
+
# -->
|
520
|
+
# Removes every environment variable; returns ENV:
|
521
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
522
|
+
# ENV.size # => 2
|
523
|
+
# ENV.clear # => ENV
|
524
|
+
# ENV.size # => 0
|
525
|
+
#
|
526
|
+
%a{annotate:rdoc:copy:ENV.clear}
|
527
|
+
def clear: () -> self
|
528
|
+
|
529
|
+
# <!--
|
530
|
+
# rdoc-file=hash.c
|
531
|
+
# - ENV.reject { |name, value| block } -> hash of name/value pairs
|
532
|
+
# - ENV.reject -> an_enumerator
|
533
|
+
# -->
|
534
|
+
# Yields each environment variable name and its value as a 2-element Array.
|
535
|
+
# Returns a Hash whose items are determined by the block. When the block returns
|
536
|
+
# a truthy value, the name/value pair is added to the return Hash; otherwise the
|
537
|
+
# pair is ignored:
|
538
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
539
|
+
# ENV.reject { |name, value| name.start_with?('b') } # => {"foo"=>"0"}
|
540
|
+
#
|
541
|
+
# Returns an Enumerator if no block given:
|
542
|
+
# e = ENV.reject
|
543
|
+
# e.each { |name, value| name.start_with?('b') } # => {"foo"=>"0"}
|
544
|
+
#
|
545
|
+
%a{annotate:rdoc:copy:ENV.reject}
|
546
|
+
def reject: () -> ::Enumerator[[ String, String ], self]
|
547
|
+
| () { (String name, String value) -> boolish } -> self
|
548
|
+
|
549
|
+
# <!--
|
550
|
+
# rdoc-file=hash.c
|
551
|
+
# - ENV.reject! { |name, value| block } -> ENV or nil
|
552
|
+
# - ENV.reject! -> an_enumerator
|
553
|
+
# -->
|
554
|
+
# Similar to ENV.delete_if, but returns `nil` if no changes were made.
|
555
|
+
#
|
556
|
+
# Yields each environment variable name and its value as a 2-element Array,
|
557
|
+
# deleting each environment variable for which the block returns a truthy value,
|
558
|
+
# and returning ENV (if any deletions) or `nil` (if not):
|
559
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
560
|
+
# ENV.reject! { |name, value| name.start_with?('b') } # => ENV
|
561
|
+
# ENV # => {"foo"=>"0"}
|
562
|
+
# ENV.reject! { |name, value| name.start_with?('b') } # => nil
|
563
|
+
#
|
564
|
+
# Returns an Enumerator if no block given:
|
565
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
566
|
+
# e = ENV.reject! # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:reject!>
|
567
|
+
# e.each { |name, value| name.start_with?('b') } # => ENV
|
568
|
+
# ENV # => {"foo"=>"0"}
|
569
|
+
# e.each { |name, value| name.start_with?('b') } # => nil
|
570
|
+
#
|
571
|
+
%a{annotate:rdoc:copy:ENV.reject!}
|
572
|
+
def reject!: () -> ::Enumerator[[ String, String ], self?]
|
573
|
+
| () { (String name, String value) -> boolish } -> self?
|
574
|
+
|
575
|
+
# <!--
|
576
|
+
# rdoc-file=hash.c
|
577
|
+
# - ENV.select { |name, value| block } -> hash of name/value pairs
|
578
|
+
# - ENV.select -> an_enumerator
|
579
|
+
# - ENV.filter { |name, value| block } -> hash of name/value pairs
|
580
|
+
# - ENV.filter -> an_enumerator
|
581
|
+
# -->
|
582
|
+
# Yields each environment variable name and its value as a 2-element Array,
|
583
|
+
# returning a Hash of the names and values for which the block returns a truthy
|
584
|
+
# value:
|
585
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
586
|
+
# ENV.select { |name, value| name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
|
587
|
+
# ENV.filter { |name, value| name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
|
588
|
+
#
|
589
|
+
# Returns an Enumerator if no block given:
|
590
|
+
# e = ENV.select # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:select>
|
591
|
+
# e.each { |name, value | name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
|
592
|
+
# e = ENV.filter # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:filter>
|
593
|
+
# e.each { |name, value | name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
|
594
|
+
#
|
595
|
+
%a{annotate:rdoc:copy:ENV.select}
|
596
|
+
def select: () -> ::Enumerator[[ String, String ], ::Hash[String, String]]
|
597
|
+
| () { (String name, String value) -> boolish } -> ::Hash[String, String]
|
598
|
+
|
599
|
+
# <!--
|
600
|
+
# rdoc-file=hash.c
|
601
|
+
# - ENV.select { |name, value| block } -> hash of name/value pairs
|
602
|
+
# - ENV.select -> an_enumerator
|
603
|
+
# - ENV.filter { |name, value| block } -> hash of name/value pairs
|
604
|
+
# - ENV.filter -> an_enumerator
|
605
|
+
# -->
|
606
|
+
# Yields each environment variable name and its value as a 2-element Array,
|
607
|
+
# returning a Hash of the names and values for which the block returns a truthy
|
608
|
+
# value:
|
609
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
610
|
+
# ENV.select { |name, value| name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
|
611
|
+
# ENV.filter { |name, value| name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
|
612
|
+
#
|
613
|
+
# Returns an Enumerator if no block given:
|
614
|
+
# e = ENV.select # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:select>
|
615
|
+
# e.each { |name, value | name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
|
616
|
+
# e = ENV.filter # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:filter>
|
617
|
+
# e.each { |name, value | name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
|
618
|
+
#
|
619
|
+
%a{annotate:rdoc:copy:ENV.filter}
|
620
|
+
alias filter select
|
621
|
+
|
622
|
+
# <!--
|
623
|
+
# rdoc-file=hash.c
|
624
|
+
# - ENV.select! { |name, value| block } -> ENV or nil
|
625
|
+
# - ENV.select! -> an_enumerator
|
626
|
+
# - ENV.filter! { |name, value| block } -> ENV or nil
|
627
|
+
# - ENV.filter! -> an_enumerator
|
628
|
+
# -->
|
629
|
+
# Yields each environment variable name and its value as a 2-element Array,
|
630
|
+
# deleting each entry for which the block returns `false` or `nil`, and
|
631
|
+
# returning ENV if any deletions made, or `nil` otherwise:
|
632
|
+
#
|
633
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
634
|
+
# ENV.select! { |name, value| name.start_with?('b') } # => ENV
|
635
|
+
# ENV # => {"bar"=>"1", "baz"=>"2"}
|
636
|
+
# ENV.select! { |name, value| true } # => nil
|
637
|
+
#
|
638
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
639
|
+
# ENV.filter! { |name, value| name.start_with?('b') } # => ENV
|
640
|
+
# ENV # => {"bar"=>"1", "baz"=>"2"}
|
641
|
+
# ENV.filter! { |name, value| true } # => nil
|
642
|
+
#
|
643
|
+
# Returns an Enumerator if no block given:
|
644
|
+
#
|
645
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
646
|
+
# e = ENV.select! # => #<Enumerator: {"bar"=>"1", "baz"=>"2"}:select!>
|
647
|
+
# e.each { |name, value| name.start_with?('b') } # => ENV
|
648
|
+
# ENV # => {"bar"=>"1", "baz"=>"2"}
|
649
|
+
# e.each { |name, value| true } # => nil
|
650
|
+
#
|
651
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
652
|
+
# e = ENV.filter! # => #<Enumerator: {"bar"=>"1", "baz"=>"2"}:filter!>
|
653
|
+
# e.each { |name, value| name.start_with?('b') } # => ENV
|
654
|
+
# ENV # => {"bar"=>"1", "baz"=>"2"}
|
655
|
+
# e.each { |name, value| true } # => nil
|
656
|
+
#
|
657
|
+
%a{annotate:rdoc:copy:ENV.select!}
|
658
|
+
def select!: () -> ::Enumerator[[ String, String ], self?]
|
659
|
+
| () { (String name, String value) -> boolish } -> self?
|
660
|
+
|
661
|
+
# <!--
|
662
|
+
# rdoc-file=hash.c
|
663
|
+
# - ENV.select! { |name, value| block } -> ENV or nil
|
664
|
+
# - ENV.select! -> an_enumerator
|
665
|
+
# - ENV.filter! { |name, value| block } -> ENV or nil
|
666
|
+
# - ENV.filter! -> an_enumerator
|
667
|
+
# -->
|
668
|
+
# Yields each environment variable name and its value as a 2-element Array,
|
669
|
+
# deleting each entry for which the block returns `false` or `nil`, and
|
670
|
+
# returning ENV if any deletions made, or `nil` otherwise:
|
671
|
+
#
|
672
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
673
|
+
# ENV.select! { |name, value| name.start_with?('b') } # => ENV
|
674
|
+
# ENV # => {"bar"=>"1", "baz"=>"2"}
|
675
|
+
# ENV.select! { |name, value| true } # => nil
|
676
|
+
#
|
677
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
678
|
+
# ENV.filter! { |name, value| name.start_with?('b') } # => ENV
|
679
|
+
# ENV # => {"bar"=>"1", "baz"=>"2"}
|
680
|
+
# ENV.filter! { |name, value| true } # => nil
|
681
|
+
#
|
682
|
+
# Returns an Enumerator if no block given:
|
683
|
+
#
|
684
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
685
|
+
# e = ENV.select! # => #<Enumerator: {"bar"=>"1", "baz"=>"2"}:select!>
|
686
|
+
# e.each { |name, value| name.start_with?('b') } # => ENV
|
687
|
+
# ENV # => {"bar"=>"1", "baz"=>"2"}
|
688
|
+
# e.each { |name, value| true } # => nil
|
689
|
+
#
|
690
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
691
|
+
# e = ENV.filter! # => #<Enumerator: {"bar"=>"1", "baz"=>"2"}:filter!>
|
692
|
+
# e.each { |name, value| name.start_with?('b') } # => ENV
|
693
|
+
# ENV # => {"bar"=>"1", "baz"=>"2"}
|
694
|
+
# e.each { |name, value| true } # => nil
|
695
|
+
#
|
696
|
+
%a{annotate:rdoc:copy:ENV.filter!}
|
697
|
+
alias filter! select!
|
698
|
+
|
699
|
+
# <!--
|
700
|
+
# rdoc-file=hash.c
|
701
|
+
# - ENV.shift -> [name, value] or nil
|
702
|
+
# -->
|
703
|
+
# Removes the first environment variable from ENV and returns a 2-element Array
|
704
|
+
# containing its name and value:
|
705
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
706
|
+
# ENV.to_hash # => {'bar' => '1', 'foo' => '0'}
|
707
|
+
# ENV.shift # => ['bar', '1']
|
708
|
+
# ENV.to_hash # => {'foo' => '0'}
|
709
|
+
#
|
710
|
+
# Exactly which environment variable is "first" is OS-dependent. See [About
|
711
|
+
# Ordering](rdoc-ref:ENV@About+Ordering).
|
712
|
+
#
|
713
|
+
# Returns `nil` if the environment is empty.
|
714
|
+
#
|
715
|
+
%a{annotate:rdoc:copy:ENV.shift}
|
716
|
+
def shift: () -> [ String, String ]?
|
717
|
+
|
718
|
+
# <!--
|
719
|
+
# rdoc-file=hash.c
|
720
|
+
# - ENV.invert -> hash of value/name pairs
|
721
|
+
# -->
|
722
|
+
# Returns a Hash whose keys are the ENV values, and whose values are the
|
723
|
+
# corresponding ENV names:
|
724
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
725
|
+
# ENV.invert # => {"1"=>"bar", "0"=>"foo"}
|
726
|
+
#
|
727
|
+
# For a duplicate ENV value, overwrites the hash entry:
|
728
|
+
# ENV.replace('foo' => '0', 'bar' => '0')
|
729
|
+
# ENV.invert # => {"0"=>"foo"}
|
730
|
+
#
|
731
|
+
# Note that the order of the ENV processing is OS-dependent, which means that
|
732
|
+
# the order of overwriting is also OS-dependent. See [About
|
733
|
+
# Ordering](rdoc-ref:ENV@About+Ordering).
|
734
|
+
#
|
735
|
+
%a{annotate:rdoc:copy:ENV.invert}
|
736
|
+
def invert: () -> ::Hash[String, String]
|
737
|
+
|
738
|
+
# <!--
|
739
|
+
# rdoc-file=hash.c
|
740
|
+
# - ENV.replace(hash) -> ENV
|
741
|
+
# -->
|
742
|
+
# Replaces the entire content of the environment variables with the name/value
|
743
|
+
# pairs in the given `hash`; returns ENV.
|
744
|
+
#
|
745
|
+
# Replaces the content of ENV with the given pairs:
|
746
|
+
# ENV.replace('foo' => '0', 'bar' => '1') # => ENV
|
747
|
+
# ENV.to_hash # => {"bar"=>"1", "foo"=>"0"}
|
748
|
+
#
|
749
|
+
# Raises an exception if a name or value is invalid (see [Invalid Names and
|
750
|
+
# Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
|
751
|
+
# ENV.replace('foo' => '0', :bar => '1') # Raises TypeError (no implicit conversion of Symbol into String)
|
752
|
+
# ENV.replace('foo' => '0', 'bar' => 1) # Raises TypeError (no implicit conversion of Integer into String)
|
753
|
+
# ENV.to_hash # => {"bar"=>"1", "foo"=>"0"}
|
754
|
+
#
|
755
|
+
%a{annotate:rdoc:copy:ENV.replace}
|
756
|
+
def replace: (Hash[String, String]) -> self
|
757
|
+
|
758
|
+
# <!--
|
759
|
+
# rdoc-file=hash.c
|
760
|
+
# - ENV.update -> ENV
|
761
|
+
# - ENV.update(*hashes) -> ENV
|
762
|
+
# - ENV.update(*hashes) { |name, env_val, hash_val| block } -> ENV
|
763
|
+
# - ENV.merge! -> ENV
|
764
|
+
# - ENV.merge!(*hashes) -> ENV
|
765
|
+
# - ENV.merge!(*hashes) { |name, env_val, hash_val| block } -> ENV
|
766
|
+
# -->
|
767
|
+
# Adds to ENV each key/value pair in the given `hash`; returns ENV:
|
768
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
769
|
+
# ENV.merge!('baz' => '2', 'bat' => '3') # => {"bar"=>"1", "bat"=>"3", "baz"=>"2", "foo"=>"0"}
|
770
|
+
#
|
771
|
+
# Deletes the ENV entry for a hash value that is `nil`:
|
772
|
+
# ENV.merge!('baz' => nil, 'bat' => nil) # => {"bar"=>"1", "foo"=>"0"}
|
773
|
+
#
|
774
|
+
# For an already-existing name, if no block given, overwrites the ENV value:
|
775
|
+
# ENV.merge!('foo' => '4') # => {"bar"=>"1", "foo"=>"4"}
|
776
|
+
#
|
777
|
+
# For an already-existing name, if block given, yields the name, its ENV value,
|
778
|
+
# and its hash value; the block's return value becomes the new name:
|
779
|
+
# ENV.merge!('foo' => '5') { |name, env_val, hash_val | env_val + hash_val } # => {"bar"=>"1", "foo"=>"45"}
|
780
|
+
#
|
781
|
+
# Raises an exception if a name or value is invalid (see [Invalid Names and
|
782
|
+
# Values](rdoc-ref:ENV@Invalid+Names+and+Values));
|
783
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
784
|
+
# ENV.merge!('foo' => '6', :bar => '7', 'baz' => '9') # Raises TypeError (no implicit conversion of Symbol into String)
|
785
|
+
# ENV # => {"bar"=>"1", "foo"=>"6"}
|
786
|
+
# ENV.merge!('foo' => '7', 'bar' => 8, 'baz' => '9') # Raises TypeError (no implicit conversion of Integer into String)
|
787
|
+
# ENV # => {"bar"=>"1", "foo"=>"7"}
|
788
|
+
#
|
789
|
+
# Raises an exception if the block returns an invalid name: (see [Invalid Names
|
790
|
+
# and Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
|
791
|
+
# ENV.merge!('bat' => '8', 'foo' => '9') { |name, env_val, hash_val | 10 } # Raises TypeError (no implicit conversion of Integer into String)
|
792
|
+
# ENV # => {"bar"=>"1", "bat"=>"8", "foo"=>"7"}
|
793
|
+
#
|
794
|
+
# Note that for the exceptions above, hash pairs preceding an invalid name or
|
795
|
+
# value are processed normally; those following are ignored.
|
796
|
+
#
|
797
|
+
%a{annotate:rdoc:copy:ENV.update}
|
798
|
+
def update: (Hash[String, String?]) -> self
|
799
|
+
| (Hash[String, String?]) { (String name, String env_val, String? hash_val) -> String } -> self
|
800
|
+
|
801
|
+
# <!--
|
802
|
+
# rdoc-file=hash.c
|
803
|
+
# - ENV.update -> ENV
|
804
|
+
# - ENV.update(*hashes) -> ENV
|
805
|
+
# - ENV.update(*hashes) { |name, env_val, hash_val| block } -> ENV
|
806
|
+
# - ENV.merge! -> ENV
|
807
|
+
# - ENV.merge!(*hashes) -> ENV
|
808
|
+
# - ENV.merge!(*hashes) { |name, env_val, hash_val| block } -> ENV
|
809
|
+
# -->
|
810
|
+
# Adds to ENV each key/value pair in the given `hash`; returns ENV:
|
811
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
812
|
+
# ENV.merge!('baz' => '2', 'bat' => '3') # => {"bar"=>"1", "bat"=>"3", "baz"=>"2", "foo"=>"0"}
|
813
|
+
#
|
814
|
+
# Deletes the ENV entry for a hash value that is `nil`:
|
815
|
+
# ENV.merge!('baz' => nil, 'bat' => nil) # => {"bar"=>"1", "foo"=>"0"}
|
816
|
+
#
|
817
|
+
# For an already-existing name, if no block given, overwrites the ENV value:
|
818
|
+
# ENV.merge!('foo' => '4') # => {"bar"=>"1", "foo"=>"4"}
|
819
|
+
#
|
820
|
+
# For an already-existing name, if block given, yields the name, its ENV value,
|
821
|
+
# and its hash value; the block's return value becomes the new name:
|
822
|
+
# ENV.merge!('foo' => '5') { |name, env_val, hash_val | env_val + hash_val } # => {"bar"=>"1", "foo"=>"45"}
|
823
|
+
#
|
824
|
+
# Raises an exception if a name or value is invalid (see [Invalid Names and
|
825
|
+
# Values](rdoc-ref:ENV@Invalid+Names+and+Values));
|
826
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
827
|
+
# ENV.merge!('foo' => '6', :bar => '7', 'baz' => '9') # Raises TypeError (no implicit conversion of Symbol into String)
|
828
|
+
# ENV # => {"bar"=>"1", "foo"=>"6"}
|
829
|
+
# ENV.merge!('foo' => '7', 'bar' => 8, 'baz' => '9') # Raises TypeError (no implicit conversion of Integer into String)
|
830
|
+
# ENV # => {"bar"=>"1", "foo"=>"7"}
|
831
|
+
#
|
832
|
+
# Raises an exception if the block returns an invalid name: (see [Invalid Names
|
833
|
+
# and Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
|
834
|
+
# ENV.merge!('bat' => '8', 'foo' => '9') { |name, env_val, hash_val | 10 } # Raises TypeError (no implicit conversion of Integer into String)
|
835
|
+
# ENV # => {"bar"=>"1", "bat"=>"8", "foo"=>"7"}
|
836
|
+
#
|
837
|
+
# Note that for the exceptions above, hash pairs preceding an invalid name or
|
838
|
+
# value are processed normally; those following are ignored.
|
839
|
+
#
|
840
|
+
%a{annotate:rdoc:copy:ENV.merge!}
|
841
|
+
alias merge! update
|
842
|
+
|
843
|
+
# <!--
|
844
|
+
# rdoc-file=hash.c
|
845
|
+
# - ENV.rehash -> nil
|
846
|
+
# -->
|
847
|
+
# (Provided for compatibility with Hash.)
|
848
|
+
#
|
849
|
+
# Does not modify ENV; returns `nil`.
|
850
|
+
#
|
851
|
+
%a{annotate:rdoc:copy:ENV.rehash}
|
852
|
+
def rehash: () -> nil
|
853
|
+
|
854
|
+
# <!--
|
855
|
+
# rdoc-file=hash.c
|
856
|
+
# - ENV.to_a -> array of 2-element arrays
|
857
|
+
# -->
|
858
|
+
# Returns the contents of ENV as an Array of 2-element Arrays, each of which is
|
859
|
+
# a name/value pair:
|
860
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
861
|
+
# ENV.to_a # => [["bar", "1"], ["foo", "0"]]
|
862
|
+
#
|
863
|
+
%a{annotate:rdoc:copy:ENV.to_a}
|
864
|
+
def to_a: () -> ::Array[[ String, String ]]
|
865
|
+
|
866
|
+
# <!--
|
867
|
+
# rdoc-file=hash.c
|
868
|
+
# - ENV.to_s -> "ENV"
|
869
|
+
# -->
|
870
|
+
# Returns String 'ENV':
|
871
|
+
# ENV.to_s # => "ENV"
|
872
|
+
#
|
873
|
+
%a{annotate:rdoc:copy:ENV.to_s}
|
874
|
+
def to_s: () -> "ENV"
|
875
|
+
|
876
|
+
# <!--
|
877
|
+
# rdoc-file=hash.c
|
878
|
+
# - ENV.key(value) -> name or nil
|
879
|
+
# -->
|
880
|
+
# Returns the name of the first environment variable with `value`, if it exists:
|
881
|
+
# ENV.replace('foo' => '0', 'bar' => '0')
|
882
|
+
# ENV.key('0') # => "foo"
|
883
|
+
#
|
884
|
+
# The order in which environment variables are examined is OS-dependent. See
|
885
|
+
# [About Ordering](rdoc-ref:ENV@About+Ordering).
|
886
|
+
#
|
887
|
+
# Returns `nil` if there is no such value.
|
888
|
+
#
|
889
|
+
# Raises an exception if `value` is invalid:
|
890
|
+
# ENV.key(Object.new) # raises TypeError (no implicit conversion of Object into String)
|
891
|
+
#
|
892
|
+
# See [Invalid Names and Values](rdoc-ref:ENV@Invalid+Names+and+Values).
|
893
|
+
#
|
894
|
+
%a{annotate:rdoc:copy:ENV.key}
|
895
|
+
def key: (String value) -> String?
|
896
|
+
|
897
|
+
# <!--
|
898
|
+
# rdoc-file=hash.c
|
899
|
+
# - ENV.length -> an_integer
|
900
|
+
# - ENV.size -> an_integer
|
901
|
+
# -->
|
902
|
+
# Returns the count of environment variables:
|
903
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
904
|
+
# ENV.length # => 2
|
905
|
+
# ENV.size # => 2
|
906
|
+
#
|
907
|
+
%a{annotate:rdoc:copy:ENV.size}
|
908
|
+
def size: () -> Integer
|
909
|
+
|
910
|
+
# <!--
|
911
|
+
# rdoc-file=hash.c
|
912
|
+
# - ENV.length -> an_integer
|
913
|
+
# - ENV.size -> an_integer
|
914
|
+
# -->
|
915
|
+
# Returns the count of environment variables:
|
916
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
917
|
+
# ENV.length # => 2
|
918
|
+
# ENV.size # => 2
|
919
|
+
#
|
920
|
+
%a{annotate:rdoc:copy:ENV.length}
|
921
|
+
alias length size
|
922
|
+
|
923
|
+
# <!--
|
924
|
+
# rdoc-file=hash.c
|
925
|
+
# - ENV.empty? -> true or false
|
926
|
+
# -->
|
927
|
+
# Returns `true` when there are no environment variables, `false` otherwise:
|
928
|
+
# ENV.clear
|
929
|
+
# ENV.empty? # => true
|
930
|
+
# ENV['foo'] = '0'
|
931
|
+
# ENV.empty? # => false
|
932
|
+
#
|
933
|
+
%a{annotate:rdoc:copy:ENV.empty?}
|
934
|
+
def empty?: () -> bool
|
935
|
+
|
936
|
+
# <!--
|
937
|
+
# rdoc-file=hash.c
|
938
|
+
# - ENV.keys -> array of names
|
939
|
+
# -->
|
940
|
+
# Returns all variable names in an Array:
|
941
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
942
|
+
# ENV.keys # => ['bar', 'foo']
|
943
|
+
#
|
944
|
+
# The order of the names is OS-dependent. See [About
|
945
|
+
# Ordering](rdoc-ref:ENV@About+Ordering).
|
946
|
+
#
|
947
|
+
# Returns the empty Array if ENV is empty.
|
948
|
+
#
|
949
|
+
%a{annotate:rdoc:copy:ENV.keys}
|
950
|
+
def keys: () -> ::Array[String]
|
951
|
+
|
952
|
+
# <!--
|
953
|
+
# rdoc-file=hash.c
|
954
|
+
# - ENV.values -> array of values
|
955
|
+
# -->
|
956
|
+
# Returns all environment variable values in an Array:
|
957
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
958
|
+
# ENV.values # => ['1', '0']
|
959
|
+
#
|
960
|
+
# The order of the values is OS-dependent. See [About
|
961
|
+
# Ordering](rdoc-ref:ENV@About+Ordering).
|
962
|
+
#
|
963
|
+
# Returns the empty Array if ENV is empty.
|
964
|
+
#
|
965
|
+
%a{annotate:rdoc:copy:ENV.values}
|
966
|
+
def values: () -> ::Array[String]
|
967
|
+
|
968
|
+
# <!--
|
969
|
+
# rdoc-file=hash.c
|
970
|
+
# - ENV.values_at(*names) -> array of values
|
971
|
+
# -->
|
972
|
+
# Returns an Array containing the environment variable values associated with
|
973
|
+
# the given names:
|
974
|
+
# ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
|
975
|
+
# ENV.values_at('foo', 'baz') # => ["0", "2"]
|
976
|
+
#
|
977
|
+
# Returns `nil` in the Array for each name that is not an ENV name:
|
978
|
+
# ENV.values_at('foo', 'bat', 'bar', 'bam') # => ["0", nil, "1", nil]
|
979
|
+
#
|
980
|
+
# Returns an empty Array if no names given.
|
981
|
+
#
|
982
|
+
# Raises an exception if any name is invalid. See [Invalid Names and
|
983
|
+
# Values](rdoc-ref:ENV@Invalid+Names+and+Values).
|
984
|
+
#
|
985
|
+
%a{annotate:rdoc:copy:ENV.values_at}
|
986
|
+
def values_at: (*String names) -> ::Array[String?]
|
987
|
+
|
988
|
+
# <!--
|
989
|
+
# rdoc-file=hash.c
|
990
|
+
# - ENV.include?(name) -> true or false
|
991
|
+
# - ENV.has_key?(name) -> true or false
|
992
|
+
# - ENV.member?(name) -> true or false
|
993
|
+
# - ENV.key?(name) -> true or false
|
994
|
+
# -->
|
995
|
+
# Returns `true` if there is an environment variable with the given `name`:
|
996
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
997
|
+
# ENV.include?('foo') # => true
|
998
|
+
#
|
999
|
+
# Returns `false` if `name` is a valid String and there is no such environment
|
1000
|
+
# variable:
|
1001
|
+
# ENV.include?('baz') # => false
|
1002
|
+
#
|
1003
|
+
# Returns `false` if `name` is the empty String or is a String containing
|
1004
|
+
# character `'='`:
|
1005
|
+
# ENV.include?('') # => false
|
1006
|
+
# ENV.include?('=') # => false
|
1007
|
+
#
|
1008
|
+
# Raises an exception if `name` is a String containing the NUL character `"\0"`:
|
1009
|
+
# ENV.include?("\0") # Raises ArgumentError (bad environment variable name: contains null byte)
|
1010
|
+
#
|
1011
|
+
# Raises an exception if `name` has an encoding that is not ASCII-compatible:
|
1012
|
+
# ENV.include?("\xa1\xa1".force_encoding(Encoding::UTF_16LE))
|
1013
|
+
# # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)
|
1014
|
+
#
|
1015
|
+
# Raises an exception if `name` is not a String:
|
1016
|
+
# ENV.include?(Object.new) # TypeError (no implicit conversion of Object into String)
|
1017
|
+
#
|
1018
|
+
%a{annotate:rdoc:copy:ENV.include?}
|
1019
|
+
def include?: (String name) -> bool
|
1020
|
+
|
1021
|
+
# <!--
|
1022
|
+
# rdoc-file=hash.c
|
1023
|
+
# - ENV.include?(name) -> true or false
|
1024
|
+
# - ENV.has_key?(name) -> true or false
|
1025
|
+
# - ENV.member?(name) -> true or false
|
1026
|
+
# - ENV.key?(name) -> true or false
|
1027
|
+
# -->
|
1028
|
+
# Returns `true` if there is an environment variable with the given `name`:
|
1029
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
1030
|
+
# ENV.include?('foo') # => true
|
1031
|
+
#
|
1032
|
+
# Returns `false` if `name` is a valid String and there is no such environment
|
1033
|
+
# variable:
|
1034
|
+
# ENV.include?('baz') # => false
|
1035
|
+
#
|
1036
|
+
# Returns `false` if `name` is the empty String or is a String containing
|
1037
|
+
# character `'='`:
|
1038
|
+
# ENV.include?('') # => false
|
1039
|
+
# ENV.include?('=') # => false
|
1040
|
+
#
|
1041
|
+
# Raises an exception if `name` is a String containing the NUL character `"\0"`:
|
1042
|
+
# ENV.include?("\0") # Raises ArgumentError (bad environment variable name: contains null byte)
|
1043
|
+
#
|
1044
|
+
# Raises an exception if `name` has an encoding that is not ASCII-compatible:
|
1045
|
+
# ENV.include?("\xa1\xa1".force_encoding(Encoding::UTF_16LE))
|
1046
|
+
# # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)
|
1047
|
+
#
|
1048
|
+
# Raises an exception if `name` is not a String:
|
1049
|
+
# ENV.include?(Object.new) # TypeError (no implicit conversion of Object into String)
|
1050
|
+
#
|
1051
|
+
%a{annotate:rdoc:copy:ENV.member?}
|
1052
|
+
alias member? include?
|
1053
|
+
|
1054
|
+
# <!--
|
1055
|
+
# rdoc-file=hash.c
|
1056
|
+
# - ENV.include?(name) -> true or false
|
1057
|
+
# - ENV.has_key?(name) -> true or false
|
1058
|
+
# - ENV.member?(name) -> true or false
|
1059
|
+
# - ENV.key?(name) -> true or false
|
1060
|
+
# -->
|
1061
|
+
# Returns `true` if there is an environment variable with the given `name`:
|
1062
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
1063
|
+
# ENV.include?('foo') # => true
|
1064
|
+
#
|
1065
|
+
# Returns `false` if `name` is a valid String and there is no such environment
|
1066
|
+
# variable:
|
1067
|
+
# ENV.include?('baz') # => false
|
1068
|
+
#
|
1069
|
+
# Returns `false` if `name` is the empty String or is a String containing
|
1070
|
+
# character `'='`:
|
1071
|
+
# ENV.include?('') # => false
|
1072
|
+
# ENV.include?('=') # => false
|
1073
|
+
#
|
1074
|
+
# Raises an exception if `name` is a String containing the NUL character `"\0"`:
|
1075
|
+
# ENV.include?("\0") # Raises ArgumentError (bad environment variable name: contains null byte)
|
1076
|
+
#
|
1077
|
+
# Raises an exception if `name` has an encoding that is not ASCII-compatible:
|
1078
|
+
# ENV.include?("\xa1\xa1".force_encoding(Encoding::UTF_16LE))
|
1079
|
+
# # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)
|
1080
|
+
#
|
1081
|
+
# Raises an exception if `name` is not a String:
|
1082
|
+
# ENV.include?(Object.new) # TypeError (no implicit conversion of Object into String)
|
1083
|
+
#
|
1084
|
+
%a{annotate:rdoc:copy:ENV.has_key?}
|
1085
|
+
alias has_key? include?
|
1086
|
+
|
1087
|
+
# <!--
|
1088
|
+
# rdoc-file=hash.c
|
1089
|
+
# - ENV.value?(value) -> true or false
|
1090
|
+
# - ENV.has_value?(value) -> true or false
|
1091
|
+
# -->
|
1092
|
+
# Returns `true` if `value` is the value for some environment variable name,
|
1093
|
+
# `false` otherwise:
|
1094
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
1095
|
+
# ENV.value?('0') # => true
|
1096
|
+
# ENV.has_value?('0') # => true
|
1097
|
+
# ENV.value?('2') # => false
|
1098
|
+
# ENV.has_value?('2') # => false
|
1099
|
+
#
|
1100
|
+
%a{annotate:rdoc:copy:ENV.has_value?}
|
1101
|
+
def has_value?: (String value) -> bool
|
1102
|
+
|
1103
|
+
# <!--
|
1104
|
+
# rdoc-file=hash.c
|
1105
|
+
# - ENV.value?(value) -> true or false
|
1106
|
+
# - ENV.has_value?(value) -> true or false
|
1107
|
+
# -->
|
1108
|
+
# Returns `true` if `value` is the value for some environment variable name,
|
1109
|
+
# `false` otherwise:
|
1110
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
1111
|
+
# ENV.value?('0') # => true
|
1112
|
+
# ENV.has_value?('0') # => true
|
1113
|
+
# ENV.value?('2') # => false
|
1114
|
+
# ENV.has_value?('2') # => false
|
1115
|
+
#
|
1116
|
+
%a{annotate:rdoc:copy:ENV.value?}
|
1117
|
+
alias value? has_value?
|
1118
|
+
|
1119
|
+
# <!--
|
1120
|
+
# rdoc-file=hash.c
|
1121
|
+
# - ENV.include?(name) -> true or false
|
1122
|
+
# - ENV.has_key?(name) -> true or false
|
1123
|
+
# - ENV.member?(name) -> true or false
|
1124
|
+
# - ENV.key?(name) -> true or false
|
1125
|
+
# -->
|
1126
|
+
# Returns `true` if there is an environment variable with the given `name`:
|
1127
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
1128
|
+
# ENV.include?('foo') # => true
|
1129
|
+
#
|
1130
|
+
# Returns `false` if `name` is a valid String and there is no such environment
|
1131
|
+
# variable:
|
1132
|
+
# ENV.include?('baz') # => false
|
1133
|
+
#
|
1134
|
+
# Returns `false` if `name` is the empty String or is a String containing
|
1135
|
+
# character `'='`:
|
1136
|
+
# ENV.include?('') # => false
|
1137
|
+
# ENV.include?('=') # => false
|
1138
|
+
#
|
1139
|
+
# Raises an exception if `name` is a String containing the NUL character `"\0"`:
|
1140
|
+
# ENV.include?("\0") # Raises ArgumentError (bad environment variable name: contains null byte)
|
1141
|
+
#
|
1142
|
+
# Raises an exception if `name` has an encoding that is not ASCII-compatible:
|
1143
|
+
# ENV.include?("\xa1\xa1".force_encoding(Encoding::UTF_16LE))
|
1144
|
+
# # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)
|
1145
|
+
#
|
1146
|
+
# Raises an exception if `name` is not a String:
|
1147
|
+
# ENV.include?(Object.new) # TypeError (no implicit conversion of Object into String)
|
1148
|
+
#
|
1149
|
+
%a{annotate:rdoc:copy:ENV.key?}
|
1150
|
+
alias key? include?
|
1151
|
+
|
1152
|
+
# <!--
|
1153
|
+
# rdoc-file=hash.c
|
1154
|
+
# - ENV.to_hash -> hash of name/value pairs
|
1155
|
+
# -->
|
1156
|
+
# Returns a Hash containing all name/value pairs from ENV:
|
1157
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
1158
|
+
# ENV.to_hash # => {"bar"=>"1", "foo"=>"0"}
|
1159
|
+
#
|
1160
|
+
%a{annotate:rdoc:copy:ENV.to_hash}
|
1161
|
+
def to_hash: () -> ::Hash[String, String]
|
1162
|
+
|
1163
|
+
# <!--
|
1164
|
+
# rdoc-file=hash.c
|
1165
|
+
# - ENV.assoc(name) -> [name, value] or nil
|
1166
|
+
# -->
|
1167
|
+
# Returns a 2-element Array containing the name and value of the environment
|
1168
|
+
# variable for `name` if it exists:
|
1169
|
+
# ENV.replace('foo' => '0', 'bar' => '1')
|
1170
|
+
# ENV.assoc('foo') # => ['foo', '0']
|
1171
|
+
#
|
1172
|
+
# Returns `nil` if `name` is a valid String and there is no such environment
|
1173
|
+
# variable.
|
1174
|
+
#
|
1175
|
+
# Returns `nil` if `name` is the empty String or is a String containing
|
1176
|
+
# character `'='`.
|
1177
|
+
#
|
1178
|
+
# Raises an exception if `name` is a String containing the NUL character `"\0"`:
|
1179
|
+
# ENV.assoc("\0") # Raises ArgumentError (bad environment variable name: contains null byte)
|
1180
|
+
#
|
1181
|
+
# Raises an exception if `name` has an encoding that is not ASCII-compatible:
|
1182
|
+
# ENV.assoc("\xa1\xa1".force_encoding(Encoding::UTF_16LE))
|
1183
|
+
# # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)
|
1184
|
+
#
|
1185
|
+
# Raises an exception if `name` is not a String:
|
1186
|
+
# ENV.assoc(Object.new) # TypeError (no implicit conversion of Object into String)
|
1187
|
+
#
|
1188
|
+
%a{annotate:rdoc:copy:ENV.assoc}
|
1189
|
+
def assoc: (String name) -> [ String, String ]?
|
1190
|
+
|
1191
|
+
# <!--
|
1192
|
+
# rdoc-file=hash.c
|
1193
|
+
# - ENV.rassoc(value) -> [name, value] or nil
|
1194
|
+
# -->
|
1195
|
+
# Returns a 2-element Array containing the name and value of the **first**
|
1196
|
+
# **found** environment variable that has value `value`, if one exists:
|
1197
|
+
# ENV.replace('foo' => '0', 'bar' => '0')
|
1198
|
+
# ENV.rassoc('0') # => ["bar", "0"]
|
1199
|
+
#
|
1200
|
+
# The order in which environment variables are examined is OS-dependent. See
|
1201
|
+
# [About Ordering](rdoc-ref:ENV@About+Ordering).
|
1202
|
+
#
|
1203
|
+
# Returns `nil` if there is no such environment variable.
|
1204
|
+
#
|
1205
|
+
%a{annotate:rdoc:copy:ENV.rassoc}
|
1206
|
+
def rassoc: (String value) -> [ String, String ]?
|
1207
|
+
end
|
1208
|
+
end
|
1209
|
+
end
|