rubygems-update 2.6.1 → 3.5.0
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 +5 -5
- data/CHANGELOG.md +5899 -0
- data/CODE_OF_CONDUCT.md +76 -35
- data/CONTRIBUTING.md +231 -0
- data/MAINTAINERS.txt +8 -0
- data/Manifest.txt +428 -216
- data/POLICIES.md +135 -0
- data/README.md +112 -0
- data/UPGRADING.md +15 -0
- data/bundler/CHANGELOG.md +4719 -0
- data/bundler/LICENSE.md +22 -0
- data/bundler/README.md +58 -0
- data/bundler/UPGRADING.md +222 -0
- data/bundler/bundler.gemspec +46 -0
- data/bundler/exe/bundle +29 -0
- data/bundler/exe/bundler +4 -0
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +45 -0
- data/bundler/lib/bundler/capistrano.rb +22 -0
- data/bundler/lib/bundler/checksum.rb +245 -0
- data/bundler/lib/bundler/ci_detector.rb +75 -0
- data/bundler/lib/bundler/cli/add.rb +47 -0
- data/bundler/lib/bundler/cli/binstubs.rb +57 -0
- data/bundler/lib/bundler/cli/cache.rb +43 -0
- data/bundler/lib/bundler/cli/check.rb +40 -0
- data/bundler/lib/bundler/cli/clean.rb +25 -0
- data/bundler/lib/bundler/cli/common.rb +138 -0
- data/bundler/lib/bundler/cli/config.rb +204 -0
- data/bundler/lib/bundler/cli/console.rb +44 -0
- data/bundler/lib/bundler/cli/doctor.rb +157 -0
- data/bundler/lib/bundler/cli/exec.rb +88 -0
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +471 -0
- data/bundler/lib/bundler/cli/info.rb +83 -0
- data/bundler/lib/bundler/cli/init.rb +51 -0
- data/bundler/lib/bundler/cli/inject.rb +60 -0
- data/bundler/lib/bundler/cli/install.rb +190 -0
- data/bundler/lib/bundler/cli/issue.rb +41 -0
- data/bundler/lib/bundler/cli/list.rb +66 -0
- data/bundler/lib/bundler/cli/lock.rb +73 -0
- data/bundler/lib/bundler/cli/open.rb +29 -0
- data/bundler/lib/bundler/cli/outdated.rb +297 -0
- data/bundler/lib/bundler/cli/platform.rb +48 -0
- data/bundler/lib/bundler/cli/plugin.rb +34 -0
- data/bundler/lib/bundler/cli/pristine.rb +60 -0
- data/bundler/lib/bundler/cli/remove.rb +17 -0
- data/bundler/lib/bundler/cli/show.rb +75 -0
- data/bundler/lib/bundler/cli/update.rb +123 -0
- data/bundler/lib/bundler/cli/viz.rb +31 -0
- data/bundler/lib/bundler/cli.rb +846 -0
- data/bundler/lib/bundler/compact_index_client/cache.rb +121 -0
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +32 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +115 -0
- data/bundler/lib/bundler/compact_index_client.rb +126 -0
- data/bundler/lib/bundler/constants.rb +7 -0
- data/bundler/lib/bundler/current_ruby.rb +92 -0
- data/bundler/lib/bundler/definition.rb +1005 -0
- data/bundler/lib/bundler/dependency.rb +101 -0
- data/bundler/lib/bundler/deployment.rb +69 -0
- data/bundler/lib/bundler/deprecate.rb +44 -0
- data/bundler/lib/bundler/digest.rb +71 -0
- data/bundler/lib/bundler/dsl.rb +601 -0
- data/bundler/lib/bundler/endpoint_specification.rb +147 -0
- data/bundler/lib/bundler/env.rb +148 -0
- data/bundler/lib/bundler/environment_preserver.rb +86 -0
- data/bundler/lib/bundler/errors.rb +233 -0
- data/bundler/lib/bundler/feature_flag.rb +53 -0
- data/bundler/lib/bundler/fetcher/base.rb +52 -0
- data/bundler/lib/bundler/fetcher/compact_index.rb +129 -0
- data/bundler/lib/bundler/fetcher/dependency.rb +78 -0
- data/bundler/lib/bundler/fetcher/downloader.rb +91 -0
- data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- data/bundler/lib/bundler/fetcher/index.rb +25 -0
- data/bundler/lib/bundler/fetcher.rb +324 -0
- data/bundler/lib/bundler/force_platform.rb +18 -0
- data/bundler/lib/bundler/friendly_errors.rb +126 -0
- data/bundler/lib/bundler/gem_helper.rb +237 -0
- data/bundler/lib/bundler/gem_helpers.rb +127 -0
- data/bundler/lib/bundler/gem_tasks.rb +7 -0
- data/bundler/lib/bundler/gem_version_promoter.rb +145 -0
- data/bundler/lib/bundler/graph.rb +152 -0
- data/bundler/lib/bundler/index.rb +205 -0
- data/bundler/lib/bundler/injector.rb +287 -0
- data/bundler/lib/bundler/inline.rb +73 -0
- data/bundler/lib/bundler/installer/gem_installer.rb +84 -0
- data/bundler/lib/bundler/installer/parallel_installer.rb +202 -0
- data/bundler/lib/bundler/installer/standalone.rb +116 -0
- data/bundler/lib/bundler/installer.rb +267 -0
- data/bundler/lib/bundler/lazy_specification.rb +170 -0
- data/bundler/lib/bundler/lockfile_generator.rb +104 -0
- data/bundler/lib/bundler/lockfile_parser.rb +289 -0
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/lib/bundler/man/bundle-add.1 +59 -0
- data/bundler/lib/bundler/man/bundle-add.1.ronn +58 -0
- data/bundler/lib/bundler/man/bundle-binstubs.1 +30 -0
- data/bundler/lib/bundler/man/bundle-binstubs.1.ronn +41 -0
- data/bundler/lib/bundler/man/bundle-cache.1 +40 -0
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +79 -0
- data/bundler/lib/bundler/man/bundle-check.1 +22 -0
- data/bundler/lib/bundler/man/bundle-check.1.ronn +26 -0
- data/bundler/lib/bundler/man/bundle-clean.1 +17 -0
- data/bundler/lib/bundler/man/bundle-clean.1.ronn +18 -0
- data/bundler/lib/bundler/man/bundle-config.1 +321 -0
- data/bundler/lib/bundler/man/bundle-config.1.ronn +411 -0
- data/bundler/lib/bundler/man/bundle-console.1 +35 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +30 -0
- data/bundler/lib/bundler/man/bundle-doctor.1.ronn +33 -0
- data/bundler/lib/bundler/man/bundle-exec.1 +104 -0
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +151 -0
- data/bundler/lib/bundler/man/bundle-gem.1 +69 -0
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +117 -0
- 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 +14 -0
- data/bundler/lib/bundler/man/bundle-info.1.ronn +17 -0
- data/bundler/lib/bundler/man/bundle-init.1 +20 -0
- data/bundler/lib/bundler/man/bundle-init.1.ronn +31 -0
- data/bundler/lib/bundler/man/bundle-inject.1 +23 -0
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-install.1 +215 -0
- data/bundler/lib/bundler/man/bundle-install.1.ronn +383 -0
- data/bundler/lib/bundler/man/bundle-list.1 +35 -0
- data/bundler/lib/bundler/man/bundle-list.1.ronn +33 -0
- data/bundler/lib/bundler/man/bundle-lock.1 +60 -0
- data/bundler/lib/bundler/man/bundle-lock.1.ronn +94 -0
- data/bundler/lib/bundler/man/bundle-open.1 +32 -0
- data/bundler/lib/bundler/man/bundle-open.1.ronn +27 -0
- data/bundler/lib/bundler/man/bundle-outdated.1 +100 -0
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +106 -0
- data/bundler/lib/bundler/man/bundle-platform.1 +49 -0
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +49 -0
- data/bundler/lib/bundler/man/bundle-plugin.1 +55 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +23 -0
- data/bundler/lib/bundler/man/bundle-pristine.1.ronn +34 -0
- data/bundler/lib/bundler/man/bundle-remove.1 +21 -0
- data/bundler/lib/bundler/man/bundle-remove.1.ronn +23 -0
- data/bundler/lib/bundler/man/bundle-show.1 +16 -0
- data/bundler/lib/bundler/man/bundle-show.1.ronn +21 -0
- data/bundler/lib/bundler/man/bundle-update.1 +275 -0
- data/bundler/lib/bundler/man/bundle-update.1.ronn +351 -0
- 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 +30 -0
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +32 -0
- data/bundler/lib/bundler/man/bundle.1 +102 -0
- data/bundler/lib/bundler/man/bundle.1.ronn +116 -0
- data/bundler/lib/bundler/man/gemfile.5 +470 -0
- data/bundler/lib/bundler/man/gemfile.5.ronn +552 -0
- data/bundler/lib/bundler/man/index.txt +29 -0
- data/bundler/lib/bundler/match_metadata.rb +17 -0
- data/bundler/lib/bundler/match_platform.rb +23 -0
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +221 -0
- data/bundler/lib/bundler/plugin/api/source.rb +321 -0
- data/bundler/lib/bundler/plugin/api.rb +81 -0
- data/bundler/lib/bundler/plugin/dsl.rb +53 -0
- data/bundler/lib/bundler/plugin/events.rb +61 -0
- data/bundler/lib/bundler/plugin/index.rb +193 -0
- data/bundler/lib/bundler/plugin/installer/git.rb +34 -0
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +19 -0
- data/bundler/lib/bundler/plugin/installer.rb +112 -0
- data/bundler/lib/bundler/plugin/source_list.rb +31 -0
- data/bundler/lib/bundler/plugin.rb +359 -0
- data/bundler/lib/bundler/process_lock.rb +24 -0
- data/bundler/lib/bundler/remote_specification.rb +117 -0
- data/bundler/lib/bundler/resolver/base.rb +107 -0
- data/bundler/lib/bundler/resolver/candidate.rb +94 -0
- data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
- data/bundler/lib/bundler/resolver/package.rb +77 -0
- data/bundler/lib/bundler/resolver/root.rb +25 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +79 -0
- data/bundler/lib/bundler/resolver.rb +462 -0
- data/bundler/lib/bundler/retry.rb +66 -0
- data/bundler/lib/bundler/ruby_dsl.rb +53 -0
- data/bundler/lib/bundler/ruby_version.rb +131 -0
- data/bundler/lib/bundler/rubygems_ext.rb +328 -0
- data/bundler/lib/bundler/rubygems_gem_installer.rb +137 -0
- data/bundler/lib/bundler/rubygems_integration.rb +493 -0
- data/bundler/lib/bundler/runtime.rb +307 -0
- data/bundler/lib/bundler/safe_marshal.rb +31 -0
- data/bundler/lib/bundler/self_manager.rb +186 -0
- data/bundler/lib/bundler/settings/validator.rb +102 -0
- data/bundler/lib/bundler/settings.rb +588 -0
- data/bundler/lib/bundler/setup.rb +33 -0
- data/bundler/lib/bundler/shared_helpers.rb +380 -0
- data/bundler/lib/bundler/similarity_detector.rb +63 -0
- data/bundler/lib/bundler/source/gemspec.rb +18 -0
- data/bundler/lib/bundler/source/git/git_proxy.rb +455 -0
- data/bundler/lib/bundler/source/git.rb +380 -0
- data/bundler/lib/bundler/source/metadata.rb +62 -0
- data/bundler/lib/bundler/source/path/installer.rb +53 -0
- data/bundler/lib/bundler/source/path.rb +261 -0
- data/bundler/lib/bundler/source/rubygems/remote.rb +68 -0
- data/bundler/lib/bundler/source/rubygems.rb +516 -0
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
- data/bundler/lib/bundler/source.rb +116 -0
- data/bundler/lib/bundler/source_list.rb +227 -0
- data/bundler/lib/bundler/source_map.rb +71 -0
- data/bundler/lib/bundler/spec_set.rb +247 -0
- data/bundler/lib/bundler/stub_specification.rb +119 -0
- data/bundler/lib/bundler/templates/.document +1 -0
- data/bundler/lib/bundler/templates/Executable +27 -0
- data/bundler/lib/bundler/templates/Executable.bundler +109 -0
- data/bundler/lib/bundler/templates/Executable.standalone +14 -0
- data/bundler/lib/bundler/templates/Gemfile +5 -0
- data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +84 -0
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +26 -0
- data/bundler/lib/bundler/templates/newgem/LICENSE.txt.tt +21 -0
- data/bundler/lib/bundler/templates/newgem/README.md.tt +45 -0
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +67 -0
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +11 -0
- data/bundler/lib/bundler/templates/newgem/bin/setup.tt +8 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +25 -0
- data/bundler/lib/bundler/templates/newgem/exe/newgem.tt +3 -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 +9 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.h.tt +6 -0
- 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 +37 -0
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +23 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +51 -0
- data/bundler/lib/bundler/templates/newgem/rspec.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +11 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/ui/rg_proxy.rb +19 -0
- data/bundler/lib/bundler/ui/shell.rb +165 -0
- data/bundler/lib/bundler/ui/silent.rb +85 -0
- data/bundler/lib/bundler/ui.rb +9 -0
- data/bundler/lib/bundler/uri_credentials_filter.rb +43 -0
- data/bundler/lib/bundler/uri_normalizer.rb +23 -0
- data/bundler/lib/bundler/vendor/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +174 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +175 -0
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +2694 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +41 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +65 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1073 -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 +60 -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/thor/LICENSE.md +20 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +105 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +61 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +108 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +143 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +373 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +130 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +340 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +825 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +151 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +107 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +106 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +281 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +178 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +37 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +88 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +17 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +89 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +195 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +178 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +293 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +72 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +335 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +388 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +115 -0
- 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 +84 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/lcs_diff.rb +49 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +134 -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 +81 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +285 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +3 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +663 -0
- data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +455 -0
- data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +853 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +100 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1588 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +125 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +539 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +183 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +104 -0
- data/bundler/lib/bundler/vendored_fileutils.rb +4 -0
- data/bundler/lib/bundler/vendored_net_http.rb +8 -0
- data/bundler/lib/bundler/vendored_persistent.rb +11 -0
- data/bundler/lib/bundler/vendored_pub_grub.rb +4 -0
- data/bundler/lib/bundler/vendored_thor.rb +8 -0
- data/bundler/lib/bundler/vendored_timeout.rb +8 -0
- data/bundler/lib/bundler/vendored_tsort.rb +4 -0
- data/bundler/lib/bundler/vendored_uri.rb +4 -0
- data/bundler/lib/bundler/version.rb +13 -0
- data/bundler/lib/bundler/vlad.rb +17 -0
- data/bundler/lib/bundler/worker.rb +117 -0
- data/bundler/lib/bundler/yaml_serializer.rb +93 -0
- data/bundler/lib/bundler.rb +665 -0
- data/{test/rubygems/bogussources.rb → exe/gem} +5 -2
- data/exe/update_rubygems +38 -0
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +12 -12
- data/lib/rubygems/basic_specification.rb +75 -58
- data/lib/rubygems/bundler_version_finder.rb +77 -0
- data/lib/rubygems/ci_detector.rb +75 -0
- data/lib/rubygems/command.rb +144 -71
- data/lib/rubygems/command_manager.rb +64 -27
- data/lib/rubygems/commands/build_command.rb +88 -17
- data/lib/rubygems/commands/cert_command.rb +131 -83
- data/lib/rubygems/commands/check_command.rb +30 -27
- data/lib/rubygems/commands/cleanup_command.rb +57 -40
- data/lib/rubygems/commands/contents_command.rb +37 -39
- data/lib/rubygems/commands/dependency_command.rb +53 -65
- data/lib/rubygems/commands/environment_command.rb +32 -16
- data/lib/rubygems/commands/exec_command.rb +249 -0
- data/lib/rubygems/commands/fetch_command.rb +36 -19
- data/lib/rubygems/commands/generate_index_command.rb +40 -74
- data/lib/rubygems/commands/help_command.rb +22 -22
- data/lib/rubygems/commands/info_command.rb +38 -0
- data/lib/rubygems/commands/install_command.rb +67 -143
- data/lib/rubygems/commands/list_command.rb +10 -9
- data/lib/rubygems/commands/lock_command.rb +12 -14
- data/lib/rubygems/commands/mirror_command.rb +4 -4
- data/lib/rubygems/commands/open_command.rb +28 -26
- data/lib/rubygems/commands/outdated_command.rb +6 -6
- data/lib/rubygems/commands/owner_command.rb +51 -27
- data/lib/rubygems/commands/pristine_command.rb +99 -71
- data/lib/rubygems/commands/push_command.rb +53 -46
- data/lib/rubygems/commands/query_command.rb +21 -328
- data/lib/rubygems/commands/rdoc_command.rb +33 -33
- data/lib/rubygems/commands/search_command.rb +9 -9
- data/lib/rubygems/commands/server_command.rb +15 -76
- data/lib/rubygems/commands/setup_command.rb +370 -186
- data/lib/rubygems/commands/signin_command.rb +34 -0
- data/lib/rubygems/commands/signout_command.rb +32 -0
- data/lib/rubygems/commands/sources_command.rb +57 -41
- data/lib/rubygems/commands/specification_command.rb +38 -28
- data/lib/rubygems/commands/stale_command.rb +6 -5
- data/lib/rubygems/commands/uninstall_command.rb +96 -62
- data/lib/rubygems/commands/unpack_command.rb +44 -53
- data/lib/rubygems/commands/update_command.rb +155 -99
- data/lib/rubygems/commands/which_command.rb +14 -17
- data/lib/rubygems/commands/yank_command.rb +28 -32
- data/lib/rubygems/compatibility.rb +13 -32
- data/lib/rubygems/config_file.rb +214 -119
- data/lib/rubygems/core_ext/kernel_gem.rb +10 -16
- data/lib/rubygems/core_ext/kernel_require.rb +92 -90
- data/lib/rubygems/core_ext/kernel_warn.rb +49 -0
- data/lib/rubygems/core_ext/tcpsocket_init.rb +54 -0
- data/lib/rubygems/defaults.rb +184 -54
- data/lib/rubygems/dependency.rb +75 -62
- data/lib/rubygems/dependency_installer.rb +74 -230
- data/lib/rubygems/dependency_list.rb +32 -33
- data/lib/rubygems/deprecate.rb +113 -17
- data/lib/rubygems/doctor.rb +31 -31
- data/lib/rubygems/errors.rb +51 -13
- data/lib/rubygems/exceptions.rb +65 -35
- data/lib/rubygems/ext/build_error.rb +3 -1
- data/lib/rubygems/ext/builder.rb +103 -77
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
- data/lib/rubygems/ext/cargo_builder.rb +360 -0
- data/lib/rubygems/ext/cmake_builder.rb +6 -7
- data/lib/rubygems/ext/configure_builder.rb +6 -9
- data/lib/rubygems/ext/ext_conf_builder.rb +40 -61
- data/lib/rubygems/ext/rake_builder.rb +18 -21
- data/lib/rubygems/ext.rb +8 -7
- data/lib/rubygems/gem_runner.rb +19 -21
- 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 +78 -0
- data/lib/rubygems/gemcutter_utilities.rb +246 -43
- data/lib/rubygems/install_default_message.rb +3 -3
- data/lib/rubygems/install_message.rb +3 -3
- data/lib/rubygems/install_update_options.rb +104 -98
- data/lib/rubygems/installer.rb +407 -225
- data/lib/rubygems/installer_uninstaller_utils.rb +27 -0
- data/lib/rubygems/local_remote_options.rb +29 -32
- data/lib/rubygems/name_tuple.rb +18 -23
- data/lib/rubygems/net/http.rb +3 -0
- data/lib/rubygems/net-http/LICENSE.txt +22 -0
- data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
- data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
- data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
- data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
- data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
- data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
- data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
- data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
- data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
- data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
- data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
- data/lib/rubygems/net-http/lib/net/https.rb +23 -0
- data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
- data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/optparse/.document +1 -0
- data/lib/rubygems/optparse/COPYING +56 -0
- data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
- data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
- data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
- data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
- data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
- data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
- data/lib/rubygems/optparse/lib/optparse.rb +2330 -0
- data/lib/rubygems/optparse.rb +3 -0
- data/lib/rubygems/package/digest_io.rb +5 -7
- data/lib/rubygems/package/file_source.rb +6 -8
- data/lib/rubygems/package/io_source.rb +6 -4
- data/lib/rubygems/package/old.rb +19 -28
- data/lib/rubygems/package/source.rb +1 -1
- data/lib/rubygems/package/tar_header.rb +114 -93
- data/lib/rubygems/package/tar_reader/entry.rb +116 -22
- data/lib/rubygems/package/tar_reader.rb +18 -40
- data/lib/rubygems/package/tar_writer.rb +42 -56
- data/lib/rubygems/package.rb +245 -145
- data/lib/rubygems/package_task.rb +8 -14
- data/lib/rubygems/path_support.rb +21 -16
- data/lib/rubygems/platform.rb +135 -74
- data/lib/rubygems/psych_tree.rb +3 -2
- data/lib/rubygems/query_utils.rb +349 -0
- data/lib/rubygems/rdoc.rb +4 -326
- data/lib/rubygems/remote_fetcher.rb +99 -181
- data/lib/rubygems/request/connection_pools.rb +31 -24
- data/lib/rubygems/request/http_pool.rb +6 -7
- data/lib/rubygems/request/https_pool.rb +2 -3
- data/lib/rubygems/request.rb +103 -53
- data/lib/rubygems/request_set/gem_dependency_api.rb +182 -190
- data/lib/rubygems/request_set/lockfile/parser.rb +42 -52
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +34 -24
- data/lib/rubygems/request_set/lockfile.rb +32 -35
- data/lib/rubygems/request_set.rb +115 -71
- data/lib/rubygems/requirement.rb +77 -68
- data/lib/rubygems/resolv/LICENSE.txt +22 -0
- data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
- data/lib/rubygems/resolver/activation_request.rb +34 -61
- data/lib/rubygems/resolver/api_set/gem_parser.rb +24 -0
- data/lib/rubygems/resolver/api_set.rb +40 -32
- data/lib/rubygems/resolver/api_specification.rb +37 -18
- data/lib/rubygems/resolver/best_set.rb +15 -17
- data/lib/rubygems/resolver/composed_set.rb +9 -11
- data/lib/rubygems/resolver/conflict.rb +19 -33
- data/lib/rubygems/resolver/current_set.rb +2 -4
- data/lib/rubygems/resolver/dependency_request.rb +8 -9
- data/lib/rubygems/resolver/git_set.rb +8 -10
- data/lib/rubygems/resolver/git_specification.rb +11 -13
- data/lib/rubygems/resolver/index_set.rb +13 -15
- data/lib/rubygems/resolver/index_specification.rb +42 -11
- data/lib/rubygems/resolver/installed_specification.rb +9 -11
- data/lib/rubygems/resolver/installer_set.rb +87 -45
- data/lib/rubygems/resolver/local_specification.rb +5 -7
- data/lib/rubygems/resolver/lock_set.rb +13 -15
- data/lib/rubygems/resolver/lock_specification.rb +13 -15
- data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +57 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +88 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +36 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +66 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +62 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +63 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +61 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +126 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +46 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +36 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +164 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +110 -146
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +83 -9
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +13 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +552 -172
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +12 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo.rb +2 -1
- data/lib/rubygems/resolver/requirement_list.rb +2 -2
- data/lib/rubygems/resolver/set.rb +3 -5
- data/lib/rubygems/resolver/source_set.rb +6 -7
- data/lib/rubygems/resolver/spec_specification.rb +16 -4
- data/lib/rubygems/resolver/specification.rb +25 -10
- data/lib/rubygems/resolver/stats.rb +1 -0
- data/lib/rubygems/resolver/vendor_set.rb +6 -8
- data/lib/rubygems/resolver/vendor_specification.rb +6 -8
- data/lib/rubygems/resolver.rb +121 -72
- data/lib/rubygems/s3_uri_signer.rb +177 -0
- data/lib/rubygems/safe_marshal/elements.rb +138 -0
- data/lib/rubygems/safe_marshal/reader.rb +306 -0
- data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
- data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -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 +36 -0
- data/lib/rubygems/security/policies.rb +49 -51
- data/lib/rubygems/security/policy.rb +46 -53
- data/lib/rubygems/security/signer.rb +86 -29
- data/lib/rubygems/security/trust_dir.rb +22 -24
- data/lib/rubygems/security.rb +101 -82
- data/lib/rubygems/security_option.rb +43 -0
- data/lib/rubygems/shellwords.rb +3 -0
- data/lib/rubygems/source/git.rb +40 -42
- data/lib/rubygems/source/installed.rb +5 -9
- data/lib/rubygems/source/local.rb +30 -33
- data/lib/rubygems/source/lock.rb +10 -10
- data/lib/rubygems/source/specific_file.rb +7 -9
- data/lib/rubygems/source/vendor.rb +3 -7
- data/lib/rubygems/source.rb +78 -68
- data/lib/rubygems/source_list.rb +11 -15
- data/lib/rubygems/spec_fetcher.rb +71 -83
- data/lib/rubygems/specification.rb +833 -1115
- data/lib/rubygems/specification_policy.rb +538 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA.pem +21 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +55 -57
- data/lib/rubygems/text.rb +39 -27
- data/lib/rubygems/timeout/LICENSE.txt +22 -0
- data/lib/rubygems/timeout/lib/timeout.rb +199 -0
- data/lib/rubygems/timeout.rb +3 -0
- data/lib/rubygems/tsort/.document +1 -0
- data/lib/rubygems/tsort/LICENSE.txt +22 -0
- data/lib/rubygems/tsort/lib/tsort.rb +455 -0
- data/lib/rubygems/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +150 -87
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/update_suggestion.rb +56 -0
- data/lib/rubygems/uri.rb +126 -0
- data/lib/rubygems/uri_formatter.rb +4 -7
- data/lib/rubygems/user_interaction.rb +92 -146
- data/lib/rubygems/util/licenses.rb +712 -317
- data/lib/rubygems/util/list.rb +5 -2
- data/lib/rubygems/util.rb +58 -75
- data/lib/rubygems/validator.rb +26 -48
- data/lib/rubygems/version.rb +106 -56
- data/lib/rubygems/version_option.rb +22 -14
- data/lib/rubygems/yaml_serializer.rb +93 -0
- data/lib/rubygems.rb +427 -361
- data/rubygems-update.gemspec +38 -0
- data/setup.rb +13 -27
- metadata +500 -363
- data/.autotest +0 -71
- data/.document +0 -5
- data/.travis.yml +0 -46
- data/CONTRIBUTING.rdoc +0 -129
- data/CVE-2013-4287.txt +0 -35
- data/CVE-2013-4363.txt +0 -45
- data/CVE-2015-3900.txt +0 -40
- data/History.txt +0 -3105
- data/MAINTAINERS.md +0 -5
- data/POLICIES.rdoc +0 -61
- data/README.rdoc +0 -54
- data/Rakefile +0 -449
- data/UPGRADING.rdoc +0 -92
- data/appveyor.yml +0 -36
- data/bin/gem +0 -25
- data/bin/update_rubygems +0 -37
- data/lib/gauntlet_rubygems.rb +0 -51
- data/lib/rubygems/indexer.rb +0 -434
- data/lib/rubygems/installer_test_case.rb +0 -194
- data/lib/rubygems/mock_gem_ui.rb +0 -89
- data/lib/rubygems/package/tar_test_case.rb +0 -147
- data/lib/rubygems/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -869
- data/lib/rubygems/source_local.rb +0 -6
- data/lib/rubygems/source_specific_file.rb +0 -5
- data/lib/rubygems/ssl_certs/AddTrustExternalCARoot-2048.pem +0 -25
- data/lib/rubygems/ssl_certs/AddTrustExternalCARoot.pem +0 -32
- data/lib/rubygems/ssl_certs/Class3PublicPrimaryCertificationAuthority.pem +0 -14
- data/lib/rubygems/ssl_certs/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/EntrustnetSecureServerCertificationAuthority.pem +0 -28
- data/lib/rubygems/ssl_certs/GeoTrustGlobalCA.pem +0 -20
- data/lib/rubygems/syck_hack.rb +0 -77
- data/lib/rubygems/test_case.rb +0 -1496
- data/lib/rubygems/test_utilities.rb +0 -384
- data/lib/ubygems.rb +0 -11
- data/test/rubygems/alternate_cert.pem +0 -18
- data/test/rubygems/alternate_cert_32.pem +0 -18
- data/test/rubygems/alternate_key.pem +0 -27
- data/test/rubygems/bad_rake.rb +0 -2
- data/test/rubygems/ca_cert.pem +0 -68
- data/test/rubygems/child_cert.pem +0 -18
- data/test/rubygems/child_cert_32.pem +0 -18
- data/test/rubygems/child_key.pem +0 -27
- data/test/rubygems/client.pem +0 -49
- 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-type.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +0 -30
- data/test/rubygems/expired_cert.pem +0 -18
- data/test/rubygems/fake_certlib/openssl.rb +0 -8
- data/test/rubygems/fix_openssl_warnings.rb +0 -13
- data/test/rubygems/foo/discover.rb +0 -1
- data/test/rubygems/future_cert.pem +0 -18
- data/test/rubygems/future_cert_32.pem +0 -18
- data/test/rubygems/good_rake.rb +0 -2
- data/test/rubygems/grandchild_cert.pem +0 -18
- data/test/rubygems/grandchild_cert_32.pem +0 -18
- data/test/rubygems/grandchild_key.pem +0 -27
- data/test/rubygems/invalid_client.pem +0 -49
- data/test/rubygems/invalid_issuer_cert.pem +0 -18
- data/test/rubygems/invalid_issuer_cert_32.pem +0 -18
- data/test/rubygems/invalid_key.pem +0 -27
- data/test/rubygems/invalid_signer_cert.pem +0 -18
- data/test/rubygems/invalid_signer_cert_32.pem +0 -18
- data/test/rubygems/invalidchild_cert.pem +0 -18
- data/test/rubygems/invalidchild_cert_32.pem +0 -18
- data/test/rubygems/invalidchild_key.pem +0 -27
- 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/private_key.pem +0 -27
- data/test/rubygems/public_cert.pem +0 -18
- data/test/rubygems/public_cert_32.pem +0 -18
- data/test/rubygems/public_key.pem +0 -9
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -6
- data/test/rubygems/rubygems_plugin.rb +0 -22
- 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 -9
- data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
- data/test/rubygems/ssl_cert.pem +0 -19
- data/test/rubygems/ssl_key.pem +0 -15
- data/test/rubygems/test_bundled_ca.rb +0 -59
- data/test/rubygems/test_config.rb +0 -24
- data/test/rubygems/test_deprecate.rb +0 -77
- data/test/rubygems/test_gem.rb +0 -1718
- data/test/rubygems/test_gem_available_set.rb +0 -130
- data/test/rubygems/test_gem_command.rb +0 -248
- data/test/rubygems/test_gem_command_manager.rb +0 -264
- data/test/rubygems/test_gem_commands_build_command.rb +0 -121
- data/test/rubygems/test_gem_commands_cert_command.rb +0 -671
- data/test/rubygems/test_gem_commands_check_command.rb +0 -69
- data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -197
- data/test/rubygems/test_gem_commands_contents_command.rb +0 -240
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -230
- data/test/rubygems/test_gem_commands_environment_command.rb +0 -154
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -127
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -51
- data/test/rubygems/test_gem_commands_help_command.rb +0 -75
- data/test/rubygems/test_gem_commands_install_command.rb +0 -1007
- data/test/rubygems/test_gem_commands_list_command.rb +0 -34
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -69
- data/test/rubygems/test_gem_commands_mirror.rb +0 -20
- data/test/rubygems/test_gem_commands_open_command.rb +0 -70
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -33
- data/test/rubygems/test_gem_commands_owner_command.rb +0 -205
- data/test/rubygems/test_gem_commands_pristine_command.rb +0 -491
- data/test/rubygems/test_gem_commands_push_command.rb +0 -330
- data/test/rubygems/test_gem_commands_query_command.rb +0 -657
- data/test/rubygems/test_gem_commands_search_command.rb +0 -18
- data/test/rubygems/test_gem_commands_server_command.rb +0 -60
- data/test/rubygems/test_gem_commands_setup_command.rb +0 -136
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -249
- data/test/rubygems/test_gem_commands_specification_command.rb +0 -251
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
- data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -283
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -209
- data/test/rubygems/test_gem_commands_update_command.rb +0 -514
- data/test/rubygems/test_gem_commands_which_command.rb +0 -87
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -100
- data/test/rubygems/test_gem_config_file.rb +0 -491
- data/test/rubygems/test_gem_dependency.rb +0 -362
- data/test/rubygems/test_gem_dependency_installer.rb +0 -1235
- data/test/rubygems/test_gem_dependency_list.rb +0 -260
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -29
- data/test/rubygems/test_gem_doctor.rb +0 -169
- data/test/rubygems/test_gem_ext_builder.rb +0 -341
- data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -87
- data/test/rubygems/test_gem_ext_configure_builder.rb +0 -87
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -211
- data/test/rubygems/test_gem_ext_rake_builder.rb +0 -65
- data/test/rubygems/test_gem_gem_runner.rb +0 -69
- data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -235
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -62
- data/test/rubygems/test_gem_indexer.rb +0 -367
- data/test/rubygems/test_gem_install_update_options.rb +0 -197
- data/test/rubygems/test_gem_installer.rb +0 -1552
- data/test/rubygems/test_gem_local_remote_options.rb +0 -134
- data/test/rubygems/test_gem_name_tuple.rb +0 -45
- data/test/rubygems/test_gem_package.rb +0 -876
- data/test/rubygems/test_gem_package_old.rb +0 -90
- data/test/rubygems/test_gem_package_tar_header.rb +0 -147
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -90
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -142
- data/test/rubygems/test_gem_package_tar_writer.rb +0 -264
- data/test/rubygems/test_gem_package_task.rb +0 -84
- data/test/rubygems/test_gem_path_support.rb +0 -121
- data/test/rubygems/test_gem_platform.rb +0 -308
- data/test/rubygems/test_gem_rdoc.rb +0 -270
- data/test/rubygems/test_gem_remote_fetcher.rb +0 -1051
- data/test/rubygems/test_gem_request.rb +0 -363
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -130
- data/test/rubygems/test_gem_request_set.rb +0 -595
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -831
- data/test/rubygems/test_gem_request_set_lockfile.rb +0 -470
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -549
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -306
- data/test/rubygems/test_gem_requirement.rb +0 -387
- data/test/rubygems/test_gem_resolver.rb +0 -715
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -74
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -209
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -145
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -138
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -46
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -88
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -85
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -190
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -90
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -90
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -50
- data/test/rubygems/test_gem_resolver_installer_set.rb +0 -258
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -46
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -64
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -100
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -21
- data/test/rubygems/test_gem_resolver_specification.rb +0 -65
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -84
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -84
- data/test/rubygems/test_gem_security.rb +0 -307
- data/test/rubygems/test_gem_security_policy.rb +0 -541
- data/test/rubygems/test_gem_security_signer.rb +0 -209
- data/test/rubygems/test_gem_security_trust_dir.rb +0 -101
- data/test/rubygems/test_gem_server.rb +0 -409
- data/test/rubygems/test_gem_silent_ui.rb +0 -117
- data/test/rubygems/test_gem_source.rb +0 -242
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -20
- data/test/rubygems/test_gem_source_git.rb +0 -309
- data/test/rubygems/test_gem_source_installed.rb +0 -37
- data/test/rubygems/test_gem_source_list.rb +0 -118
- data/test/rubygems/test_gem_source_local.rb +0 -107
- data/test/rubygems/test_gem_source_lock.rb +0 -115
- data/test/rubygems/test_gem_source_specific_file.rb +0 -76
- data/test/rubygems/test_gem_source_vendor.rb +0 -32
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -311
- data/test/rubygems/test_gem_specification.rb +0 -3519
- data/test/rubygems/test_gem_stream_ui.rb +0 -239
- data/test/rubygems/test_gem_stub_specification.rb +0 -217
- data/test/rubygems/test_gem_text.rb +0 -77
- data/test/rubygems/test_gem_uninstaller.rb +0 -485
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -33
- data/test/rubygems/test_gem_uri_formatter.rb +0 -29
- data/test/rubygems/test_gem_util.rb +0 -40
- data/test/rubygems/test_gem_validator.rb +0 -46
- data/test/rubygems/test_gem_version.rb +0 -222
- data/test/rubygems/test_gem_version_option.rb +0 -152
- data/test/rubygems/test_kernel.rb +0 -86
- data/test/rubygems/test_require.rb +0 -322
- data/test/rubygems/wrong_key_cert.pem +0 -18
- data/test/rubygems/wrong_key_cert_32.pem +0 -18
- data/util/CL2notes +0 -56
- data/util/create_certs.rb +0 -157
- data/util/create_encrypted_key.rb +0 -17
- data/util/generate_spdx_license_list.rb +0 -51
- data/util/update_bundled_ca_certificates.rb +0 -118
data/lib/rubygems/command.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
#--
|
3
4
|
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
|
4
5
|
# All rights reserved.
|
5
6
|
# See LICENSE.txt for permissions.
|
6
7
|
#++
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
require_relative "optparse"
|
10
|
+
require_relative "requirement"
|
11
|
+
require_relative "user_interaction"
|
11
12
|
|
12
13
|
##
|
13
14
|
# Base class for all Gem commands. When creating a new gem command, define
|
@@ -17,9 +18,10 @@ require 'rubygems/user_interaction'
|
|
17
18
|
# A very good example to look at is Gem::Commands::ContentsCommand
|
18
19
|
|
19
20
|
class Gem::Command
|
20
|
-
|
21
21
|
include Gem::UserInteraction
|
22
22
|
|
23
|
+
Gem::OptionParser.accept Symbol, &:to_sym
|
24
|
+
|
23
25
|
##
|
24
26
|
# The name of the command.
|
25
27
|
|
@@ -73,7 +75,7 @@ class Gem::Command
|
|
73
75
|
when Array
|
74
76
|
@extra_args = value
|
75
77
|
when String
|
76
|
-
@extra_args = value.split
|
78
|
+
@extra_args = value.split(" ")
|
77
79
|
end
|
78
80
|
end
|
79
81
|
|
@@ -90,7 +92,7 @@ class Gem::Command
|
|
90
92
|
# array or a string to be split on white space.
|
91
93
|
|
92
94
|
def self.add_specific_extra_args(cmd,args)
|
93
|
-
args = args.split(/\s+/) if args.
|
95
|
+
args = args.split(/\s+/) if args.is_a? String
|
94
96
|
specific_extra_args_hash[cmd] = args
|
95
97
|
end
|
96
98
|
|
@@ -121,7 +123,8 @@ class Gem::Command
|
|
121
123
|
@program_name = "gem #{command}"
|
122
124
|
@defaults = defaults
|
123
125
|
@options = defaults.dup
|
124
|
-
@option_groups = Hash.new {
|
126
|
+
@option_groups = Hash.new {|h,k| h[k] = [] }
|
127
|
+
@deprecated_options = { command => {} }
|
125
128
|
@parser = nil
|
126
129
|
@when_invoked = nil
|
127
130
|
end
|
@@ -150,20 +153,26 @@ class Gem::Command
|
|
150
153
|
##
|
151
154
|
# Display to the user that a gem couldn't be found and reasons why
|
152
155
|
#--
|
153
|
-
# TODO: replace +domain+ with a parameter to suppress suggestions
|
154
156
|
|
155
|
-
def show_lookup_failure(gem_name, version, errors,
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
157
|
+
def show_lookup_failure(gem_name, version, errors, suppress_suggestions = false, required_by = nil)
|
158
|
+
gem = "'#{gem_name}' (#{version})"
|
159
|
+
msg = String.new "Could not find a valid gem #{gem}"
|
160
|
+
|
161
|
+
if errors && !errors.empty?
|
162
|
+
msg << ", here is why:\n"
|
163
|
+
errors.each {|x| msg << " #{x.wordy}\n" }
|
160
164
|
else
|
161
|
-
|
165
|
+
if required_by && gem != required_by
|
166
|
+
msg << " (required by #{required_by}) in any repository"
|
167
|
+
else
|
168
|
+
msg << " in any repository"
|
169
|
+
end
|
162
170
|
end
|
163
171
|
|
164
|
-
|
165
|
-
suggestions = Gem::SpecFetcher.fetcher.suggest_gems_from_name gem_name
|
172
|
+
alert_error msg
|
166
173
|
|
174
|
+
unless suppress_suggestions
|
175
|
+
suggestions = Gem::SpecFetcher.fetcher.suggest_gems_from_name(gem_name, :latest, 10)
|
167
176
|
unless suggestions.empty?
|
168
177
|
alert_error "Possible alternatives: #{suggestions.join(", ")}"
|
169
178
|
end
|
@@ -176,12 +185,12 @@ class Gem::Command
|
|
176
185
|
def get_all_gem_names
|
177
186
|
args = options[:args]
|
178
187
|
|
179
|
-
if args.nil?
|
188
|
+
if args.nil? || args.empty?
|
180
189
|
raise Gem::CommandLineError,
|
181
190
|
"Please specify at least one gem name (e.g. gem build GEMNAME)"
|
182
191
|
end
|
183
192
|
|
184
|
-
args.
|
193
|
+
args.reject {|arg| arg.start_with?("-") }
|
185
194
|
end
|
186
195
|
|
187
196
|
##
|
@@ -191,11 +200,15 @@ class Gem::Command
|
|
191
200
|
# respectively.
|
192
201
|
def get_all_gem_names_and_versions
|
193
202
|
get_all_gem_names.map do |name|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
203
|
+
extract_gem_name_and_version(name)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
def extract_gem_name_and_version(name) # :nodoc:
|
208
|
+
if /\A(.*):(#{Gem::Requirement::PATTERN_RAW})\z/ =~ name
|
209
|
+
[$1, $2]
|
210
|
+
else
|
211
|
+
[name]
|
199
212
|
end
|
200
213
|
end
|
201
214
|
|
@@ -206,14 +219,14 @@ class Gem::Command
|
|
206
219
|
def get_one_gem_name
|
207
220
|
args = options[:args]
|
208
221
|
|
209
|
-
if args.nil?
|
222
|
+
if args.nil? || args.empty?
|
210
223
|
raise Gem::CommandLineError,
|
211
224
|
"Please specify a gem name on the command line (e.g. gem build GEMNAME)"
|
212
225
|
end
|
213
226
|
|
214
|
-
if args.size > 1
|
227
|
+
if args.size > 1
|
215
228
|
raise Gem::CommandLineError,
|
216
|
-
"Too many gem names (#{args.join(
|
229
|
+
"Too many gem names (#{args.join(", ")}); please specify only one"
|
217
230
|
end
|
218
231
|
|
219
232
|
args.first
|
@@ -300,15 +313,23 @@ class Gem::Command
|
|
300
313
|
|
301
314
|
options[:build_args] = build_args
|
302
315
|
|
303
|
-
|
316
|
+
if options[:silent]
|
317
|
+
old_ui = ui
|
318
|
+
self.ui = ui = Gem::SilentUI.new
|
319
|
+
end
|
304
320
|
|
305
|
-
if options[:help]
|
321
|
+
if options[:help]
|
306
322
|
show_help
|
307
|
-
elsif @when_invoked
|
323
|
+
elsif @when_invoked
|
308
324
|
@when_invoked.call options
|
309
325
|
else
|
310
326
|
execute
|
311
327
|
end
|
328
|
+
ensure
|
329
|
+
if ui
|
330
|
+
self.ui = old_ui
|
331
|
+
ui.close
|
332
|
+
end
|
312
333
|
end
|
313
334
|
|
314
335
|
##
|
@@ -326,7 +347,7 @@ class Gem::Command
|
|
326
347
|
##
|
327
348
|
# Add a command-line option and handler to the command.
|
328
349
|
#
|
329
|
-
# See OptionParser#make_switch for an explanation of +opts+.
|
350
|
+
# See Gem::OptionParser#make_switch for an explanation of +opts+.
|
330
351
|
#
|
331
352
|
# +handler+ will be called with two values, the value of the argument and
|
332
353
|
# the options hash.
|
@@ -337,6 +358,8 @@ class Gem::Command
|
|
337
358
|
def add_option(*opts, &handler) # :yields: value, options
|
338
359
|
group_name = Symbol === opts.first ? opts.shift : :options
|
339
360
|
|
361
|
+
raise "Do not pass an empty string in opts" if opts.include?("")
|
362
|
+
|
340
363
|
@option_groups[group_name] << [opts, handler]
|
341
364
|
end
|
342
365
|
|
@@ -345,7 +368,49 @@ class Gem::Command
|
|
345
368
|
|
346
369
|
def remove_option(name)
|
347
370
|
@option_groups.each do |_, option_list|
|
348
|
-
option_list.reject! {
|
371
|
+
option_list.reject! {|args, _| args.any? {|x| x.is_a?(String) && x =~ /^#{name}/ } }
|
372
|
+
end
|
373
|
+
end
|
374
|
+
|
375
|
+
##
|
376
|
+
# Mark a command-line option as deprecated, and optionally specify a
|
377
|
+
# deprecation horizon.
|
378
|
+
#
|
379
|
+
# Note that with the current implementation, every version of the option needs
|
380
|
+
# to be explicitly deprecated, so to deprecate an option defined as
|
381
|
+
#
|
382
|
+
# add_option('-t', '--[no-]test', 'Set test mode') do |value, options|
|
383
|
+
# # ... stuff ...
|
384
|
+
# end
|
385
|
+
#
|
386
|
+
# you would need to explicitly add a call to `deprecate_option` for every
|
387
|
+
# version of the option you want to deprecate, like
|
388
|
+
#
|
389
|
+
# deprecate_option('-t')
|
390
|
+
# deprecate_option('--test')
|
391
|
+
# deprecate_option('--no-test')
|
392
|
+
|
393
|
+
def deprecate_option(name, version: nil, extra_msg: nil)
|
394
|
+
@deprecated_options[command].merge!({ name => { "rg_version_to_expire" => version, "extra_msg" => extra_msg } })
|
395
|
+
end
|
396
|
+
|
397
|
+
def check_deprecated_options(options)
|
398
|
+
options.each do |option|
|
399
|
+
next unless option_is_deprecated?(option)
|
400
|
+
deprecation = @deprecated_options[command][option]
|
401
|
+
version_to_expire = deprecation["rg_version_to_expire"]
|
402
|
+
|
403
|
+
deprecate_option_msg = if version_to_expire
|
404
|
+
"The \"#{option}\" option has been deprecated and will be removed in Rubygems #{version_to_expire}."
|
405
|
+
else
|
406
|
+
"The \"#{option}\" option has been deprecated and will be removed in future versions of Rubygems."
|
407
|
+
end
|
408
|
+
|
409
|
+
extra_msg = deprecation["extra_msg"]
|
410
|
+
|
411
|
+
deprecate_option_msg += " #{extra_msg}" if extra_msg
|
412
|
+
|
413
|
+
alert_warning(deprecate_option_msg)
|
349
414
|
end
|
350
415
|
end
|
351
416
|
|
@@ -355,19 +420,17 @@ class Gem::Command
|
|
355
420
|
|
356
421
|
def merge_options(new_options)
|
357
422
|
@options = @defaults.clone
|
358
|
-
new_options.each
|
423
|
+
new_options.each {|k,v| @options[k] = v }
|
359
424
|
end
|
360
425
|
|
361
426
|
##
|
362
427
|
# True if the command handles the given argument list.
|
363
428
|
|
364
429
|
def handles?(args)
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
return false
|
370
|
-
end
|
430
|
+
parser.parse!(args.dup)
|
431
|
+
true
|
432
|
+
rescue StandardError
|
433
|
+
false
|
371
434
|
end
|
372
435
|
|
373
436
|
##
|
@@ -376,6 +439,7 @@ class Gem::Command
|
|
376
439
|
|
377
440
|
def handle_options(args)
|
378
441
|
args = add_extra_args(args)
|
442
|
+
check_deprecated_options(args)
|
379
443
|
@options = Marshal.load Marshal.dump @defaults # deep copy
|
380
444
|
parser.parse!(args)
|
381
445
|
@options[:args] = args
|
@@ -393,7 +457,7 @@ class Gem::Command
|
|
393
457
|
until extra.empty? do
|
394
458
|
ex = []
|
395
459
|
ex << extra.shift
|
396
|
-
ex << extra.shift if extra.first.to_s
|
460
|
+
ex << extra.shift if /^[^-]/.match?(extra.first.to_s)
|
397
461
|
result << ex if handles?(ex)
|
398
462
|
end
|
399
463
|
|
@@ -402,8 +466,16 @@ class Gem::Command
|
|
402
466
|
result
|
403
467
|
end
|
404
468
|
|
469
|
+
def deprecated?
|
470
|
+
false
|
471
|
+
end
|
472
|
+
|
405
473
|
private
|
406
474
|
|
475
|
+
def option_is_deprecated?(option)
|
476
|
+
@deprecated_options[command].key?(option)
|
477
|
+
end
|
478
|
+
|
407
479
|
def add_parser_description # :nodoc:
|
408
480
|
return unless description
|
409
481
|
|
@@ -413,7 +485,7 @@ class Gem::Command
|
|
413
485
|
|
414
486
|
@parser.separator nil
|
415
487
|
@parser.separator " Description:"
|
416
|
-
formatted.
|
488
|
+
formatted.each_line do |line|
|
417
489
|
@parser.separator " #{line.rstrip}"
|
418
490
|
end
|
419
491
|
end
|
@@ -425,7 +497,7 @@ class Gem::Command
|
|
425
497
|
|
426
498
|
configure_options "", regular_options
|
427
499
|
|
428
|
-
@option_groups.sort_by {
|
500
|
+
@option_groups.sort_by {|n,_| n.to_s }.each do |group_name, option_list|
|
429
501
|
@parser.separator nil
|
430
502
|
configure_options group_name, option_list
|
431
503
|
end
|
@@ -435,13 +507,13 @@ class Gem::Command
|
|
435
507
|
# Adds a section with +title+ and +content+ to the parser help view. Used
|
436
508
|
# for adding command arguments and default arguments.
|
437
509
|
|
438
|
-
def add_parser_run_info
|
510
|
+
def add_parser_run_info(title, content)
|
439
511
|
return if content.empty?
|
440
512
|
|
441
513
|
@parser.separator nil
|
442
514
|
@parser.separator " #{title}:"
|
443
|
-
content.
|
444
|
-
@parser.separator " #{line}"
|
515
|
+
content.each_line do |line|
|
516
|
+
@parser.separator " #{line.rstrip}"
|
445
517
|
end
|
446
518
|
end
|
447
519
|
|
@@ -450,7 +522,7 @@ class Gem::Command
|
|
450
522
|
|
451
523
|
@parser.separator nil
|
452
524
|
@parser.separator " Summary:"
|
453
|
-
wrap(@summary, 80 - 4).
|
525
|
+
wrap(@summary, 80 - 4).each_line do |line|
|
454
526
|
@parser.separator " #{line.strip}"
|
455
527
|
end
|
456
528
|
end
|
@@ -468,7 +540,7 @@ class Gem::Command
|
|
468
540
|
# command.
|
469
541
|
|
470
542
|
def create_option_parser
|
471
|
-
@parser = OptionParser.new
|
543
|
+
@parser = Gem::OptionParser.new
|
472
544
|
|
473
545
|
add_parser_options
|
474
546
|
|
@@ -482,19 +554,18 @@ class Gem::Command
|
|
482
554
|
end
|
483
555
|
|
484
556
|
def configure_options(header, option_list)
|
485
|
-
return if option_list.nil?
|
557
|
+
return if option_list.nil? || option_list.empty?
|
486
558
|
|
487
|
-
header = header.to_s.empty? ?
|
559
|
+
header = header.to_s.empty? ? "" : "#{header} "
|
488
560
|
@parser.separator " #{header}Options:"
|
489
561
|
|
490
562
|
option_list.each do |args, handler|
|
491
|
-
args.select { |arg| arg =~ /^-/ }
|
492
563
|
@parser.on(*args) do |value|
|
493
564
|
handler.call(value, @options)
|
494
565
|
end
|
495
566
|
end
|
496
567
|
|
497
|
-
@parser.separator
|
568
|
+
@parser.separator ""
|
498
569
|
end
|
499
570
|
|
500
571
|
##
|
@@ -507,27 +578,27 @@ class Gem::Command
|
|
507
578
|
# ----------------------------------------------------------------
|
508
579
|
# Add the options common to all commands.
|
509
580
|
|
510
|
-
add_common_option(
|
511
|
-
|
581
|
+
add_common_option("-h", "--help",
|
582
|
+
"Get help on this command") do |_value, options|
|
512
583
|
options[:help] = true
|
513
584
|
end
|
514
585
|
|
515
|
-
add_common_option(
|
516
|
-
|
586
|
+
add_common_option("-V", "--[no-]verbose",
|
587
|
+
"Set the verbose level of output") do |value, _options|
|
517
588
|
# Set us to "really verbose" so the progress meter works
|
518
|
-
if Gem.configuration.verbose
|
589
|
+
if Gem.configuration.verbose && value
|
519
590
|
Gem.configuration.verbose = 1
|
520
591
|
else
|
521
592
|
Gem.configuration.verbose = value
|
522
593
|
end
|
523
594
|
end
|
524
595
|
|
525
|
-
add_common_option(
|
596
|
+
add_common_option("-q", "--quiet", "Silence command progress meter") do |_value, _options|
|
526
597
|
Gem.configuration.verbose = false
|
527
598
|
end
|
528
599
|
|
529
600
|
add_common_option("--silent",
|
530
|
-
"Silence
|
601
|
+
"Silence RubyGems output") do |_value, options|
|
531
602
|
options[:silent] = true
|
532
603
|
end
|
533
604
|
|
@@ -535,38 +606,41 @@ class Gem::Command
|
|
535
606
|
# commands. Both options are actually handled before the other
|
536
607
|
# options get parsed.
|
537
608
|
|
538
|
-
add_common_option(
|
539
|
-
|
609
|
+
add_common_option("--config-file FILE",
|
610
|
+
"Use this config file instead of default") do
|
540
611
|
end
|
541
612
|
|
542
|
-
add_common_option(
|
543
|
-
|
613
|
+
add_common_option("--backtrace",
|
614
|
+
"Show stack backtrace on errors") do
|
544
615
|
end
|
545
616
|
|
546
|
-
add_common_option(
|
547
|
-
|
617
|
+
add_common_option("--debug",
|
618
|
+
"Turn on Ruby debugging") do
|
548
619
|
end
|
549
620
|
|
550
|
-
add_common_option(
|
551
|
-
|
621
|
+
add_common_option("--norc",
|
622
|
+
"Avoid loading any .gemrc file") do
|
552
623
|
end
|
553
624
|
|
554
|
-
|
555
625
|
# :stopdoc:
|
556
626
|
|
557
627
|
HELP = <<-HELP
|
558
|
-
RubyGems is a
|
559
|
-
basic help message containing pointers to more information.
|
628
|
+
RubyGems is a package manager for Ruby.
|
560
629
|
|
561
630
|
Usage:
|
562
631
|
gem -h/--help
|
563
632
|
gem -v/--version
|
564
|
-
gem command [arguments...] [options...]
|
633
|
+
gem [global options...] command [arguments...] [options...]
|
634
|
+
|
635
|
+
Global options:
|
636
|
+
-C PATH run as if gem was started in <PATH>
|
637
|
+
instead of the current working directory
|
565
638
|
|
566
639
|
Examples:
|
567
640
|
gem install rake
|
568
641
|
gem list --local
|
569
642
|
gem build package.gemspec
|
643
|
+
gem push package-0.0.1.gem
|
570
644
|
gem help install
|
571
645
|
|
572
646
|
Further help:
|
@@ -580,11 +654,10 @@ basic help message containing pointers to more information.
|
|
580
654
|
http://localhost:8808/
|
581
655
|
with info about installed gems
|
582
656
|
Further information:
|
583
|
-
|
657
|
+
https://guides.rubygems.org
|
584
658
|
HELP
|
585
659
|
|
586
660
|
# :startdoc:
|
587
|
-
|
588
661
|
end
|
589
662
|
|
590
663
|
##
|
@@ -1,12 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
#--
|
3
4
|
# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others.
|
4
5
|
# All rights reserved.
|
5
6
|
# See LICENSE.txt for permissions.
|
6
7
|
#++
|
7
8
|
|
8
|
-
|
9
|
-
|
9
|
+
require_relative "command"
|
10
|
+
require_relative "user_interaction"
|
11
|
+
require_relative "text"
|
10
12
|
|
11
13
|
##
|
12
14
|
# The command manager registers and installs all the individual sub-commands
|
@@ -31,7 +33,7 @@ require 'rubygems/user_interaction'
|
|
31
33
|
# See Gem::Command for instructions on writing gem commands.
|
32
34
|
|
33
35
|
class Gem::CommandManager
|
34
|
-
|
36
|
+
include Gem::Text
|
35
37
|
include Gem::UserInteraction
|
36
38
|
|
37
39
|
BUILTIN_COMMANDS = [ # :nodoc:
|
@@ -42,9 +44,11 @@ class Gem::CommandManager
|
|
42
44
|
:contents,
|
43
45
|
:dependency,
|
44
46
|
:environment,
|
47
|
+
:exec,
|
45
48
|
:fetch,
|
46
49
|
:generate_index,
|
47
50
|
:help,
|
51
|
+
:info,
|
48
52
|
:install,
|
49
53
|
:list,
|
50
54
|
:lock,
|
@@ -58,6 +62,8 @@ class Gem::CommandManager
|
|
58
62
|
:rdoc,
|
59
63
|
:search,
|
60
64
|
:server,
|
65
|
+
:signin,
|
66
|
+
:signout,
|
61
67
|
:sources,
|
62
68
|
:specification,
|
63
69
|
:stale,
|
@@ -66,13 +72,19 @@ class Gem::CommandManager
|
|
66
72
|
:update,
|
67
73
|
:which,
|
68
74
|
:yank,
|
69
|
-
]
|
75
|
+
].freeze
|
76
|
+
|
77
|
+
ALIAS_COMMANDS = {
|
78
|
+
"i" => "install",
|
79
|
+
"login" => "signin",
|
80
|
+
"logout" => "signout",
|
81
|
+
}.freeze
|
70
82
|
|
71
83
|
##
|
72
84
|
# Return the authoritative instance of the command manager.
|
73
85
|
|
74
86
|
def self.instance
|
75
|
-
@
|
87
|
+
@instance ||= new
|
76
88
|
end
|
77
89
|
|
78
90
|
##
|
@@ -87,14 +99,14 @@ class Gem::CommandManager
|
|
87
99
|
# Reset the authoritative instance of the command manager.
|
88
100
|
|
89
101
|
def self.reset
|
90
|
-
@
|
102
|
+
@instance = nil
|
91
103
|
end
|
92
104
|
|
93
105
|
##
|
94
106
|
# Register all the subcommands supported by the gem command.
|
95
107
|
|
96
108
|
def initialize
|
97
|
-
|
109
|
+
require_relative "timeout"
|
98
110
|
@commands = {}
|
99
111
|
|
100
112
|
BUILTIN_COMMANDS.each do |name|
|
@@ -129,7 +141,7 @@ class Gem::CommandManager
|
|
129
141
|
# Return a sorted list of all command names as strings.
|
130
142
|
|
131
143
|
def command_names
|
132
|
-
@commands.keys.collect
|
144
|
+
@commands.keys.collect(&:to_s).sort
|
133
145
|
end
|
134
146
|
|
135
147
|
##
|
@@ -137,58 +149,77 @@ class Gem::CommandManager
|
|
137
149
|
|
138
150
|
def run(args, build_args=nil)
|
139
151
|
process_args(args, build_args)
|
140
|
-
rescue StandardError, Timeout::Error => ex
|
141
|
-
|
152
|
+
rescue StandardError, Gem::Timeout::Error => ex
|
153
|
+
if ex.respond_to?(:detailed_message)
|
154
|
+
msg = ex.detailed_message(highlight: false).sub(/\A(.*?)(?: \(.+?\))/) { $1 }
|
155
|
+
else
|
156
|
+
msg = ex.message
|
157
|
+
end
|
158
|
+
alert_error clean_text("While executing gem ... (#{ex.class})\n #{msg}")
|
142
159
|
ui.backtrace ex
|
143
160
|
|
144
161
|
terminate_interaction(1)
|
145
162
|
rescue Interrupt
|
146
|
-
alert_error "Interrupted"
|
163
|
+
alert_error clean_text("Interrupted")
|
147
164
|
terminate_interaction(1)
|
148
165
|
end
|
149
166
|
|
150
167
|
def process_args(args, build_args=nil)
|
151
|
-
if args.empty?
|
168
|
+
if args.empty?
|
152
169
|
say Gem::Command::HELP
|
153
170
|
terminate_interaction 1
|
154
171
|
end
|
155
172
|
|
156
173
|
case args.first
|
157
|
-
when
|
174
|
+
when "-h", "--help" then
|
158
175
|
say Gem::Command::HELP
|
159
176
|
terminate_interaction 0
|
160
|
-
when
|
177
|
+
when "-v", "--version" then
|
161
178
|
say Gem::VERSION
|
162
179
|
terminate_interaction 0
|
180
|
+
when "-C" then
|
181
|
+
args.shift
|
182
|
+
start_point = args.shift
|
183
|
+
if Dir.exist?(start_point)
|
184
|
+
Dir.chdir(start_point) { invoke_command(args, build_args) }
|
185
|
+
else
|
186
|
+
alert_error clean_text("#{start_point} isn't a directory.")
|
187
|
+
terminate_interaction 1
|
188
|
+
end
|
163
189
|
when /^-/ then
|
164
|
-
alert_error "Invalid option: #{args.first}.
|
190
|
+
alert_error clean_text("Invalid option: #{args.first}. See 'gem --help'.")
|
165
191
|
terminate_interaction 1
|
166
192
|
else
|
167
|
-
|
168
|
-
cmd = find_command cmd_name
|
169
|
-
cmd.invoke_with_build_args args, build_args
|
193
|
+
invoke_command(args, build_args)
|
170
194
|
end
|
171
195
|
end
|
172
196
|
|
173
197
|
def find_command(cmd_name)
|
198
|
+
cmd_name = find_alias_command cmd_name
|
199
|
+
|
174
200
|
possibilities = find_command_possibilities cmd_name
|
175
201
|
|
176
|
-
if possibilities.size > 1
|
202
|
+
if possibilities.size > 1
|
177
203
|
raise Gem::CommandLineError,
|
178
|
-
"Ambiguous command #{cmd_name} matches [#{possibilities.join(
|
179
|
-
elsif possibilities.empty?
|
180
|
-
raise Gem::
|
204
|
+
"Ambiguous command #{cmd_name} matches [#{possibilities.join(", ")}]"
|
205
|
+
elsif possibilities.empty?
|
206
|
+
raise Gem::UnknownCommandError.new(cmd_name)
|
181
207
|
end
|
182
208
|
|
183
209
|
self[possibilities.first]
|
184
210
|
end
|
185
211
|
|
212
|
+
def find_alias_command(cmd_name)
|
213
|
+
alias_name = ALIAS_COMMANDS[cmd_name]
|
214
|
+
alias_name ? alias_name : cmd_name
|
215
|
+
end
|
216
|
+
|
186
217
|
def find_command_possibilities(cmd_name)
|
187
218
|
len = cmd_name.length
|
188
219
|
|
189
|
-
found = command_names.select {
|
220
|
+
found = command_names.select {|name| cmd_name == name[0, len] }
|
190
221
|
|
191
|
-
exact = found.find {
|
222
|
+
exact = found.find {|name| name == cmd_name }
|
192
223
|
|
193
224
|
exact ? [exact] : found
|
194
225
|
end
|
@@ -207,13 +238,19 @@ class Gem::CommandManager
|
|
207
238
|
load_error = e
|
208
239
|
end
|
209
240
|
Gem::Commands.const_get(const_name).new
|
210
|
-
rescue
|
241
|
+
rescue StandardError => e
|
211
242
|
e = load_error if load_error
|
212
243
|
|
213
|
-
alert_error "Loading command: #{command_name} (#{e.class})\n\t#{e}"
|
244
|
+
alert_error clean_text("Loading command: #{command_name} (#{e.class})\n\t#{e}")
|
214
245
|
ui.backtrace e
|
215
246
|
end
|
216
247
|
end
|
217
248
|
|
249
|
+
def invoke_command(args, build_args)
|
250
|
+
cmd_name = args.shift.downcase
|
251
|
+
cmd = find_command cmd_name
|
252
|
+
terminate_interaction 1 unless cmd
|
253
|
+
cmd.deprecation_warning if cmd.deprecated?
|
254
|
+
cmd.invoke_with_build_args args, build_args
|
255
|
+
end
|
218
256
|
end
|
219
|
-
|