rubygems-update 3.3.18 → 3.6.2
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 +4 -4
- data/CHANGELOG.md +2182 -1067
- data/CODE_OF_CONDUCT.md +79 -28
- data/Manifest.txt +184 -290
- data/README.md +35 -19
- data/bundler/CHANGELOG.md +1003 -3
- data/bundler/README.md +3 -7
- data/bundler/bundler.gemspec +11 -11
- data/bundler/exe/bundle +5 -25
- data/bundler/lib/bundler/build_metadata.rb +3 -3
- data/bundler/lib/bundler/capistrano.rb +1 -1
- data/bundler/lib/bundler/checksum.rb +254 -0
- data/bundler/lib/bundler/ci_detector.rb +75 -0
- data/bundler/lib/bundler/cli/add.rb +7 -5
- data/bundler/lib/bundler/cli/binstubs.rb +10 -6
- data/bundler/lib/bundler/cli/cache.rb +1 -1
- data/bundler/lib/bundler/cli/check.rb +4 -4
- data/bundler/lib/bundler/cli/common.rb +11 -1
- data/bundler/lib/bundler/cli/config.rb +8 -7
- data/bundler/lib/bundler/cli/console.rb +2 -5
- data/bundler/lib/bundler/cli/doctor.rb +10 -12
- data/bundler/lib/bundler/cli/exec.rb +2 -1
- data/bundler/lib/bundler/cli/fund.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +77 -53
- data/bundler/lib/bundler/cli/info.rb +4 -15
- data/bundler/lib/bundler/cli/init.rb +6 -2
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +27 -15
- data/bundler/lib/bundler/cli/issue.rb +1 -1
- data/bundler/lib/bundler/cli/lock.rb +54 -28
- data/bundler/lib/bundler/cli/open.rb +9 -9
- data/bundler/lib/bundler/cli/outdated.rb +34 -29
- data/bundler/lib/bundler/cli/platform.rb +7 -5
- data/bundler/lib/bundler/cli/plugin.rb +9 -15
- data/bundler/lib/bundler/cli/pristine.rb +38 -30
- data/bundler/lib/bundler/cli/show.rb +4 -4
- data/bundler/lib/bundler/cli/update.rb +6 -5
- data/bundler/lib/bundler/cli/viz.rb +1 -1
- data/bundler/lib/bundler/cli.rb +258 -307
- data/bundler/lib/bundler/compact_index_client/cache.rb +55 -60
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +148 -0
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
- data/bundler/lib/bundler/compact_index_client/parser.rb +84 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +71 -83
- data/bundler/lib/bundler/compact_index_client.rb +58 -80
- data/bundler/lib/bundler/constants.rb +9 -2
- data/bundler/lib/bundler/current_ruby.rb +11 -16
- data/bundler/lib/bundler/definition.rb +547 -228
- data/bundler/lib/bundler/dependency.rb +30 -87
- data/bundler/lib/bundler/digest.rb +3 -3
- data/bundler/lib/bundler/dsl.rb +115 -65
- data/bundler/lib/bundler/endpoint_specification.rb +27 -14
- data/bundler/lib/bundler/env.rb +5 -7
- data/bundler/lib/bundler/environment_preserver.rb +8 -25
- data/bundler/lib/bundler/errors.rb +85 -11
- data/bundler/lib/bundler/feature_flag.rb +1 -2
- data/bundler/lib/bundler/fetcher/base.rb +5 -3
- data/bundler/lib/bundler/fetcher/compact_index.rb +28 -43
- data/bundler/lib/bundler/fetcher/dependency.rb +3 -7
- data/bundler/lib/bundler/fetcher/downloader.rb +17 -16
- data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- data/bundler/lib/bundler/fetcher/index.rb +2 -3
- data/bundler/lib/bundler/fetcher.rb +91 -74
- data/bundler/lib/bundler/force_platform.rb +16 -0
- data/bundler/lib/bundler/friendly_errors.rb +6 -9
- data/bundler/lib/bundler/gem_helper.rb +5 -6
- data/bundler/lib/bundler/gem_helpers.rb +45 -7
- data/bundler/lib/bundler/gem_version_promoter.rb +68 -109
- data/bundler/lib/bundler/graph.rb +9 -9
- data/bundler/lib/bundler/index.rb +69 -73
- data/bundler/lib/bundler/injector.rb +12 -13
- data/bundler/lib/bundler/inline.rb +40 -17
- data/bundler/lib/bundler/installer/gem_installer.rb +13 -12
- data/bundler/lib/bundler/installer/parallel_installer.rb +19 -66
- data/bundler/lib/bundler/installer/standalone.rb +29 -15
- data/bundler/lib/bundler/installer.rb +27 -77
- data/bundler/lib/bundler/lazy_specification.rb +134 -71
- data/bundler/lib/bundler/lockfile_generator.rb +13 -4
- data/bundler/lib/bundler/lockfile_parser.rb +134 -61
- data/bundler/lib/bundler/man/bundle-add.1 +46 -48
- data/bundler/lib/bundler/man/bundle-add.1.ronn +54 -22
- data/bundler/lib/bundler/man/bundle-binstubs.1 +10 -19
- data/bundler/lib/bundler/man/bundle-binstubs.1.ronn +6 -3
- data/bundler/lib/bundler/man/bundle-cache.1 +38 -25
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +40 -4
- data/bundler/lib/bundler/man/bundle-check.1 +7 -14
- data/bundler/lib/bundler/man/bundle-check.1.ronn +7 -2
- data/bundler/lib/bundler/man/bundle-clean.1 +4 -11
- data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +41 -220
- data/bundler/lib/bundler/man/bundle-config.1.ronn +27 -22
- data/bundler/lib/bundler/man/bundle-console.1 +33 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +39 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +5 -19
- data/bundler/lib/bundler/man/bundle-doctor.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-env.1 +9 -0
- data/bundler/lib/bundler/man/bundle-env.1.ronn +10 -0
- data/bundler/lib/bundler/man/bundle-exec.1 +20 -78
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +12 -10
- data/bundler/lib/bundler/man/bundle-fund.1 +22 -0
- data/bundler/lib/bundler/man/bundle-fund.1.ronn +25 -0
- data/bundler/lib/bundler/man/bundle-gem.1 +53 -81
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +41 -9
- data/bundler/lib/bundler/man/bundle-help.1 +9 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +8 -11
- data/bundler/lib/bundler/man/bundle-info.1.ronn +9 -5
- data/bundler/lib/bundler/man/bundle-init.1 +7 -12
- data/bundler/lib/bundler/man/bundle-init.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-inject.1 +17 -19
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +12 -2
- data/bundler/lib/bundler/man/bundle-install.1 +42 -162
- data/bundler/lib/bundler/man/bundle-install.1.ronn +31 -49
- data/bundler/lib/bundler/man/bundle-issue.1 +45 -0
- data/bundler/lib/bundler/man/bundle-issue.1.ronn +37 -0
- data/bundler/lib/bundler/man/bundle-licenses.1 +9 -0
- data/bundler/lib/bundler/man/bundle-licenses.1.ronn +10 -0
- data/bundler/lib/bundler/man/bundle-list.1 +4 -19
- data/bundler/lib/bundler/man/bundle-list.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +25 -34
- data/bundler/lib/bundler/man/bundle-lock.1.ronn +25 -4
- data/bundler/lib/bundler/man/bundle-open.1 +18 -18
- data/bundler/lib/bundler/man/bundle-open.1.ronn +10 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +22 -67
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +20 -12
- data/bundler/lib/bundler/man/bundle-platform.1 +16 -28
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +58 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +63 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
- data/bundler/lib/bundler/man/bundle-pristine.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
- data/bundler/lib/bundler/man/bundle-remove.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +7 -11
- data/bundler/lib/bundler/man/bundle-show.1.ronn +4 -0
- data/bundler/lib/bundler/man/bundle-update.1 +30 -143
- data/bundler/lib/bundler/man/bundle-update.1.ronn +14 -6
- data/bundler/lib/bundler/man/bundle-version.1 +22 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-viz.1 +9 -18
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +9 -3
- data/bundler/lib/bundler/man/bundle.1 +17 -51
- data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
- data/bundler/lib/bundler/man/gemfile.5 +77 -341
- data/bundler/lib/bundler/man/gemfile.5.ronn +73 -54
- data/bundler/lib/bundler/man/index.txt +8 -0
- data/bundler/lib/bundler/match_metadata.rb +17 -0
- data/bundler/lib/bundler/match_platform.rb +1 -1
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/materialization.rb +59 -0
- data/bundler/lib/bundler/mirror.rb +8 -10
- data/bundler/lib/bundler/plugin/api/source.rb +7 -5
- data/bundler/lib/bundler/plugin/events.rb +24 -0
- data/bundler/lib/bundler/plugin/index.rb +13 -5
- data/bundler/lib/bundler/plugin/installer/path.rb +18 -0
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
- data/bundler/lib/bundler/plugin/installer.rb +42 -19
- data/bundler/lib/bundler/plugin/source_list.rb +4 -4
- data/bundler/lib/bundler/plugin.rb +35 -7
- data/bundler/lib/bundler/process_lock.rb +10 -14
- data/bundler/lib/bundler/remote_specification.rb +17 -13
- data/bundler/lib/bundler/resolver/base.rb +117 -0
- data/bundler/lib/bundler/resolver/candidate.rb +82 -0
- data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
- data/bundler/lib/bundler/resolver/package.rb +90 -0
- data/bundler/lib/bundler/resolver/root.rb +25 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +54 -67
- data/bundler/lib/bundler/resolver.rb +432 -329
- data/bundler/lib/bundler/retry.rb +2 -2
- data/bundler/lib/bundler/ruby_dsl.rb +42 -7
- data/bundler/lib/bundler/ruby_version.rb +23 -10
- data/bundler/lib/bundler/rubygems_ext.rb +286 -81
- data/bundler/lib/bundler/rubygems_gem_installer.rb +77 -68
- data/bundler/lib/bundler/rubygems_integration.rb +57 -155
- data/bundler/lib/bundler/runtime.rb +28 -17
- data/bundler/lib/bundler/safe_marshal.rb +31 -0
- data/bundler/lib/bundler/self_manager.rb +50 -12
- data/bundler/lib/bundler/settings.rb +144 -58
- data/bundler/lib/bundler/setup.rb +13 -1
- data/bundler/lib/bundler/shared_helpers.rb +87 -36
- data/bundler/lib/bundler/source/git/git_proxy.rb +278 -80
- data/bundler/lib/bundler/source/git.rb +161 -68
- data/bundler/lib/bundler/source/metadata.rb +16 -16
- data/bundler/lib/bundler/source/path/installer.rb +1 -22
- data/bundler/lib/bundler/source/path.rb +16 -26
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source/rubygems.rb +94 -154
- data/bundler/lib/bundler/source.rb +3 -1
- data/bundler/lib/bundler/source_list.rb +34 -4
- data/bundler/lib/bundler/spec_set.rb +195 -65
- data/bundler/lib/bundler/stub_specification.rb +34 -4
- data/bundler/lib/bundler/templates/Executable +1 -1
- data/bundler/lib/bundler/templates/Executable.bundler +6 -11
- data/bundler/lib/bundler/templates/Executable.standalone +2 -0
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +77 -29
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/README.md.tt +11 -5
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -8
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +0 -4
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -8
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +12 -4
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +0 -5
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
- data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
- data/bundler/lib/bundler/ui/shell.rb +60 -15
- data/bundler/lib/bundler/ui/silent.rb +33 -6
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -3
- data/bundler/lib/bundler/uri_normalizer.rb +23 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +56 -7
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -418
- data/bundler/lib/bundler/vendor/net-http-persistent/.document +1 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +4 -3
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +23 -11
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +102 -64
- data/bundler/lib/bundler/vendor/pub_grub/.document +1 -0
- data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +61 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/bundler/lib/bundler/vendor/securerandom/.document +1 -0
- data/bundler/lib/bundler/vendor/securerandom/COPYING +56 -0
- data/bundler/lib/bundler/vendor/securerandom/lib/securerandom.rb +102 -0
- data/bundler/lib/bundler/vendor/thor/.document +1 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +3 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +11 -15
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +15 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +15 -15
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +140 -14
- data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +13 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +4 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +16 -25
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +12 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +17 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +33 -17
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +28 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +46 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +40 -30
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +35 -159
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -46
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -46
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +118 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +8 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +166 -8
- data/bundler/lib/bundler/vendor/tsort/.document +1 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
- data/bundler/lib/bundler/vendor/uri/.document +1 -0
- data/bundler/lib/bundler/vendor/uri/COPYING +56 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +343 -148
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +10 -4
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +3 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +44 -33
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +25 -12
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +130 -38
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +12 -11
- data/bundler/lib/bundler/vendored_net_http.rb +23 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -36
- data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
- data/bundler/lib/bundler/vendored_securerandom.rb +12 -0
- data/bundler/lib/bundler/vendored_timeout.rb +12 -0
- data/bundler/lib/bundler/vendored_uri.rb +18 -1
- data/bundler/lib/bundler/version.rb +5 -1
- data/bundler/lib/bundler/vlad.rb +1 -1
- data/bundler/lib/bundler/worker.rb +5 -7
- data/bundler/lib/bundler/yaml_serializer.rb +22 -13
- data/bundler/lib/bundler.rb +155 -148
- data/{bundler → doc/bundler}/UPGRADING.md +11 -4
- data/{CONTRIBUTING.md → doc/rubygems/CONTRIBUTING.md} +40 -17
- data/doc/rubygems/POLICIES.md +204 -0
- data/{test/rubygems/fake_certlib/openssl.rb → exe/gem} +5 -1
- data/{bin → exe}/update_rubygems +12 -10
- data/lib/rubygems/available_set.rb +8 -7
- data/lib/rubygems/basic_specification.rb +90 -52
- data/lib/rubygems/bundler_version_finder.rb +6 -6
- data/lib/rubygems/ci_detector.rb +75 -0
- data/lib/rubygems/command.rb +68 -64
- data/lib/rubygems/command_manager.rb +39 -24
- data/lib/rubygems/commands/build_command.rb +14 -19
- data/lib/rubygems/commands/cert_command.rb +39 -39
- data/lib/rubygems/commands/check_command.rb +30 -25
- data/lib/rubygems/commands/cleanup_command.rb +32 -43
- data/lib/rubygems/commands/contents_command.rb +33 -25
- data/lib/rubygems/commands/dependency_command.rb +22 -23
- data/lib/rubygems/commands/environment_command.rb +8 -9
- data/lib/rubygems/commands/exec_command.rb +247 -0
- data/lib/rubygems/commands/fetch_command.rb +25 -10
- data/lib/rubygems/commands/generate_index_command.rb +40 -74
- data/lib/rubygems/commands/help_command.rb +15 -14
- data/lib/rubygems/commands/info_command.rb +5 -5
- data/lib/rubygems/commands/install_command.rb +31 -38
- data/lib/rubygems/commands/list_command.rb +6 -5
- data/lib/rubygems/commands/lock_command.rb +6 -5
- data/lib/rubygems/commands/mirror_command.rb +4 -3
- data/lib/rubygems/commands/open_command.rb +11 -12
- data/lib/rubygems/commands/outdated_command.rb +6 -5
- data/lib/rubygems/commands/owner_command.rb +23 -22
- data/lib/rubygems/commands/pristine_command.rb +83 -62
- data/lib/rubygems/commands/push_command.rb +38 -13
- data/lib/rubygems/commands/query_command.rb +11 -11
- data/lib/rubygems/commands/rdoc_command.rb +23 -28
- data/lib/rubygems/commands/rebuild_command.rb +262 -0
- data/lib/rubygems/commands/search_command.rb +6 -5
- data/lib/rubygems/commands/server_command.rb +4 -3
- data/lib/rubygems/commands/setup_command.rb +137 -154
- data/lib/rubygems/commands/signin_command.rb +10 -9
- data/lib/rubygems/commands/signout_command.rb +8 -7
- data/lib/rubygems/commands/sources_command.rb +34 -33
- data/lib/rubygems/commands/specification_command.rb +25 -20
- data/lib/rubygems/commands/stale_command.rb +5 -4
- data/lib/rubygems/commands/uninstall_command.rb +66 -59
- data/lib/rubygems/commands/unpack_command.rb +23 -30
- data/lib/rubygems/commands/update_command.rb +62 -94
- data/lib/rubygems/commands/which_command.rb +9 -8
- data/lib/rubygems/commands/yank_command.rb +14 -13
- data/lib/rubygems/compatibility.rb +5 -6
- data/lib/rubygems/config_file.rb +160 -50
- data/lib/rubygems/core_ext/kernel_gem.rb +3 -10
- data/lib/rubygems/core_ext/kernel_require.rb +88 -114
- data/lib/rubygems/core_ext/kernel_warn.rb +30 -39
- data/lib/rubygems/core_ext/tcpsocket_init.rb +4 -2
- data/lib/rubygems/defaults.rb +53 -22
- data/lib/rubygems/dependency.rb +34 -36
- data/lib/rubygems/dependency_installer.rb +52 -56
- data/lib/rubygems/dependency_list.rb +8 -7
- data/lib/rubygems/deprecate.rb +80 -75
- data/lib/rubygems/doctor.rb +23 -22
- data/lib/rubygems/errors.rb +6 -8
- data/lib/rubygems/exceptions.rb +20 -18
- data/lib/rubygems/ext/build_error.rb +2 -1
- data/lib/rubygems/ext/builder.rb +56 -32
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
- data/lib/rubygems/ext/cargo_builder.rb +158 -131
- data/lib/rubygems/ext/cmake_builder.rb +9 -4
- data/lib/rubygems/ext/configure_builder.rb +9 -3
- data/lib/rubygems/ext/ext_conf_builder.rb +19 -15
- data/lib/rubygems/ext/rake_builder.rb +14 -7
- data/lib/rubygems/ext.rb +8 -7
- data/lib/rubygems/gem_runner.rb +23 -9
- data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +80 -0
- data/lib/rubygems/gemcutter_utilities.rb +141 -63
- data/lib/rubygems/gemspec_helpers.rb +19 -0
- data/lib/rubygems/install_default_message.rb +3 -2
- data/lib/rubygems/install_message.rb +3 -2
- data/lib/rubygems/install_update_options.rb +72 -67
- data/lib/rubygems/installer.rb +148 -130
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -4
- data/lib/rubygems/local_remote_options.rb +24 -28
- data/lib/rubygems/name_tuple.rb +10 -11
- data/lib/rubygems/package/digest_io.rb +2 -1
- data/lib/rubygems/package/file_source.rb +3 -2
- data/lib/rubygems/package/io_source.rb +1 -0
- data/lib/rubygems/package/old.rb +11 -10
- data/lib/rubygems/package/source.rb +1 -0
- data/lib/rubygems/package/tar_header.rb +125 -91
- data/lib/rubygems/package/tar_reader/entry.rb +106 -29
- data/lib/rubygems/package/tar_reader.rb +16 -39
- data/lib/rubygems/package/tar_writer.rb +29 -26
- data/lib/rubygems/package.rb +122 -84
- data/lib/rubygems/package_task.rb +7 -6
- data/lib/rubygems/path_support.rb +11 -11
- data/lib/rubygems/platform.rb +119 -70
- data/lib/rubygems/psych_tree.rb +6 -1
- data/lib/rubygems/query_utils.rb +46 -48
- data/lib/rubygems/rdoc.rb +13 -3
- data/lib/rubygems/remote_fetcher.rb +47 -39
- data/lib/rubygems/request/connection_pools.rb +6 -6
- data/lib/rubygems/request/http_pool.rb +2 -1
- data/lib/rubygems/request/https_pool.rb +1 -0
- data/lib/rubygems/request.rb +48 -44
- data/lib/rubygems/request_set/gem_dependency_api.rb +141 -144
- data/lib/rubygems/request_set/lockfile/parser.rb +31 -30
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +24 -14
- data/lib/rubygems/request_set/lockfile.rb +11 -15
- data/lib/rubygems/request_set.rb +25 -23
- data/lib/rubygems/requirement.rb +30 -27
- data/lib/rubygems/resolver/activation_request.rb +7 -10
- data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
- data/lib/rubygems/resolver/api_set.rb +20 -13
- data/lib/rubygems/resolver/api_specification.rb +8 -7
- data/lib/rubygems/resolver/best_set.rb +5 -32
- data/lib/rubygems/resolver/composed_set.rb +4 -3
- data/lib/rubygems/resolver/conflict.rb +14 -21
- data/lib/rubygems/resolver/current_set.rb +1 -0
- data/lib/rubygems/resolver/dependency_request.rb +3 -2
- data/lib/rubygems/resolver/git_set.rb +2 -2
- data/lib/rubygems/resolver/git_specification.rb +7 -6
- data/lib/rubygems/resolver/index_set.rb +10 -9
- data/lib/rubygems/resolver/index_specification.rb +8 -6
- data/lib/rubygems/resolver/installed_specification.rb +6 -5
- data/lib/rubygems/resolver/installer_set.rb +19 -22
- data/lib/rubygems/resolver/local_specification.rb +4 -3
- data/lib/rubygems/resolver/lock_set.rb +6 -5
- data/lib/rubygems/resolver/lock_specification.rb +5 -4
- data/lib/rubygems/resolver/requirement_list.rb +1 -0
- data/lib/rubygems/resolver/set.rb +1 -0
- data/lib/rubygems/resolver/source_set.rb +2 -0
- data/lib/rubygems/resolver/spec_specification.rb +8 -0
- data/lib/rubygems/resolver/specification.rb +2 -1
- data/lib/rubygems/resolver/stats.rb +2 -1
- data/lib/rubygems/resolver/vendor_set.rb +2 -1
- data/lib/rubygems/resolver/vendor_specification.rb +4 -3
- data/lib/rubygems/resolver.rb +51 -57
- data/lib/rubygems/s3_uri_signer.rb +18 -16
- data/lib/rubygems/safe_marshal/elements.rb +146 -0
- data/lib/rubygems/safe_marshal/reader.rb +325 -0
- data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
- data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +428 -0
- data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
- data/lib/rubygems/safe_marshal.rb +74 -0
- data/lib/rubygems/safe_yaml.rb +14 -26
- data/lib/rubygems/security/policies.rb +48 -49
- data/lib/rubygems/security/policy.rb +25 -28
- data/lib/rubygems/security/signer.rb +16 -7
- data/lib/rubygems/security/trust_dir.rb +12 -13
- data/lib/rubygems/security.rb +40 -66
- data/lib/rubygems/security_option.rb +7 -6
- data/lib/rubygems/shellwords.rb +3 -0
- data/lib/rubygems/source/git.rb +34 -31
- data/lib/rubygems/source/installed.rb +4 -3
- data/lib/rubygems/source/local.rb +49 -49
- data/lib/rubygems/source/lock.rb +2 -3
- data/lib/rubygems/source/specific_file.rb +6 -4
- data/lib/rubygems/source/vendor.rb +1 -2
- data/lib/rubygems/source.rb +37 -31
- data/lib/rubygems/source_list.rb +8 -8
- data/lib/rubygems/spec_fetcher.rb +95 -66
- data/lib/rubygems/specification.rb +342 -404
- data/lib/rubygems/specification_policy.rb +147 -75
- data/lib/rubygems/specification_record.rb +212 -0
- data/lib/rubygems/stub_specification.rb +56 -30
- data/lib/rubygems/target_rbconfig.rb +50 -0
- data/lib/rubygems/text.rb +3 -4
- data/lib/rubygems/uninstaller.rb +67 -48
- data/lib/rubygems/update_suggestion.rb +56 -0
- data/lib/rubygems/uri.rb +10 -10
- data/lib/rubygems/uri_formatter.rb +2 -2
- data/lib/rubygems/user_interaction.rb +50 -40
- data/lib/rubygems/util/licenses.rb +310 -39
- data/lib/rubygems/util/list.rb +4 -1
- data/lib/rubygems/util.rb +19 -20
- data/lib/rubygems/validator.rb +15 -14
- data/lib/rubygems/vendor/molinillo/.document +1 -0
- data/lib/rubygems/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +11 -11
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/dependency_graph.rb +3 -3
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/lib/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb +6 -0
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +2 -2
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/modules/ui.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/resolution.rb +4 -4
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/resolver.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo/state.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/lib/molinillo.rb +2 -2
- data/lib/rubygems/vendor/net-http/.document +1 -0
- data/lib/rubygems/vendor/net-http/COPYING +56 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/exceptions.rb +34 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/generic_request.rb +414 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/header.rb +981 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/proxy_delta.rb +17 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/request.rb +88 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/requests.rb +430 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/response.rb +738 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/responses.rb +1174 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/status.rb +84 -0
- data/lib/rubygems/vendor/net-http/lib/net/http.rb +2580 -0
- data/lib/rubygems/vendor/net-http/lib/net/https.rb +23 -0
- data/lib/rubygems/vendor/net-protocol/.document +1 -0
- data/lib/rubygems/vendor/net-protocol/lib/net/protocol.rb +544 -0
- data/lib/rubygems/vendor/optparse/.document +1 -0
- data/lib/rubygems/vendor/optparse/COPYING +56 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/ac.rb +16 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/kwargs.rb +8 -3
- data/lib/rubygems/vendor/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/version.rb +9 -0
- data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse.rb +206 -83
- data/lib/rubygems/vendor/resolv/.document +1 -0
- data/lib/rubygems/vendor/resolv/COPYING +56 -0
- data/lib/rubygems/vendor/resolv/lib/resolv.rb +3455 -0
- data/lib/rubygems/vendor/securerandom/.document +1 -0
- data/lib/rubygems/vendor/securerandom/COPYING +56 -0
- data/lib/rubygems/vendor/securerandom/lib/securerandom.rb +102 -0
- data/lib/rubygems/vendor/timeout/.document +1 -0
- data/lib/rubygems/vendor/timeout/COPYING +56 -0
- data/lib/rubygems/vendor/timeout/lib/timeout.rb +198 -0
- data/lib/rubygems/vendor/tsort/.document +1 -0
- data/lib/rubygems/vendor/tsort/lib/tsort.rb +455 -0
- data/lib/rubygems/vendor/uri/.document +1 -0
- data/lib/rubygems/vendor/uri/COPYING +56 -0
- data/lib/rubygems/vendor/uri/lib/uri/common.rb +876 -0
- data/lib/rubygems/vendor/uri/lib/uri/file.rb +100 -0
- data/lib/rubygems/vendor/uri/lib/uri/ftp.rb +267 -0
- data/lib/rubygems/vendor/uri/lib/uri/generic.rb +1578 -0
- data/lib/rubygems/vendor/uri/lib/uri/http.rb +125 -0
- data/lib/rubygems/vendor/uri/lib/uri/https.rb +23 -0
- data/lib/rubygems/vendor/uri/lib/uri/ldap.rb +261 -0
- data/lib/rubygems/vendor/uri/lib/uri/ldaps.rb +22 -0
- data/lib/rubygems/vendor/uri/lib/uri/mailto.rb +293 -0
- data/lib/rubygems/vendor/uri/lib/uri/rfc2396_parser.rb +546 -0
- data/lib/rubygems/vendor/uri/lib/uri/rfc3986_parser.rb +206 -0
- data/lib/rubygems/vendor/uri/lib/uri/version.rb +6 -0
- data/lib/rubygems/vendor/uri/lib/uri/ws.rb +83 -0
- data/lib/rubygems/vendor/uri/lib/uri/wss.rb +23 -0
- data/lib/rubygems/vendor/uri/lib/uri.rb +104 -0
- data/{bundler/lib/bundler → lib/rubygems}/vendored_molinillo.rb +0 -1
- data/lib/rubygems/vendored_net_http.rb +5 -0
- data/lib/rubygems/vendored_optparse.rb +3 -0
- data/lib/rubygems/vendored_securerandom.rb +3 -0
- data/lib/rubygems/vendored_timeout.rb +5 -0
- data/lib/rubygems/vendored_tsort.rb +3 -0
- data/lib/rubygems/version.rb +57 -45
- data/lib/rubygems/version_option.rb +6 -8
- data/lib/rubygems/yaml_serializer.rb +98 -0
- data/lib/rubygems.rb +191 -133
- data/rubygems-update.gemspec +16 -9
- data/setup.rb +12 -9
- metadata +233 -307
- data/POLICIES.md +0 -100
- data/bin/gem +0 -13
- data/bundler/lib/bundler/dep_proxy.rb +0 -55
- data/bundler/lib/bundler/templates/gems.rb +0 -5
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
- data/bundler/lib/bundler/version_ranges.rb +0 -122
- data/lib/rubygems/indexer.rb +0 -427
- data/lib/rubygems/mock_gem_ui.rb +0 -85
- data/lib/rubygems/optparse/lib/optparse/uri.rb +0 -7
- data/lib/rubygems/optparse.rb +0 -3
- data/lib/rubygems/resolver/molinillo/LICENSE +0 -9
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +0 -143
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +0 -839
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +0 -46
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +0 -58
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +0 -11
- data/lib/rubygems/resolver/molinillo.rb +0 -2
- data/lib/rubygems/tsort/LICENSE.txt +0 -22
- data/lib/rubygems/tsort/lib/tsort.rb +0 -454
- data/lib/rubygems/tsort.rb +0 -3
- data/test/rubygems/alternate_cert.pem +0 -19
- data/test/rubygems/alternate_cert_32.pem +0 -19
- data/test/rubygems/alternate_key.pem +0 -27
- data/test/rubygems/bad_rake.rb +0 -2
- data/test/rubygems/ca_cert.pem +0 -77
- data/test/rubygems/child_cert.pem +0 -20
- data/test/rubygems/child_cert_32.pem +0 -20
- data/test/rubygems/child_key.pem +0 -27
- data/test/rubygems/client.pem +0 -107
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/gem-private_key.pem +0 -27
- data/test/rubygems/data/gem-public_cert.pem +0 -20
- data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +0 -30
- data/test/rubygems/expired_cert.pem +0 -19
- data/test/rubygems/foo/discover.rb +0 -1
- data/test/rubygems/future_cert.pem +0 -19
- data/test/rubygems/future_cert_32.pem +0 -19
- data/test/rubygems/good_rake.rb +0 -2
- data/test/rubygems/grandchild_cert.pem +0 -20
- data/test/rubygems/grandchild_cert_32.pem +0 -20
- data/test/rubygems/grandchild_key.pem +0 -27
- data/test/rubygems/helper.rb +0 -1622
- data/test/rubygems/installer_test_case.rb +0 -247
- data/test/rubygems/invalid_client.pem +0 -49
- data/test/rubygems/invalid_issuer_cert.pem +0 -20
- data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
- data/test/rubygems/invalid_key.pem +0 -27
- data/test/rubygems/invalid_signer_cert.pem +0 -19
- data/test/rubygems/invalid_signer_cert_32.pem +0 -19
- data/test/rubygems/invalidchild_cert.pem +0 -20
- data/test/rubygems/invalidchild_cert_32.pem +0 -20
- data/test/rubygems/invalidchild_key.pem +0 -27
- data/test/rubygems/package/tar_test_case.rb +0 -139
- data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
- data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -3
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -4
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -3
- data/test/rubygems/private3072_key.pem +0 -40
- data/test/rubygems/private_ec_key.pem +0 -9
- data/test/rubygems/private_key.pem +0 -27
- data/test/rubygems/public3072_cert.pem +0 -25
- data/test/rubygems/public_cert.pem +0 -20
- data/test/rubygems/public_cert_32.pem +0 -19
- data/test/rubygems/public_key.pem +0 -9
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -4
- data/test/rubygems/rubygems_plugin.rb +0 -23
- data/test/rubygems/sff/discover.rb +0 -1
- data/test/rubygems/simple_gem.rb +0 -67
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -7
- data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -12
- data/test/rubygems/ssl_cert.pem +0 -80
- data/test/rubygems/ssl_key.pem +0 -27
- data/test/rubygems/test_bundled_ca.rb +0 -60
- data/test/rubygems/test_config.rb +0 -27
- data/test/rubygems/test_deprecate.rb +0 -157
- data/test/rubygems/test_exit.rb +0 -11
- data/test/rubygems/test_gem.rb +0 -2112
- data/test/rubygems/test_gem_available_set.rb +0 -129
- data/test/rubygems/test_gem_bundler_version_finder.rb +0 -125
- data/test/rubygems/test_gem_command.rb +0 -400
- data/test/rubygems/test_gem_command_manager.rb +0 -334
- data/test/rubygems/test_gem_commands_build_command.rb +0 -727
- data/test/rubygems/test_gem_commands_cert_command.rb +0 -867
- data/test/rubygems/test_gem_commands_check_command.rb +0 -67
- data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -291
- data/test/rubygems/test_gem_commands_contents_command.rb +0 -270
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -227
- data/test/rubygems/test_gem_commands_environment_command.rb +0 -167
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -257
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -80
- data/test/rubygems/test_gem_commands_help_command.rb +0 -93
- data/test/rubygems/test_gem_commands_info_command.rb +0 -43
- data/test/rubygems/test_gem_commands_install_command.rb +0 -1553
- data/test/rubygems/test_gem_commands_list_command.rb +0 -32
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -66
- data/test/rubygems/test_gem_commands_mirror.rb +0 -19
- data/test/rubygems/test_gem_commands_open_command.rb +0 -97
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -49
- data/test/rubygems/test_gem_commands_owner_command.rb +0 -326
- data/test/rubygems/test_gem_commands_pristine_command.rb +0 -659
- data/test/rubygems/test_gem_commands_push_command.rb +0 -477
- data/test/rubygems/test_gem_commands_query_command.rb +0 -857
- data/test/rubygems/test_gem_commands_search_command.rb +0 -15
- data/test/rubygems/test_gem_commands_server_command.rb +0 -19
- data/test/rubygems/test_gem_commands_setup_command.rb +0 -447
- data/test/rubygems/test_gem_commands_signin_command.rb +0 -219
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
- data/test/rubygems/test_gem_commands_specification_command.rb +0 -276
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -42
- data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -504
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -223
- data/test/rubygems/test_gem_commands_update_command.rb +0 -835
- data/test/rubygems/test_gem_commands_which_command.rb +0 -84
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -180
- data/test/rubygems/test_gem_config_file.rb +0 -504
- data/test/rubygems/test_gem_dependency.rb +0 -395
- data/test/rubygems/test_gem_dependency_installer.rb +0 -1155
- data/test/rubygems/test_gem_dependency_list.rb +0 -264
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -26
- data/test/rubygems/test_gem_doctor.rb +0 -194
- data/test/rubygems/test_gem_ext_builder.rb +0 -338
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +0 -243
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs +0 -27
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -243
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -8
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -39
- data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -178
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -33
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -75
- data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -83
- data/test/rubygems/test_gem_ext_configure_builder.rb +0 -79
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -230
- data/test/rubygems/test_gem_ext_rake_builder.rb +0 -112
- data/test/rubygems/test_gem_gem_runner.rb +0 -113
- data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -272
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -59
- data/test/rubygems/test_gem_indexer.rb +0 -361
- data/test/rubygems/test_gem_install_update_options.rb +0 -207
- data/test/rubygems/test_gem_installer.rb +0 -2394
- data/test/rubygems/test_gem_local_remote_options.rb +0 -132
- data/test/rubygems/test_gem_name_tuple.rb +0 -42
- data/test/rubygems/test_gem_package.rb +0 -1178
- data/test/rubygems/test_gem_package_old.rb +0 -90
- data/test/rubygems/test_gem_package_tar_header.rb +0 -225
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -87
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -152
- data/test/rubygems/test_gem_package_tar_writer.rb +0 -330
- data/test/rubygems/test_gem_package_task.rb +0 -117
- data/test/rubygems/test_gem_path_support.rb +0 -138
- data/test/rubygems/test_gem_platform.rb +0 -391
- data/test/rubygems/test_gem_rdoc.rb +0 -136
- data/test/rubygems/test_gem_remote_fetcher.rb +0 -1226
- data/test/rubygems/test_gem_request.rb +0 -541
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -150
- data/test/rubygems/test_gem_request_set.rb +0 -671
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -847
- data/test/rubygems/test_gem_request_set_lockfile.rb +0 -468
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -543
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -306
- data/test/rubygems/test_gem_requirement.rb +0 -498
- data/test/rubygems/test_gem_resolver.rb +0 -791
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -42
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -209
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -166
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -158
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -43
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -81
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -82
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -187
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -113
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -87
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -92
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -46
- data/test/rubygems/test_gem_resolver_installer_set.rb +0 -275
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -43
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -61
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -97
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -18
- data/test/rubygems/test_gem_resolver_specification.rb +0 -62
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -81
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -81
- data/test/rubygems/test_gem_security.rb +0 -340
- data/test/rubygems/test_gem_security_policy.rb +0 -535
- data/test/rubygems/test_gem_security_signer.rb +0 -217
- data/test/rubygems/test_gem_security_trust_dir.rb +0 -98
- data/test/rubygems/test_gem_silent_ui.rb +0 -116
- data/test/rubygems/test_gem_source.rb +0 -253
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -36
- data/test/rubygems/test_gem_source_git.rb +0 -303
- data/test/rubygems/test_gem_source_installed.rb +0 -34
- data/test/rubygems/test_gem_source_list.rb +0 -118
- data/test/rubygems/test_gem_source_local.rb +0 -106
- data/test/rubygems/test_gem_source_lock.rb +0 -112
- data/test/rubygems/test_gem_source_specific_file.rb +0 -75
- data/test/rubygems/test_gem_source_subpath_problem.rb +0 -49
- data/test/rubygems/test_gem_source_vendor.rb +0 -29
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -337
- data/test/rubygems/test_gem_specification.rb +0 -3756
- data/test/rubygems/test_gem_stream_ui.rb +0 -224
- data/test/rubygems/test_gem_stub_specification.rb +0 -277
- data/test/rubygems/test_gem_text.rb +0 -102
- data/test/rubygems/test_gem_uninstaller.rb +0 -674
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -30
- data/test/rubygems/test_gem_uri.rb +0 -39
- data/test/rubygems/test_gem_uri_formatter.rb +0 -26
- data/test/rubygems/test_gem_util.rb +0 -90
- data/test/rubygems/test_gem_validator.rb +0 -42
- data/test/rubygems/test_gem_version.rb +0 -295
- data/test/rubygems/test_gem_version_option.rb +0 -164
- data/test/rubygems/test_kernel.rb +0 -129
- data/test/rubygems/test_project_sanity.rb +0 -20
- data/test/rubygems/test_remote_fetch_error.rb +0 -19
- data/test/rubygems/test_require.rb +0 -719
- data/test/rubygems/test_rubygems.rb +0 -74
- data/test/rubygems/utilities.rb +0 -371
- data/test/rubygems/wrong_key_cert.pem +0 -19
- data/test/rubygems/wrong_key_cert_32.pem +0 -19
- data/test/test_changelog_generator.rb +0 -17
- /data/{lib/rubygems/optparse → bundler/lib/bundler/vendor/connection_pool}/.document +0 -0
- /data/{lib/rubygems/tsort → bundler/lib/bundler/vendor/fileutils}/.document +0 -0
- /data/{lib/rubygems/optparse → bundler/lib/bundler/vendor/fileutils}/COPYING +0 -0
- /data/{MAINTAINERS.txt → doc/MAINTAINERS.txt} +0 -0
- /data/{UPGRADING.md → doc/rubygems/UPGRADING.md} +0 -0
- /data/{bundler/lib/bundler → lib/rubygems}/vendor/molinillo/LICENSE +0 -0
- /data/{bundler/lib/bundler/vendor/fileutils → lib/rubygems/vendor/net-protocol}/LICENSE.txt +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optionparser.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/date.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/shellwords.rb +0 -0
- /data/lib/rubygems/{optparse → vendor/optparse}/lib/optparse/time.rb +0 -0
- /data/{bundler/lib/bundler/vendor/uri → lib/rubygems/vendor/tsort}/LICENSE.txt +0 -0
@@ -8,7 +8,6 @@
|
|
8
8
|
# See Gem::OptionParser for documentation.
|
9
9
|
#
|
10
10
|
|
11
|
-
|
12
11
|
#--
|
13
12
|
# == Developer Documentation (not for RDoc output)
|
14
13
|
#
|
@@ -48,7 +47,7 @@
|
|
48
47
|
#
|
49
48
|
# == Gem::OptionParser
|
50
49
|
#
|
51
|
-
# === New to
|
50
|
+
# === New to +Gem::OptionParser+?
|
52
51
|
#
|
53
52
|
# See the {Tutorial}[optparse/tutorial.rdoc].
|
54
53
|
#
|
@@ -73,7 +72,7 @@
|
|
73
72
|
#
|
74
73
|
# === Minimal example
|
75
74
|
#
|
76
|
-
# require 'rubygems/optparse/lib/optparse'
|
75
|
+
# require 'rubygems/vendor/optparse/lib/optparse'
|
77
76
|
#
|
78
77
|
# options = {}
|
79
78
|
# Gem::OptionParser.new do |parser|
|
@@ -92,7 +91,7 @@
|
|
92
91
|
# Gem::OptionParser can be used to automatically generate help for the commands you
|
93
92
|
# write:
|
94
93
|
#
|
95
|
-
# require 'rubygems/optparse/lib/optparse'
|
94
|
+
# require 'rubygems/vendor/optparse/lib/optparse'
|
96
95
|
#
|
97
96
|
# Options = Struct.new(:name)
|
98
97
|
#
|
@@ -130,7 +129,7 @@
|
|
130
129
|
# option name in all caps. If an option is used without the required argument,
|
131
130
|
# an exception will be raised.
|
132
131
|
#
|
133
|
-
# require 'rubygems/optparse/lib/optparse'
|
132
|
+
# require 'rubygems/vendor/optparse/lib/optparse'
|
134
133
|
#
|
135
134
|
# options = {}
|
136
135
|
# Gem::OptionParser.new do |parser|
|
@@ -152,14 +151,14 @@
|
|
152
151
|
# Gem::OptionParser supports the ability to coerce command line arguments
|
153
152
|
# into objects for us.
|
154
153
|
#
|
155
|
-
# Gem::OptionParser comes with a few ready-to-use kinds of
|
154
|
+
# Gem::OptionParser comes with a few ready-to-use kinds of type
|
156
155
|
# coercion. They are:
|
157
156
|
#
|
158
|
-
# - Date -- Anything accepted by +Date.parse+
|
159
|
-
# - DateTime -- Anything accepted by +DateTime.parse+
|
160
|
-
# - Time -- Anything accepted by +Time.httpdate+ or +Time.parse+
|
161
|
-
# - URI -- Anything accepted by +URI.parse+
|
162
|
-
# - Shellwords -- Anything accepted by +Shellwords.shellwords+
|
157
|
+
# - Date -- Anything accepted by +Date.parse+ (need to require +optparse/date+)
|
158
|
+
# - DateTime -- Anything accepted by +DateTime.parse+ (need to require +optparse/date+)
|
159
|
+
# - Time -- Anything accepted by +Time.httpdate+ or +Time.parse+ (need to require +optparse/time+)
|
160
|
+
# - URI -- Anything accepted by +Gem::URI.parse+ (need to require +optparse/uri+)
|
161
|
+
# - Shellwords -- Anything accepted by +Shellwords.shellwords+ (need to require +optparse/shellwords+)
|
163
162
|
# - String -- Any non-empty string
|
164
163
|
# - Integer -- Any integer. Will convert octal. (e.g. 124, -3, 040)
|
165
164
|
# - Float -- Any float. (e.g. 10, 3.14, -100E+13)
|
@@ -183,8 +182,8 @@
|
|
183
182
|
# as a +Time+. If it succeeds, that time will be passed to the
|
184
183
|
# handler block. Otherwise, an exception will be raised.
|
185
184
|
#
|
186
|
-
# require 'rubygems/optparse/lib/optparse'
|
187
|
-
# require 'rubygems/optparse/lib/optparse/time'
|
185
|
+
# require 'rubygems/vendor/optparse/lib/optparse'
|
186
|
+
# require 'rubygems/vendor/optparse/lib/optparse/time'
|
188
187
|
# Gem::OptionParser.new do |parser|
|
189
188
|
# parser.on("-t", "--time [TIME]", Time, "Begin execution at given time") do |time|
|
190
189
|
# p time
|
@@ -206,7 +205,7 @@
|
|
206
205
|
# It specifies which conversion block to call whenever a class is specified.
|
207
206
|
# The example below uses it to fetch a +User+ object before the +on+ handler receives it.
|
208
207
|
#
|
209
|
-
# require 'rubygems/optparse/lib/optparse'
|
208
|
+
# require 'rubygems/vendor/optparse/lib/optparse'
|
210
209
|
#
|
211
210
|
# User = Struct.new(:id, :name)
|
212
211
|
#
|
@@ -242,7 +241,7 @@
|
|
242
241
|
#
|
243
242
|
# The +into+ option of +order+, +parse+ and so on methods stores command line options into a Hash.
|
244
243
|
#
|
245
|
-
# require 'rubygems/optparse/lib/optparse'
|
244
|
+
# require 'rubygems/vendor/optparse/lib/optparse'
|
246
245
|
#
|
247
246
|
# options = {}
|
248
247
|
# Gem::OptionParser.new do |parser|
|
@@ -268,8 +267,8 @@
|
|
268
267
|
# effect of specifying various options. This is probably the best way to learn
|
269
268
|
# the features of +optparse+.
|
270
269
|
#
|
271
|
-
# require 'rubygems/optparse/lib/optparse'
|
272
|
-
# require 'rubygems/optparse/lib/optparse/time'
|
270
|
+
# require 'rubygems/vendor/optparse/lib/optparse'
|
271
|
+
# require 'rubygems/vendor/optparse/lib/optparse/time'
|
273
272
|
# require 'ostruct'
|
274
273
|
# require 'pp'
|
275
274
|
#
|
@@ -425,7 +424,8 @@
|
|
425
424
|
# If you have any questions, file a ticket at http://bugs.ruby-lang.org.
|
426
425
|
#
|
427
426
|
class Gem::OptionParser
|
428
|
-
|
427
|
+
# The version string
|
428
|
+
Gem::OptionParser::Version = "0.6.0"
|
429
429
|
|
430
430
|
# :stopdoc:
|
431
431
|
NoArgument = [NO_ARGUMENT = :NONE, nil].freeze
|
@@ -438,6 +438,8 @@ class Gem::OptionParser
|
|
438
438
|
# and resolved against a list of acceptable values.
|
439
439
|
#
|
440
440
|
module Completion
|
441
|
+
# :nodoc:
|
442
|
+
|
441
443
|
def self.regexp(key, icase)
|
442
444
|
Regexp.new('\A' + Regexp.quote(key).gsub(/\w+\b/, '\&\w*'), icase)
|
443
445
|
end
|
@@ -459,7 +461,7 @@ class Gem::OptionParser
|
|
459
461
|
candidates
|
460
462
|
end
|
461
463
|
|
462
|
-
def candidate(key, icase = false, pat = nil)
|
464
|
+
def candidate(key, icase = false, pat = nil, &_)
|
463
465
|
Completion.candidate(key, icase, pat, &method(:each))
|
464
466
|
end
|
465
467
|
|
@@ -510,6 +512,8 @@ class Gem::OptionParser
|
|
510
512
|
# RequiredArgument, etc.
|
511
513
|
#
|
512
514
|
class Switch
|
515
|
+
# :nodoc:
|
516
|
+
|
513
517
|
attr_reader :pattern, :conv, :short, :long, :arg, :desc, :block
|
514
518
|
|
515
519
|
#
|
@@ -697,6 +701,11 @@ class Gem::OptionParser
|
|
697
701
|
q.object_group(self) {pretty_print_contents(q)}
|
698
702
|
end
|
699
703
|
|
704
|
+
def omitted_argument(val) # :nodoc:
|
705
|
+
val.pop if val.size == 3 and val.last.nil?
|
706
|
+
val
|
707
|
+
end
|
708
|
+
|
700
709
|
#
|
701
710
|
# Switch that takes no arguments.
|
702
711
|
#
|
@@ -710,10 +719,10 @@ class Gem::OptionParser
|
|
710
719
|
conv_arg(arg)
|
711
720
|
end
|
712
721
|
|
713
|
-
def self.incompatible_argument_styles(*)
|
722
|
+
def self.incompatible_argument_styles(*) # :nodoc:
|
714
723
|
end
|
715
724
|
|
716
|
-
def self.pattern
|
725
|
+
def self.pattern # :nodoc:
|
717
726
|
Object
|
718
727
|
end
|
719
728
|
|
@@ -730,7 +739,7 @@ class Gem::OptionParser
|
|
730
739
|
#
|
731
740
|
# Raises an exception if argument is not present.
|
732
741
|
#
|
733
|
-
def parse(arg, argv)
|
742
|
+
def parse(arg, argv, &_)
|
734
743
|
unless arg
|
735
744
|
raise MissingArgument if argv.empty?
|
736
745
|
arg = argv.shift
|
@@ -755,7 +764,7 @@ class Gem::OptionParser
|
|
755
764
|
if arg
|
756
765
|
conv_arg(*parse_arg(arg, &error))
|
757
766
|
else
|
758
|
-
conv_arg(arg)
|
767
|
+
omitted_argument conv_arg(arg)
|
759
768
|
end
|
760
769
|
end
|
761
770
|
|
@@ -765,22 +774,23 @@ class Gem::OptionParser
|
|
765
774
|
end
|
766
775
|
|
767
776
|
#
|
768
|
-
# Switch that takes an argument, which does not begin with '-'.
|
777
|
+
# Switch that takes an argument, which does not begin with '-' or is '-'.
|
769
778
|
#
|
770
779
|
class PlacedArgument < self
|
771
780
|
|
772
781
|
#
|
773
|
-
# Returns nil if argument is not present or begins with '-'.
|
782
|
+
# Returns nil if argument is not present or begins with '-' and is not '-'.
|
774
783
|
#
|
775
784
|
def parse(arg, argv, &error)
|
776
|
-
if !(val = arg) and (argv.empty? or /\A
|
777
|
-
return nil, block
|
785
|
+
if !(val = arg) and (argv.empty? or /\A-./ =~ (val = argv[0]))
|
786
|
+
return nil, block
|
778
787
|
end
|
779
788
|
opt = (val = parse_arg(val, &error))[1]
|
780
789
|
val = conv_arg(*val)
|
781
790
|
if opt and !arg
|
782
791
|
argv.shift
|
783
792
|
else
|
793
|
+
omitted_argument val
|
784
794
|
val[0] = nil
|
785
795
|
end
|
786
796
|
val
|
@@ -798,6 +808,8 @@ class Gem::OptionParser
|
|
798
808
|
# matching pattern and converter pair. Also provides summary feature.
|
799
809
|
#
|
800
810
|
class List
|
811
|
+
# :nodoc:
|
812
|
+
|
801
813
|
# Map from acceptable argument types to pattern and converter pairs.
|
802
814
|
attr_reader :atype
|
803
815
|
|
@@ -837,7 +849,7 @@ class Gem::OptionParser
|
|
837
849
|
def accept(t, pat = /.*/m, &block)
|
838
850
|
if pat
|
839
851
|
pat.respond_to?(:match) or
|
840
|
-
raise TypeError, "has no
|
852
|
+
raise TypeError, "has no 'match'", ParseError.filter_backtrace(caller(2))
|
841
853
|
else
|
842
854
|
pat = t if t.respond_to?(:match)
|
843
855
|
end
|
@@ -1033,11 +1045,31 @@ XXX
|
|
1033
1045
|
to << "#compdef #{name}\n"
|
1034
1046
|
to << COMPSYS_HEADER
|
1035
1047
|
visit(:compsys, {}, {}) {|o, d|
|
1036
|
-
to << %Q[ "#{o}[#{d.gsub(/[
|
1048
|
+
to << %Q[ "#{o}[#{d.gsub(/[\\\"\[\]]/, '\\\\\&')}]" \\\n]
|
1037
1049
|
}
|
1038
1050
|
to << " '*:file:_files' && return 0\n"
|
1039
1051
|
end
|
1040
1052
|
|
1053
|
+
def help_exit
|
1054
|
+
if STDOUT.tty? && (pager = ENV.values_at(*%w[RUBY_PAGER PAGER]).find {|e| e && !e.empty?})
|
1055
|
+
less = ENV["LESS"]
|
1056
|
+
args = [{"LESS" => "#{!less || less.empty? ? '-' : less}Fe"}, pager, "w"]
|
1057
|
+
print = proc do |f|
|
1058
|
+
f.puts help
|
1059
|
+
rescue Errno::EPIPE
|
1060
|
+
# pager terminated
|
1061
|
+
end
|
1062
|
+
if Process.respond_to?(:fork) and false
|
1063
|
+
IO.popen("-") {|f| f ? Process.exec(*args, in: f) : print.call(STDOUT)}
|
1064
|
+
# unreachable
|
1065
|
+
end
|
1066
|
+
IO.popen(*args, &print)
|
1067
|
+
else
|
1068
|
+
puts help
|
1069
|
+
end
|
1070
|
+
exit
|
1071
|
+
end
|
1072
|
+
|
1041
1073
|
#
|
1042
1074
|
# Default options for ARGV, which never appear in option summary.
|
1043
1075
|
#
|
@@ -1049,8 +1081,7 @@ XXX
|
|
1049
1081
|
#
|
1050
1082
|
Officious['help'] = proc do |parser|
|
1051
1083
|
Switch::NoArgument.new do |arg|
|
1052
|
-
|
1053
|
-
exit
|
1084
|
+
parser.help_exit
|
1054
1085
|
end
|
1055
1086
|
end
|
1056
1087
|
|
@@ -1084,7 +1115,7 @@ XXX
|
|
1084
1115
|
Switch::OptionalArgument.new do |pkg|
|
1085
1116
|
if pkg
|
1086
1117
|
begin
|
1087
|
-
|
1118
|
+
require_relative 'optparse/version'
|
1088
1119
|
rescue LoadError
|
1089
1120
|
else
|
1090
1121
|
show_version(*pkg.split(/,/)) or
|
@@ -1129,6 +1160,10 @@ XXX
|
|
1129
1160
|
default.to_i + 1
|
1130
1161
|
end
|
1131
1162
|
end
|
1163
|
+
|
1164
|
+
#
|
1165
|
+
# See self.inc
|
1166
|
+
#
|
1132
1167
|
def inc(*args)
|
1133
1168
|
self.class.inc(*args)
|
1134
1169
|
end
|
@@ -1148,6 +1183,7 @@ XXX
|
|
1148
1183
|
@summary_indent = indent
|
1149
1184
|
@default_argv = ARGV
|
1150
1185
|
@require_exact = false
|
1186
|
+
@raise_unknown = true
|
1151
1187
|
add_officious
|
1152
1188
|
yield self if block_given?
|
1153
1189
|
end
|
@@ -1166,11 +1202,19 @@ XXX
|
|
1166
1202
|
def terminate(arg = nil)
|
1167
1203
|
self.class.terminate(arg)
|
1168
1204
|
end
|
1205
|
+
#
|
1206
|
+
# See #terminate.
|
1207
|
+
#
|
1169
1208
|
def self.terminate(arg = nil)
|
1170
1209
|
throw :terminate, arg
|
1171
1210
|
end
|
1172
1211
|
|
1173
1212
|
@stack = [DefaultList]
|
1213
|
+
#
|
1214
|
+
# Returns the global top option list.
|
1215
|
+
#
|
1216
|
+
# Do not use directly.
|
1217
|
+
#
|
1174
1218
|
def self.top() DefaultList end
|
1175
1219
|
|
1176
1220
|
#
|
@@ -1191,9 +1235,9 @@ XXX
|
|
1191
1235
|
#
|
1192
1236
|
# Directs to reject specified class argument.
|
1193
1237
|
#
|
1194
|
-
# +
|
1238
|
+
# +type+:: Argument class specifier, any object including Class.
|
1195
1239
|
#
|
1196
|
-
# reject(
|
1240
|
+
# reject(type)
|
1197
1241
|
#
|
1198
1242
|
def reject(*args, &blk) top.reject(*args, &blk) end
|
1199
1243
|
#
|
@@ -1225,6 +1269,9 @@ XXX
|
|
1225
1269
|
# abbreviated long option as short option).
|
1226
1270
|
attr_accessor :require_exact
|
1227
1271
|
|
1272
|
+
# Whether to raise at unknown option.
|
1273
|
+
attr_accessor :raise_unknown
|
1274
|
+
|
1228
1275
|
#
|
1229
1276
|
# Heading banner preceding summary.
|
1230
1277
|
#
|
@@ -1280,10 +1327,24 @@ XXX
|
|
1280
1327
|
end
|
1281
1328
|
end
|
1282
1329
|
|
1330
|
+
#
|
1331
|
+
# Shows warning message with the program name
|
1332
|
+
#
|
1333
|
+
# +mesg+:: Message, defaulted to +$!+.
|
1334
|
+
#
|
1335
|
+
# See Kernel#warn.
|
1336
|
+
#
|
1283
1337
|
def warn(mesg = $!)
|
1284
1338
|
super("#{program_name}: #{mesg}")
|
1285
1339
|
end
|
1286
1340
|
|
1341
|
+
#
|
1342
|
+
# Shows message with the program name then aborts.
|
1343
|
+
#
|
1344
|
+
# +mesg+:: Message, defaulted to +$!+.
|
1345
|
+
#
|
1346
|
+
# See Kernel#abort.
|
1347
|
+
#
|
1287
1348
|
def abort(mesg = $!)
|
1288
1349
|
super("#{program_name}: #{mesg}")
|
1289
1350
|
end
|
@@ -1305,6 +1366,9 @@ XXX
|
|
1305
1366
|
#
|
1306
1367
|
# Pushes a new List.
|
1307
1368
|
#
|
1369
|
+
# If a block is given, yields +self+ and returns the result of the
|
1370
|
+
# block, otherwise returns +self+.
|
1371
|
+
#
|
1308
1372
|
def new
|
1309
1373
|
@stack.push(List.new)
|
1310
1374
|
if block_given?
|
@@ -1502,7 +1566,7 @@ XXX
|
|
1502
1566
|
style = notwice(default_style.guess(arg = o), style, 'style')
|
1503
1567
|
default_pattern, conv = search(:atype, Object) unless default_pattern
|
1504
1568
|
else
|
1505
|
-
desc.push(o)
|
1569
|
+
desc.push(o) if o && !o.empty?
|
1506
1570
|
end
|
1507
1571
|
end
|
1508
1572
|
|
@@ -1528,6 +1592,12 @@ XXX
|
|
1528
1592
|
nolong
|
1529
1593
|
end
|
1530
1594
|
|
1595
|
+
# ----
|
1596
|
+
# Option definition phase methods
|
1597
|
+
#
|
1598
|
+
# These methods are used to define options, or to construct an
|
1599
|
+
# Gem::OptionParser instance in other words.
|
1600
|
+
|
1531
1601
|
# :call-seq:
|
1532
1602
|
# define(*params, &block)
|
1533
1603
|
#
|
@@ -1603,6 +1673,13 @@ XXX
|
|
1603
1673
|
top.append(string, nil, nil)
|
1604
1674
|
end
|
1605
1675
|
|
1676
|
+
# ----
|
1677
|
+
# Arguments parse phase methods
|
1678
|
+
#
|
1679
|
+
# These methods parse +argv+, convert, and store the results by
|
1680
|
+
# calling handlers. As these methods do not modify +self+, +self+
|
1681
|
+
# can be frozen.
|
1682
|
+
|
1606
1683
|
#
|
1607
1684
|
# Parses command line arguments +argv+ in order. When a block is given,
|
1608
1685
|
# each non-option argument is yielded. When optional +into+ keyword
|
@@ -1612,21 +1689,21 @@ XXX
|
|
1612
1689
|
#
|
1613
1690
|
# Returns the rest of +argv+ left unparsed.
|
1614
1691
|
#
|
1615
|
-
def order(*argv,
|
1692
|
+
def order(*argv, **keywords, &nonopt)
|
1616
1693
|
argv = argv[0].dup if argv.size == 1 and Array === argv[0]
|
1617
|
-
order!(argv,
|
1694
|
+
order!(argv, **keywords, &nonopt)
|
1618
1695
|
end
|
1619
1696
|
|
1620
1697
|
#
|
1621
1698
|
# Same as #order, but removes switches destructively.
|
1622
1699
|
# Non-option arguments remain in +argv+.
|
1623
1700
|
#
|
1624
|
-
def order!(argv = default_argv, into: nil, &nonopt)
|
1701
|
+
def order!(argv = default_argv, into: nil, **keywords, &nonopt)
|
1625
1702
|
setter = ->(name, val) {into[name.to_sym] = val} if into
|
1626
|
-
parse_in_order(argv, setter, &nonopt)
|
1703
|
+
parse_in_order(argv, setter, **keywords, &nonopt)
|
1627
1704
|
end
|
1628
1705
|
|
1629
|
-
def parse_in_order(argv = default_argv, setter = nil, &nonopt) # :nodoc:
|
1706
|
+
def parse_in_order(argv = default_argv, setter = nil, exact: require_exact, **, &nonopt) # :nodoc:
|
1630
1707
|
opt, arg, val, rest = nil
|
1631
1708
|
nonopt ||= proc {|a| throw :terminate, a}
|
1632
1709
|
argv.unshift(arg) if arg = catch(:terminate) {
|
@@ -1637,17 +1714,24 @@ XXX
|
|
1637
1714
|
opt, rest = $1, $2
|
1638
1715
|
opt.tr!('_', '-')
|
1639
1716
|
begin
|
1640
|
-
|
1641
|
-
|
1642
|
-
|
1717
|
+
if exact
|
1718
|
+
sw, = search(:long, opt)
|
1719
|
+
else
|
1720
|
+
sw, = complete(:long, opt, true)
|
1643
1721
|
end
|
1644
1722
|
rescue ParseError
|
1723
|
+
throw :terminate, arg unless raise_unknown
|
1645
1724
|
raise $!.set_option(arg, true)
|
1725
|
+
else
|
1726
|
+
unless sw
|
1727
|
+
throw :terminate, arg unless raise_unknown
|
1728
|
+
raise InvalidOption, arg
|
1729
|
+
end
|
1646
1730
|
end
|
1647
1731
|
begin
|
1648
1732
|
opt, cb, val = sw.parse(rest, argv) {|*exc| raise(*exc)}
|
1649
|
-
val = cb
|
1650
|
-
setter
|
1733
|
+
val = callback!(cb, 1, val) if cb
|
1734
|
+
callback!(setter, 2, sw.switch_name, val) if setter
|
1651
1735
|
rescue ParseError
|
1652
1736
|
raise $!.set_option(arg, rest)
|
1653
1737
|
end
|
@@ -1665,7 +1749,7 @@ XXX
|
|
1665
1749
|
val = arg.delete_prefix('-')
|
1666
1750
|
has_arg = true
|
1667
1751
|
rescue InvalidOption
|
1668
|
-
raise if
|
1752
|
+
raise if exact
|
1669
1753
|
# if no short options match, try completion with long
|
1670
1754
|
# options.
|
1671
1755
|
sw, = complete(:long, opt)
|
@@ -1673,6 +1757,7 @@ XXX
|
|
1673
1757
|
end
|
1674
1758
|
end
|
1675
1759
|
rescue ParseError
|
1760
|
+
throw :terminate, arg unless raise_unknown
|
1676
1761
|
raise $!.set_option(arg, true)
|
1677
1762
|
end
|
1678
1763
|
begin
|
@@ -1684,8 +1769,8 @@ XXX
|
|
1684
1769
|
end
|
1685
1770
|
begin
|
1686
1771
|
argv.unshift(opt) if opt and (!rest or (opt = opt.sub(/\A-*/, '-')) != '-')
|
1687
|
-
val = cb
|
1688
|
-
setter
|
1772
|
+
val = callback!(cb, 1, val) if cb
|
1773
|
+
callback!(setter, 2, sw.switch_name, val) if setter
|
1689
1774
|
rescue ParseError
|
1690
1775
|
raise $!.set_option(arg, arg.length > 2)
|
1691
1776
|
end
|
@@ -1711,6 +1796,19 @@ XXX
|
|
1711
1796
|
end
|
1712
1797
|
private :parse_in_order
|
1713
1798
|
|
1799
|
+
# Calls callback with _val_.
|
1800
|
+
def callback!(cb, max_arity, *args) # :nodoc:
|
1801
|
+
args.compact!
|
1802
|
+
|
1803
|
+
if (size = args.size) < max_arity and cb.to_proc.lambda?
|
1804
|
+
(arity = cb.arity) < 0 and arity = (1-arity)
|
1805
|
+
arity = max_arity if arity > max_arity
|
1806
|
+
args[arity - 1] = nil if arity > size
|
1807
|
+
end
|
1808
|
+
cb.call(*args)
|
1809
|
+
end
|
1810
|
+
private :callback!
|
1811
|
+
|
1714
1812
|
#
|
1715
1813
|
# Parses command line arguments +argv+ in permutation mode and returns
|
1716
1814
|
# list of non-option arguments. When optional +into+ keyword
|
@@ -1718,18 +1816,18 @@ XXX
|
|
1718
1816
|
# <code>[]=</code> method (so it can be Hash, or OpenStruct, or other
|
1719
1817
|
# similar object).
|
1720
1818
|
#
|
1721
|
-
def permute(*argv,
|
1819
|
+
def permute(*argv, **keywords)
|
1722
1820
|
argv = argv[0].dup if argv.size == 1 and Array === argv[0]
|
1723
|
-
permute!(argv,
|
1821
|
+
permute!(argv, **keywords)
|
1724
1822
|
end
|
1725
1823
|
|
1726
1824
|
#
|
1727
1825
|
# Same as #permute, but removes switches destructively.
|
1728
1826
|
# Non-option arguments remain in +argv+.
|
1729
1827
|
#
|
1730
|
-
def permute!(argv = default_argv,
|
1828
|
+
def permute!(argv = default_argv, **keywords)
|
1731
1829
|
nonopts = []
|
1732
|
-
order!(argv,
|
1830
|
+
order!(argv, **keywords, &nonopts.method(:<<))
|
1733
1831
|
argv[0, 0] = nonopts
|
1734
1832
|
argv
|
1735
1833
|
end
|
@@ -1741,20 +1839,20 @@ XXX
|
|
1741
1839
|
# values are stored there via <code>[]=</code> method (so it can be Hash,
|
1742
1840
|
# or OpenStruct, or other similar object).
|
1743
1841
|
#
|
1744
|
-
def parse(*argv,
|
1842
|
+
def parse(*argv, **keywords)
|
1745
1843
|
argv = argv[0].dup if argv.size == 1 and Array === argv[0]
|
1746
|
-
parse!(argv,
|
1844
|
+
parse!(argv, **keywords)
|
1747
1845
|
end
|
1748
1846
|
|
1749
1847
|
#
|
1750
1848
|
# Same as #parse, but removes switches destructively.
|
1751
1849
|
# Non-option arguments remain in +argv+.
|
1752
1850
|
#
|
1753
|
-
def parse!(argv = default_argv,
|
1851
|
+
def parse!(argv = default_argv, **keywords)
|
1754
1852
|
if ENV.include?('POSIXLY_CORRECT')
|
1755
|
-
order!(argv,
|
1853
|
+
order!(argv, **keywords)
|
1756
1854
|
else
|
1757
|
-
permute!(argv,
|
1855
|
+
permute!(argv, **keywords)
|
1758
1856
|
end
|
1759
1857
|
end
|
1760
1858
|
|
@@ -1768,7 +1866,16 @@ XXX
|
|
1768
1866
|
# # params["bar"] = "x" # --bar x
|
1769
1867
|
# # params["zot"] = "z" # --zot Z
|
1770
1868
|
#
|
1771
|
-
|
1869
|
+
# Option +symbolize_names+ (boolean) specifies whether returned Hash keys should be Symbols; defaults to +false+ (use Strings).
|
1870
|
+
#
|
1871
|
+
# params = ARGV.getopts("ab:", "foo", "bar:", "zot:Z;zot option", symbolize_names: true)
|
1872
|
+
# # params[:a] = true # -a
|
1873
|
+
# # params[:b] = "1" # -b1
|
1874
|
+
# # params[:foo] = "1" # --foo
|
1875
|
+
# # params[:bar] = "x" # --bar x
|
1876
|
+
# # params[:zot] = "z" # --zot Z
|
1877
|
+
#
|
1878
|
+
def getopts(*args, symbolize_names: false, **keywords)
|
1772
1879
|
argv = Array === args.first ? args.shift : default_argv
|
1773
1880
|
single_options, *long_options = *args
|
1774
1881
|
|
@@ -1796,15 +1903,15 @@ XXX
|
|
1796
1903
|
end
|
1797
1904
|
end
|
1798
1905
|
|
1799
|
-
parse_in_order(argv, result.method(:[]=))
|
1800
|
-
result
|
1906
|
+
parse_in_order(argv, result.method(:[]=), **keywords)
|
1907
|
+
symbolize_names ? result.transform_keys(&:to_sym) : result
|
1801
1908
|
end
|
1802
1909
|
|
1803
1910
|
#
|
1804
1911
|
# See #getopts.
|
1805
1912
|
#
|
1806
|
-
def self.getopts(*args)
|
1807
|
-
new.getopts(*args)
|
1913
|
+
def self.getopts(*args, symbolize_names: false)
|
1914
|
+
new.getopts(*args, symbolize_names: symbolize_names)
|
1808
1915
|
end
|
1809
1916
|
|
1810
1917
|
#
|
@@ -1862,14 +1969,12 @@ XXX
|
|
1862
1969
|
end
|
1863
1970
|
all_candidates.select! {|cand| cand.is_a?(String) }
|
1864
1971
|
checker = DidYouMean::SpellChecker.new(dictionary: all_candidates)
|
1865
|
-
|
1866
|
-
if DidYouMean.respond_to?(:formatter)
|
1867
|
-
DidYouMean.formatter.message_for(suggestions)
|
1868
|
-
else
|
1869
|
-
"\nDid you mean? #{suggestions.join("\n ")}"
|
1870
|
-
end
|
1972
|
+
DidYouMean.formatter.message_for(all_candidates & checker.correct(opt))
|
1871
1973
|
end
|
1872
1974
|
|
1975
|
+
#
|
1976
|
+
# Return candidates for +word+.
|
1977
|
+
#
|
1873
1978
|
def candidate(word)
|
1874
1979
|
list = []
|
1875
1980
|
case word
|
@@ -1908,10 +2013,13 @@ XXX
|
|
1908
2013
|
# directory ~/.options, then the basename with '.options' suffix
|
1909
2014
|
# under XDG and Haiku standard places.
|
1910
2015
|
#
|
1911
|
-
|
2016
|
+
# The optional +into+ keyword argument works exactly like that accepted in
|
2017
|
+
# method #parse.
|
2018
|
+
#
|
2019
|
+
def load(filename = nil, **keywords)
|
1912
2020
|
unless filename
|
1913
2021
|
basename = File.basename($0, '.*')
|
1914
|
-
return true if load(File.expand_path(basename, '~/.options')) rescue nil
|
2022
|
+
return true if load(File.expand_path(basename, '~/.options'), **keywords) rescue nil
|
1915
2023
|
basename << ".options"
|
1916
2024
|
return [
|
1917
2025
|
# XDG
|
@@ -1923,11 +2031,11 @@ XXX
|
|
1923
2031
|
'~/config/settings',
|
1924
2032
|
].any? {|dir|
|
1925
2033
|
next if !dir or dir.empty?
|
1926
|
-
load(File.expand_path(basename, dir)) rescue nil
|
2034
|
+
load(File.expand_path(basename, dir), **keywords) rescue nil
|
1927
2035
|
}
|
1928
2036
|
end
|
1929
2037
|
begin
|
1930
|
-
parse(*
|
2038
|
+
parse(*File.readlines(filename, chomp: true), **keywords)
|
1931
2039
|
true
|
1932
2040
|
rescue Errno::ENOENT, Errno::ENOTDIR
|
1933
2041
|
false
|
@@ -1940,10 +2048,10 @@ XXX
|
|
1940
2048
|
#
|
1941
2049
|
# +env+ defaults to the basename of the program.
|
1942
2050
|
#
|
1943
|
-
def environment(env = File.basename($0, '.*'))
|
2051
|
+
def environment(env = File.basename($0, '.*'), **keywords)
|
1944
2052
|
env = ENV[env] || ENV[env.upcase] or return
|
1945
2053
|
require 'shellwords'
|
1946
|
-
parse(*Shellwords.shellwords(env))
|
2054
|
+
parse(*Shellwords.shellwords(env), **keywords)
|
1947
2055
|
end
|
1948
2056
|
|
1949
2057
|
#
|
@@ -2079,10 +2187,23 @@ XXX
|
|
2079
2187
|
f |= Regexp::IGNORECASE if /i/ =~ o
|
2080
2188
|
f |= Regexp::MULTILINE if /m/ =~ o
|
2081
2189
|
f |= Regexp::EXTENDED if /x/ =~ o
|
2082
|
-
|
2083
|
-
|
2190
|
+
case o = o.delete("imx")
|
2191
|
+
when ""
|
2192
|
+
when "u"
|
2193
|
+
s = s.encode(Encoding::UTF_8)
|
2194
|
+
when "e"
|
2195
|
+
s = s.encode(Encoding::EUC_JP)
|
2196
|
+
when "s"
|
2197
|
+
s = s.encode(Encoding::SJIS)
|
2198
|
+
when "n"
|
2199
|
+
f |= Regexp::NOENCODING
|
2200
|
+
else
|
2201
|
+
raise Gem::OptionParser::InvalidArgument, "unknown regexp option - #{o}"
|
2202
|
+
end
|
2203
|
+
else
|
2204
|
+
s ||= all
|
2084
2205
|
end
|
2085
|
-
Regexp.new(s
|
2206
|
+
Regexp.new(s, f)
|
2086
2207
|
end
|
2087
2208
|
|
2088
2209
|
#
|
@@ -2096,6 +2217,7 @@ XXX
|
|
2096
2217
|
# Reason which caused the error.
|
2097
2218
|
Reason = 'parse error'
|
2098
2219
|
|
2220
|
+
# :nodoc:
|
2099
2221
|
def initialize(*args, additional: nil)
|
2100
2222
|
@additional = additional
|
2101
2223
|
@arg0, = args
|
@@ -2246,19 +2368,19 @@ XXX
|
|
2246
2368
|
# Parses +self+ destructively in order and returns +self+ containing the
|
2247
2369
|
# rest arguments left unparsed.
|
2248
2370
|
#
|
2249
|
-
def order!(&blk) options.order!(self, &blk) end
|
2371
|
+
def order!(**keywords, &blk) options.order!(self, **keywords, &blk) end
|
2250
2372
|
|
2251
2373
|
#
|
2252
2374
|
# Parses +self+ destructively in permutation mode and returns +self+
|
2253
2375
|
# containing the rest arguments left unparsed.
|
2254
2376
|
#
|
2255
|
-
def permute!() options.permute!(self) end
|
2377
|
+
def permute!(**keywords) options.permute!(self, **keywords) end
|
2256
2378
|
|
2257
2379
|
#
|
2258
2380
|
# Parses +self+ destructively and returns +self+ containing the
|
2259
2381
|
# rest arguments left unparsed.
|
2260
2382
|
#
|
2261
|
-
def parse!() options.parse!(self) end
|
2383
|
+
def parse!(**keywords) options.parse!(self, **keywords) end
|
2262
2384
|
|
2263
2385
|
#
|
2264
2386
|
# Substitution of getopts is possible as follows. Also see
|
@@ -2271,8 +2393,8 @@ XXX
|
|
2271
2393
|
# rescue Gem::OptionParser::ParseError
|
2272
2394
|
# end
|
2273
2395
|
#
|
2274
|
-
def getopts(*args)
|
2275
|
-
options.getopts(self, *args)
|
2396
|
+
def getopts(*args, symbolize_names: false, **keywords)
|
2397
|
+
options.getopts(self, *args, symbolize_names: symbolize_names, **keywords)
|
2276
2398
|
end
|
2277
2399
|
|
2278
2400
|
#
|
@@ -2282,7 +2404,8 @@ XXX
|
|
2282
2404
|
super
|
2283
2405
|
obj.instance_eval {@optparse = nil}
|
2284
2406
|
end
|
2285
|
-
|
2407
|
+
|
2408
|
+
def initialize(*args) # :nodoc:
|
2286
2409
|
super
|
2287
2410
|
@optparse = nil
|
2288
2411
|
end
|