rubygems-update 3.4.22 → 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 +4 -4
- data/CHANGELOG.md +99 -2
- data/Manifest.txt +34 -221
- data/README.md +1 -3
- data/bundler/CHANGELOG.md +53 -0
- data/bundler/bundler.gemspec +4 -2
- data/bundler/exe/bundle +1 -10
- data/bundler/lib/bundler/build_metadata.rb +3 -3
- data/bundler/lib/bundler/capistrano.rb +1 -1
- data/bundler/lib/bundler/checksum.rb +245 -0
- data/bundler/lib/bundler/ci_detector.rb +75 -0
- data/bundler/lib/bundler/cli/add.rb +3 -3
- data/bundler/lib/bundler/cli/binstubs.rb +4 -4
- data/bundler/lib/bundler/cli/cache.rb +1 -1
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +9 -1
- data/bundler/lib/bundler/cli/config.rb +8 -7
- data/bundler/lib/bundler/cli/console.rb +3 -2
- data/bundler/lib/bundler/cli/doctor.rb +2 -2
- data/bundler/lib/bundler/cli/exec.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +28 -23
- data/bundler/lib/bundler/cli/info.rb +2 -13
- data/bundler/lib/bundler/cli/install.rb +5 -4
- data/bundler/lib/bundler/cli/issue.rb +1 -1
- data/bundler/lib/bundler/cli/lock.rb +4 -4
- data/bundler/lib/bundler/cli/open.rb +1 -1
- data/bundler/lib/bundler/cli/outdated.rb +6 -6
- data/bundler/lib/bundler/cli/plugin.rb +7 -14
- data/bundler/lib/bundler/cli/pristine.rb +38 -30
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +5 -5
- data/bundler/lib/bundler/cli.rb +215 -263
- data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
- data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
- data/bundler/lib/bundler/compact_index_client.rb +14 -7
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +5 -21
- data/bundler/lib/bundler/definition.rb +42 -15
- data/bundler/lib/bundler/dependency.rb +16 -12
- data/bundler/lib/bundler/digest.rb +2 -2
- data/bundler/lib/bundler/dsl.rb +43 -25
- data/bundler/lib/bundler/endpoint_specification.rb +5 -1
- data/bundler/lib/bundler/env.rb +1 -3
- data/bundler/lib/bundler/errors.rb +43 -0
- data/bundler/lib/bundler/fetcher/base.rb +3 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
- data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
- data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- data/bundler/lib/bundler/fetcher/index.rb +1 -1
- data/bundler/lib/bundler/fetcher.rb +28 -25
- data/bundler/lib/bundler/friendly_errors.rb +5 -5
- data/bundler/lib/bundler/gem_helper.rb +1 -1
- data/bundler/lib/bundler/gem_helpers.rb +5 -2
- data/bundler/lib/bundler/graph.rb +9 -9
- data/bundler/lib/bundler/index.rb +1 -2
- data/bundler/lib/bundler/injector.rb +1 -1
- data/bundler/lib/bundler/inline.rb +3 -3
- data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
- data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
- data/bundler/lib/bundler/installer/standalone.rb +2 -3
- data/bundler/lib/bundler/installer.rb +9 -9
- data/bundler/lib/bundler/lazy_specification.rb +24 -17
- data/bundler/lib/bundler/lockfile_generator.rb +9 -0
- data/bundler/lib/bundler/lockfile_parser.rb +81 -10
- data/bundler/lib/bundler/man/bundle-add.1 +3 -26
- data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
- data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
- data/bundler/lib/bundler/man/bundle-check.1 +3 -12
- data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
- data/bundler/lib/bundler/man/bundle-config.1 +20 -211
- data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
- data/bundler/lib/bundler/man/bundle-console.1 +4 -22
- data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
- data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
- data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
- data/bundler/lib/bundler/man/bundle-help.1 +3 -7
- data/bundler/lib/bundler/man/bundle-info.1 +3 -9
- data/bundler/lib/bundler/man/bundle-init.1 +3 -12
- data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
- data/bundler/lib/bundler/man/bundle-install.1 +27 -125
- data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
- data/bundler/lib/bundler/man/bundle-list.1 +4 -19
- data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
- data/bundler/lib/bundler/man/bundle-open.1 +7 -27
- data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
- data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
- data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
- data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
- data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
- data/bundler/lib/bundler/man/bundle-show.1 +3 -10
- data/bundler/lib/bundler/man/bundle-update.1 +18 -137
- data/bundler/lib/bundler/man/bundle-version.1 +3 -16
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
- data/bundler/lib/bundler/man/bundle.1 +5 -44
- data/bundler/lib/bundler/man/gemfile.5 +24 -301
- data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
- data/bundler/lib/bundler/match_metadata.rb +4 -0
- data/bundler/lib/bundler/match_platform.rb +1 -1
- data/bundler/lib/bundler/plugin/api/source.rb +3 -2
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin.rb +3 -3
- data/bundler/lib/bundler/resolver/base.rb +1 -1
- data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
- data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
- data/bundler/lib/bundler/resolver.rb +16 -16
- data/bundler/lib/bundler/ruby_dsl.rb +20 -12
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +24 -50
- data/bundler/lib/bundler/rubygems_gem_installer.rb +6 -56
- data/bundler/lib/bundler/rubygems_integration.rb +25 -94
- data/bundler/lib/bundler/runtime.rb +2 -2
- data/bundler/lib/bundler/self_manager.rb +23 -7
- data/bundler/lib/bundler/settings.rb +27 -7
- data/bundler/lib/bundler/setup.rb +4 -1
- data/bundler/lib/bundler/shared_helpers.rb +35 -13
- data/bundler/lib/bundler/source/git/git_proxy.rb +15 -15
- data/bundler/lib/bundler/source/git.rb +4 -3
- data/bundler/lib/bundler/source/metadata.rb +15 -15
- data/bundler/lib/bundler/source/path.rb +7 -6
- data/bundler/lib/bundler/source/rubygems.rb +21 -14
- data/bundler/lib/bundler/source.rb +2 -0
- data/bundler/lib/bundler/spec_set.rb +38 -10
- data/bundler/lib/bundler/stub_specification.rb +1 -0
- data/bundler/lib/bundler/templates/Executable.bundler +1 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
- data/bundler/lib/bundler/ui/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
- 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 +35 -35
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendored_net_http.rb +8 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -4
- data/bundler/lib/bundler/vendored_timeout.rb +8 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/vlad.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +3 -3
- data/bundler/lib/bundler.rb +38 -27
- data/lib/rubygems/available_set.rb +4 -4
- data/lib/rubygems/basic_specification.rb +35 -37
- data/lib/rubygems/bundler_version_finder.rb +4 -4
- data/lib/rubygems/ci_detector.rb +75 -0
- data/lib/rubygems/command.rb +13 -15
- data/lib/rubygems/command_manager.rb +5 -4
- data/lib/rubygems/commands/build_command.rb +2 -2
- data/lib/rubygems/commands/cert_command.rb +1 -2
- data/lib/rubygems/commands/check_command.rb +4 -4
- data/lib/rubygems/commands/cleanup_command.rb +12 -14
- data/lib/rubygems/commands/contents_command.rb +4 -4
- data/lib/rubygems/commands/dependency_command.rb +4 -5
- data/lib/rubygems/commands/environment_command.rb +1 -3
- data/lib/rubygems/commands/exec_command.rb +1 -1
- data/lib/rubygems/commands/fetch_command.rb +2 -2
- data/lib/rubygems/commands/generate_index_command.rb +39 -74
- data/lib/rubygems/commands/help_command.rb +3 -3
- data/lib/rubygems/commands/info_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +8 -16
- data/lib/rubygems/commands/list_command.rb +2 -2
- data/lib/rubygems/commands/lock_command.rb +1 -1
- data/lib/rubygems/commands/open_command.rb +1 -1
- data/lib/rubygems/commands/owner_command.rb +1 -1
- data/lib/rubygems/commands/pristine_command.rb +13 -15
- data/lib/rubygems/commands/push_command.rb +2 -2
- data/lib/rubygems/commands/query_command.rb +4 -5
- data/lib/rubygems/commands/rdoc_command.rb +2 -2
- data/lib/rubygems/commands/search_command.rb +2 -2
- data/lib/rubygems/commands/setup_command.rb +31 -34
- data/lib/rubygems/commands/sources_command.rb +12 -12
- data/lib/rubygems/commands/specification_command.rb +10 -10
- data/lib/rubygems/commands/stale_command.rb +1 -1
- data/lib/rubygems/commands/uninstall_command.rb +9 -10
- data/lib/rubygems/commands/unpack_command.rb +4 -4
- data/lib/rubygems/commands/update_command.rb +10 -12
- data/lib/rubygems/commands/which_command.rb +1 -1
- data/lib/rubygems/commands/yank_command.rb +1 -1
- data/lib/rubygems/compatibility.rb +5 -6
- data/lib/rubygems/config_file.rb +4 -4
- data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
- data/lib/rubygems/core_ext/kernel_require.rb +19 -48
- data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
- data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
- data/lib/rubygems/defaults.rb +15 -3
- data/lib/rubygems/dependency.rb +12 -14
- data/lib/rubygems/dependency_installer.rb +29 -30
- data/lib/rubygems/dependency_list.rb +1 -1
- data/lib/rubygems/deprecate.rb +16 -15
- data/lib/rubygems/doctor.rb +5 -5
- data/lib/rubygems/errors.rb +2 -6
- data/lib/rubygems/exceptions.rb +2 -1
- data/lib/rubygems/ext/builder.rb +15 -10
- data/lib/rubygems/ext/cargo_builder.rb +5 -5
- data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
- data/lib/rubygems/gem_runner.rb +4 -4
- data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
- data/lib/rubygems/gemcutter_utilities.rb +18 -19
- data/lib/rubygems/install_update_options.rb +18 -19
- data/lib/rubygems/installer.rb +59 -33
- data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
- data/lib/rubygems/local_remote_options.rb +7 -10
- data/lib/rubygems/name_tuple.rb +7 -9
- 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/optparse/lib/optparse.rb +39 -17
- data/lib/rubygems/package/old.rb +2 -2
- data/lib/rubygems/package/tar_header.rb +45 -39
- data/lib/rubygems/package/tar_reader/entry.rb +5 -4
- data/lib/rubygems/package/tar_reader.rb +5 -3
- data/lib/rubygems/package/tar_writer.rb +19 -17
- data/lib/rubygems/package.rb +27 -26
- data/lib/rubygems/package_task.rb +2 -2
- data/lib/rubygems/path_support.rb +9 -10
- data/lib/rubygems/platform.rb +60 -45
- data/lib/rubygems/query_utils.rb +7 -9
- data/lib/rubygems/remote_fetcher.rb +15 -15
- data/lib/rubygems/request/connection_pools.rb +3 -3
- data/lib/rubygems/request.rb +20 -17
- data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
- data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
- data/lib/rubygems/request_set/lockfile.rb +6 -11
- data/lib/rubygems/request_set.rb +5 -5
- data/lib/rubygems/requirement.rb +7 -7
- data/lib/rubygems/resolv/LICENSE.txt +22 -0
- data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
- data/lib/rubygems/resolver/activation_request.rb +1 -3
- data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
- data/lib/rubygems/resolver/best_set.rb +1 -1
- data/lib/rubygems/resolver/composed_set.rb +1 -1
- data/lib/rubygems/resolver/conflict.rb +4 -12
- data/lib/rubygems/resolver/index_set.rb +4 -4
- data/lib/rubygems/resolver/index_specification.rb +2 -2
- data/lib/rubygems/resolver/installer_set.rb +5 -6
- data/lib/rubygems/resolver/lock_set.rb +1 -1
- data/lib/rubygems/resolver.rb +3 -10
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- 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 +5 -28
- data/lib/rubygems/security/policies.rb +36 -38
- data/lib/rubygems/security/policy.rb +7 -11
- data/lib/rubygems/security/signer.rb +1 -1
- data/lib/rubygems/security/trust_dir.rb +3 -3
- data/lib/rubygems/security.rb +8 -22
- data/lib/rubygems/source/git.rb +1 -3
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +5 -8
- data/lib/rubygems/source/lock.rb +1 -3
- data/lib/rubygems/source/specific_file.rb +0 -1
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source.rb +12 -12
- data/lib/rubygems/source_list.rb +4 -4
- data/lib/rubygems/spec_fetcher.rb +29 -29
- data/lib/rubygems/specification.rb +125 -138
- data/lib/rubygems/specification_policy.rb +55 -25
- data/lib/rubygems/stub_specification.rb +4 -5
- data/lib/rubygems/text.rb +1 -2
- 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/lib/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +7 -9
- data/lib/rubygems/update_suggestion.rb +5 -18
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +15 -21
- data/lib/rubygems/util/licenses.rb +65 -35
- data/lib/rubygems/util/list.rb +3 -1
- data/lib/rubygems/util.rb +2 -4
- data/lib/rubygems/validator.rb +5 -3
- data/lib/rubygems/version.rb +34 -28
- data/lib/rubygems/version_option.rb +2 -5
- data/lib/rubygems/yaml_serializer.rb +3 -3
- data/lib/rubygems.rb +37 -37
- data/rubygems-update.gemspec +4 -4
- data/setup.rb +2 -2
- metadata +38 -225
- data/lib/rubygems/indexer.rb +0 -428
- data/lib/rubygems/mock_gem_ui.rb +0 -86
- 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 -3
- data/test/rubygems/bundler_test_gem.rb +0 -424
- data/test/rubygems/ca_cert.pem +0 -77
- data/test/rubygems/child_cert.pem +0 -19
- data/test/rubygems/child_cert_32.pem +0 -19
- 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/fake_certlib/openssl.rb +0 -9
- 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 -3
- data/test/rubygems/grandchild_cert.pem +0 -19
- data/test/rubygems/grandchild_cert_32.pem +0 -19
- data/test/rubygems/grandchild_key.pem +0 -27
- data/test/rubygems/helper.rb +0 -1649
- data/test/rubygems/installer_test_case.rb +0 -248
- 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 -19
- data/test/rubygems/invalidchild_cert_32.pem +0 -19
- data/test/rubygems/invalidchild_key.pem +0 -27
- data/test/rubygems/multifactor_auth_utilities.rb +0 -111
- data/test/rubygems/package/tar_test_case.rb +0 -175
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- 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 -4
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
- 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 -5
- data/test/rubygems/rubygems_plugin.rb +0 -24
- data/test/rubygems/sff/discover.rb +0 -1
- data/test/rubygems/simple_gem.rb +0 -68
- 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/specifications/rubyforge-0.0.1.gemspec +0 -14
- data/test/rubygems/ssl_cert.pem +0 -80
- data/test/rubygems/ssl_key.pem +0 -27
- data/test/rubygems/test_bundled_ca.rb +0 -61
- data/test/rubygems/test_config.rb +0 -28
- data/test/rubygems/test_deprecate.rb +0 -158
- data/test/rubygems/test_exit.rb +0 -17
- data/test/rubygems/test_gem.rb +0 -1799
- data/test/rubygems/test_gem_available_set.rb +0 -130
- data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
- data/test/rubygems/test_gem_command.rb +0 -403
- data/test/rubygems/test_gem_command_manager.rb +0 -400
- data/test/rubygems/test_gem_commands_build_command.rb +0 -739
- data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
- data/test/rubygems/test_gem_commands_check_command.rb +0 -68
- data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
- data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
- data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
- data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
- data/test/rubygems/test_gem_commands_help_command.rb +0 -94
- data/test/rubygems/test_gem_commands_info_command.rb +0 -70
- data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
- data/test/rubygems/test_gem_commands_list_command.rb +0 -33
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
- data/test/rubygems/test_gem_commands_mirror.rb +0 -20
- data/test/rubygems/test_gem_commands_open_command.rb +0 -101
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
- data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
- data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
- data/test/rubygems/test_gem_commands_push_command.rb +0 -603
- data/test/rubygems/test_gem_commands_query_command.rb +0 -858
- data/test/rubygems/test_gem_commands_search_command.rb +0 -16
- data/test/rubygems/test_gem_commands_server_command.rb +0 -20
- data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
- data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
- 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 -277
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
- data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
- data/test/rubygems/test_gem_commands_update_command.rb +0 -836
- data/test/rubygems/test_gem_commands_which_command.rb +0 -85
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
- data/test/rubygems/test_gem_config_file.rb +0 -551
- data/test/rubygems/test_gem_dependency.rb +0 -398
- data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
- data/test/rubygems/test_gem_dependency_list.rb +0 -265
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
- data/test/rubygems/test_gem_doctor.rb +0 -195
- data/test/rubygems/test_gem_ext_builder.rb +0 -337
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
- 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/ext/custom_name_lib/Cargo.lock +0 -249
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
- 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 -249
- 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/rust_ruby_example.gemspec +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
- data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
- data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
- data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
- data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
- data/test/rubygems/test_gem_gem_runner.rb +0 -119
- data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
- data/test/rubygems/test_gem_indexer.rb +0 -381
- data/test/rubygems/test_gem_install_update_options.rb +0 -208
- data/test/rubygems/test_gem_installer.rb +0 -2512
- data/test/rubygems/test_gem_local_remote_options.rb +0 -133
- data/test/rubygems/test_gem_name_tuple.rb +0 -43
- data/test/rubygems/test_gem_package.rb +0 -1306
- data/test/rubygems/test_gem_package_old.rb +0 -91
- data/test/rubygems/test_gem_package_tar_header.rb +0 -226
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
- data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
- data/test/rubygems/test_gem_package_task.rb +0 -118
- data/test/rubygems/test_gem_path_support.rb +0 -139
- data/test/rubygems/test_gem_platform.rb +0 -497
- data/test/rubygems/test_gem_rdoc.rb +0 -137
- data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
- data/test/rubygems/test_gem_request.rb +0 -547
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
- data/test/rubygems/test_gem_request_set.rb +0 -672
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
- data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
- data/test/rubygems/test_gem_requirement.rb +0 -505
- data/test/rubygems/test_gem_resolver.rb +0 -859
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
- data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
- data/test/rubygems/test_gem_resolver_specification.rb +0 -63
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
- data/test/rubygems/test_gem_security.rb +0 -341
- data/test/rubygems/test_gem_security_policy.rb +0 -535
- data/test/rubygems/test_gem_security_signer.rb +0 -218
- data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
- data/test/rubygems/test_gem_silent_ui.rb +0 -123
- data/test/rubygems/test_gem_source.rb +0 -254
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
- data/test/rubygems/test_gem_source_git.rb +0 -310
- data/test/rubygems/test_gem_source_installed.rb +0 -35
- data/test/rubygems/test_gem_source_list.rb +0 -119
- data/test/rubygems/test_gem_source_local.rb +0 -107
- data/test/rubygems/test_gem_source_lock.rb +0 -113
- data/test/rubygems/test_gem_source_specific_file.rb +0 -76
- data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
- data/test/rubygems/test_gem_source_vendor.rb +0 -30
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
- data/test/rubygems/test_gem_specification.rb +0 -3856
- data/test/rubygems/test_gem_stream_ui.rb +0 -255
- data/test/rubygems/test_gem_stub_specification.rb +0 -278
- data/test/rubygems/test_gem_text.rb +0 -103
- data/test/rubygems/test_gem_uninstaller.rb +0 -675
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
- data/test/rubygems/test_gem_update_suggestion.rb +0 -209
- data/test/rubygems/test_gem_uri.rb +0 -41
- data/test/rubygems/test_gem_uri_formatter.rb +0 -27
- data/test/rubygems/test_gem_util.rb +0 -91
- data/test/rubygems/test_gem_validator.rb +0 -42
- data/test/rubygems/test_gem_version.rb +0 -305
- data/test/rubygems/test_gem_version_option.rb +0 -165
- data/test/rubygems/test_kernel.rb +0 -124
- data/test/rubygems/test_project_sanity.rb +0 -49
- data/test/rubygems/test_remote_fetch_error.rb +0 -20
- data/test/rubygems/test_require.rb +0 -732
- data/test/rubygems/test_rubygems.rb +0 -76
- data/test/rubygems/test_webauthn_listener.rb +0 -143
- data/test/rubygems/test_webauthn_listener_response.rb +0 -93
- data/test/rubygems/test_webauthn_poller.rb +0 -124
- data/test/rubygems/utilities.rb +0 -436
- 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/command.rb
CHANGED
@@ -20,9 +20,7 @@ require_relative "user_interaction"
|
|
20
20
|
class Gem::Command
|
21
21
|
include Gem::UserInteraction
|
22
22
|
|
23
|
-
Gem::OptionParser.accept Symbol
|
24
|
-
value.to_sym
|
25
|
-
end
|
23
|
+
Gem::OptionParser.accept Symbol, &:to_sym
|
26
24
|
|
27
25
|
##
|
28
26
|
# The name of the command.
|
@@ -192,7 +190,7 @@ class Gem::Command
|
|
192
190
|
"Please specify at least one gem name (e.g. gem build GEMNAME)"
|
193
191
|
end
|
194
192
|
|
195
|
-
args.
|
193
|
+
args.reject {|arg| arg.start_with?("-") }
|
196
194
|
end
|
197
195
|
|
198
196
|
##
|
@@ -316,7 +314,7 @@ class Gem::Command
|
|
316
314
|
options[:build_args] = build_args
|
317
315
|
|
318
316
|
if options[:silent]
|
319
|
-
old_ui =
|
317
|
+
old_ui = ui
|
320
318
|
self.ui = ui = Gem::SilentUI.new
|
321
319
|
end
|
322
320
|
|
@@ -459,7 +457,7 @@ class Gem::Command
|
|
459
457
|
until extra.empty? do
|
460
458
|
ex = []
|
461
459
|
ex << extra.shift
|
462
|
-
ex << extra.shift if /^[^-]/.match?(extra.first.to_s)
|
460
|
+
ex << extra.shift if /^[^-]/.match?(extra.first.to_s)
|
463
461
|
result << ex if handles?(ex)
|
464
462
|
end
|
465
463
|
|
@@ -475,7 +473,7 @@ class Gem::Command
|
|
475
473
|
private
|
476
474
|
|
477
475
|
def option_is_deprecated?(option)
|
478
|
-
@deprecated_options[command].
|
476
|
+
@deprecated_options[command].key?(option)
|
479
477
|
end
|
480
478
|
|
481
479
|
def add_parser_description # :nodoc:
|
@@ -487,7 +485,7 @@ class Gem::Command
|
|
487
485
|
|
488
486
|
@parser.separator nil
|
489
487
|
@parser.separator " Description:"
|
490
|
-
formatted.
|
488
|
+
formatted.each_line do |line|
|
491
489
|
@parser.separator " #{line.rstrip}"
|
492
490
|
end
|
493
491
|
end
|
@@ -514,8 +512,8 @@ class Gem::Command
|
|
514
512
|
|
515
513
|
@parser.separator nil
|
516
514
|
@parser.separator " #{title}:"
|
517
|
-
content.
|
518
|
-
@parser.separator " #{line}"
|
515
|
+
content.each_line do |line|
|
516
|
+
@parser.separator " #{line.rstrip}"
|
519
517
|
end
|
520
518
|
end
|
521
519
|
|
@@ -524,7 +522,7 @@ class Gem::Command
|
|
524
522
|
|
525
523
|
@parser.separator nil
|
526
524
|
@parser.separator " Summary:"
|
527
|
-
wrap(@summary, 80 - 4).
|
525
|
+
wrap(@summary, 80 - 4).each_line do |line|
|
528
526
|
@parser.separator " #{line.strip}"
|
529
527
|
end
|
530
528
|
end
|
@@ -581,12 +579,12 @@ class Gem::Command
|
|
581
579
|
# Add the options common to all commands.
|
582
580
|
|
583
581
|
add_common_option("-h", "--help",
|
584
|
-
"Get help on this command") do |
|
582
|
+
"Get help on this command") do |_value, options|
|
585
583
|
options[:help] = true
|
586
584
|
end
|
587
585
|
|
588
586
|
add_common_option("-V", "--[no-]verbose",
|
589
|
-
"Set the verbose level of output") do |value,
|
587
|
+
"Set the verbose level of output") do |value, _options|
|
590
588
|
# Set us to "really verbose" so the progress meter works
|
591
589
|
if Gem.configuration.verbose && value
|
592
590
|
Gem.configuration.verbose = 1
|
@@ -595,12 +593,12 @@ class Gem::Command
|
|
595
593
|
end
|
596
594
|
end
|
597
595
|
|
598
|
-
add_common_option("-q", "--quiet", "Silence command progress meter") do |
|
596
|
+
add_common_option("-q", "--quiet", "Silence command progress meter") do |_value, _options|
|
599
597
|
Gem.configuration.verbose = false
|
600
598
|
end
|
601
599
|
|
602
600
|
add_common_option("--silent",
|
603
|
-
"Silence RubyGems output") do |
|
601
|
+
"Silence RubyGems output") do |_value, options|
|
604
602
|
options[:silent] = true
|
605
603
|
end
|
606
604
|
|
@@ -106,7 +106,7 @@ class Gem::CommandManager
|
|
106
106
|
# Register all the subcommands supported by the gem command.
|
107
107
|
|
108
108
|
def initialize
|
109
|
-
|
109
|
+
require_relative "timeout"
|
110
110
|
@commands = {}
|
111
111
|
|
112
112
|
BUILTIN_COMMANDS.each do |name|
|
@@ -141,7 +141,7 @@ class Gem::CommandManager
|
|
141
141
|
# Return a sorted list of all command names as strings.
|
142
142
|
|
143
143
|
def command_names
|
144
|
-
@commands.keys.collect
|
144
|
+
@commands.keys.collect(&:to_s).sort
|
145
145
|
end
|
146
146
|
|
147
147
|
##
|
@@ -149,7 +149,7 @@ class Gem::CommandManager
|
|
149
149
|
|
150
150
|
def run(args, build_args=nil)
|
151
151
|
process_args(args, build_args)
|
152
|
-
rescue StandardError, Timeout::Error => ex
|
152
|
+
rescue StandardError, Gem::Timeout::Error => ex
|
153
153
|
if ex.respond_to?(:detailed_message)
|
154
154
|
msg = ex.detailed_message(highlight: false).sub(/\A(.*?)(?: \(.+?\))/) { $1 }
|
155
155
|
else
|
@@ -238,7 +238,7 @@ class Gem::CommandManager
|
|
238
238
|
load_error = e
|
239
239
|
end
|
240
240
|
Gem::Commands.const_get(const_name).new
|
241
|
-
rescue
|
241
|
+
rescue StandardError => e
|
242
242
|
e = load_error if load_error
|
243
243
|
|
244
244
|
alert_error clean_text("Loading command: #{command_name} (#{e.class})\n\t#{e}")
|
@@ -249,6 +249,7 @@ class Gem::CommandManager
|
|
249
249
|
def invoke_command(args, build_args)
|
250
250
|
cmd_name = args.shift.downcase
|
251
251
|
cmd = find_command cmd_name
|
252
|
+
terminate_interaction 1 unless cmd
|
252
253
|
cmd.deprecation_warning if cmd.deprecated?
|
253
254
|
cmd.invoke_with_build_args args, build_args
|
254
255
|
end
|
@@ -12,11 +12,11 @@ class Gem::Commands::BuildCommand < Gem::Command
|
|
12
12
|
|
13
13
|
add_platform_option
|
14
14
|
|
15
|
-
add_option "--force", "skip validation of the spec" do |
|
15
|
+
add_option "--force", "skip validation of the spec" do |_value, options|
|
16
16
|
options[:force] = true
|
17
17
|
end
|
18
18
|
|
19
|
-
add_option "--strict", "consider warnings as errors when validating the spec" do |
|
19
|
+
add_option "--strict", "consider warnings as errors when validating the spec" do |_value, options|
|
20
20
|
options[:strict] = true
|
21
21
|
end
|
22
22
|
|
@@ -6,7 +6,7 @@ require_relative "../security"
|
|
6
6
|
class Gem::Commands::CertCommand < Gem::Command
|
7
7
|
def initialize
|
8
8
|
super "cert", "Manage RubyGems certificates and signing settings",
|
9
|
-
:
|
9
|
+
add: [], remove: [], list: [], build: [], sign: []
|
10
10
|
|
11
11
|
add_option("-a", "--add CERT",
|
12
12
|
"Add a trusted certificate.") do |cert_file, options|
|
@@ -263,7 +263,6 @@ For further reading on signing gems see `ri Gem::Security`.
|
|
263
263
|
key = File.read key_file
|
264
264
|
passphrase = ENV["GEM_PRIVATE_KEY_PASSPHRASE"]
|
265
265
|
options[:key] = OpenSSL::PKey.read key, passphrase
|
266
|
-
|
267
266
|
rescue Errno::ENOENT
|
268
267
|
alert_error \
|
269
268
|
"--private-key not specified and ~/.gem/gem-private_key.pem does not exist"
|
@@ -10,7 +10,7 @@ class Gem::Commands::CheckCommand < Gem::Command
|
|
10
10
|
|
11
11
|
def initialize
|
12
12
|
super "check", "Check a gem repository for added or missing files",
|
13
|
-
:
|
13
|
+
alien: true, doctor: false, dry_run: false, gems: true
|
14
14
|
|
15
15
|
add_option("-a", "--[no-]alien",
|
16
16
|
'Report "unmanaged" or rogue files in the',
|
@@ -48,14 +48,14 @@ class Gem::Commands::CheckCommand < Gem::Command
|
|
48
48
|
end
|
49
49
|
|
50
50
|
Gem::Validator.new.alien(gems).sort.each do |key, val|
|
51
|
-
|
51
|
+
if val.empty?
|
52
|
+
say "#{key} is error-free" if Gem.configuration.verbose
|
53
|
+
else
|
52
54
|
say "#{key} has #{val.size} problems"
|
53
55
|
val.each do |error_entry|
|
54
56
|
say " #{error_entry.path}:"
|
55
57
|
say " #{error_entry.problem}"
|
56
58
|
end
|
57
|
-
else
|
58
|
-
say "#{key} is error-free" if Gem.configuration.verbose
|
59
59
|
end
|
60
60
|
say
|
61
61
|
end
|
@@ -8,16 +8,16 @@ class Gem::Commands::CleanupCommand < Gem::Command
|
|
8
8
|
def initialize
|
9
9
|
super "cleanup",
|
10
10
|
"Clean up old versions of installed gems",
|
11
|
-
:
|
12
|
-
:
|
11
|
+
force: false, install_dir: Gem.dir,
|
12
|
+
check_dev: true
|
13
13
|
|
14
14
|
add_option("-n", "-d", "--dry-run",
|
15
|
-
"Do not uninstall gems") do |
|
15
|
+
"Do not uninstall gems") do |_value, options|
|
16
16
|
options[:dryrun] = true
|
17
17
|
end
|
18
18
|
|
19
19
|
add_option(:Deprecated, "--dryrun",
|
20
|
-
"Do not uninstall gems") do |
|
20
|
+
"Do not uninstall gems") do |_value, options|
|
21
21
|
options[:dryrun] = true
|
22
22
|
end
|
23
23
|
deprecate_option("--dryrun", extra_msg: "Use --dry-run instead")
|
@@ -75,7 +75,7 @@ If no gems are named all gems in GEM_HOME are cleaned.
|
|
75
75
|
until done do
|
76
76
|
clean_gems
|
77
77
|
|
78
|
-
this_set = @gems_to_cleanup.map
|
78
|
+
this_set = @gems_to_cleanup.map(&:full_name).sort
|
79
79
|
|
80
80
|
done = this_set.empty? || last_set == this_set
|
81
81
|
|
@@ -88,7 +88,7 @@ If no gems are named all gems in GEM_HOME are cleaned.
|
|
88
88
|
say "Clean up complete"
|
89
89
|
|
90
90
|
verbose do
|
91
|
-
skipped = @default_gems.map
|
91
|
+
skipped = @default_gems.map(&:full_name)
|
92
92
|
|
93
93
|
"Skipped default gems: #{skipped.join ", "}"
|
94
94
|
end
|
@@ -117,12 +117,12 @@ If no gems are named all gems in GEM_HOME are cleaned.
|
|
117
117
|
end
|
118
118
|
|
119
119
|
def get_candidate_gems
|
120
|
-
@candidate_gems =
|
120
|
+
@candidate_gems = if options[:args].empty?
|
121
|
+
Gem::Specification.to_a
|
122
|
+
else
|
121
123
|
options[:args].map do |gem_name|
|
122
124
|
Gem::Specification.find_all_by_name gem_name
|
123
125
|
end.flatten
|
124
|
-
else
|
125
|
-
Gem::Specification.to_a
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
@@ -131,9 +131,7 @@ If no gems are named all gems in GEM_HOME are cleaned.
|
|
131
131
|
@primary_gems[spec.name].version != spec.version
|
132
132
|
end
|
133
133
|
|
134
|
-
default_gems, gems_to_cleanup = gems_to_cleanup.partition
|
135
|
-
spec.default_gem?
|
136
|
-
end
|
134
|
+
default_gems, gems_to_cleanup = gems_to_cleanup.partition(&:default_gem?)
|
137
135
|
|
138
136
|
uninstall_from = options[:user_install] ? Gem.user_dir : @original_home
|
139
137
|
|
@@ -168,8 +166,8 @@ If no gems are named all gems in GEM_HOME are cleaned.
|
|
168
166
|
say "Attempting to uninstall #{spec.full_name}"
|
169
167
|
|
170
168
|
uninstall_options = {
|
171
|
-
:
|
172
|
-
:
|
169
|
+
executables: false,
|
170
|
+
version: "= #{spec.version}",
|
173
171
|
}
|
174
172
|
|
175
173
|
uninstall_options[:user_install] = Gem.user_dir == spec.base_dir
|
@@ -8,8 +8,8 @@ class Gem::Commands::ContentsCommand < Gem::Command
|
|
8
8
|
|
9
9
|
def initialize
|
10
10
|
super "contents", "Display the contents of the installed gems",
|
11
|
-
:
|
12
|
-
:
|
11
|
+
specdirs: [], lib_only: false, prefix: true,
|
12
|
+
show_install_dir: false
|
13
13
|
|
14
14
|
add_version_option
|
15
15
|
|
@@ -94,7 +94,7 @@ prefix or only the files that are requireable.
|
|
94
94
|
gem_path = spec.full_gem_path
|
95
95
|
extra = "/{#{spec.require_paths.join ","}}" if options[:lib_only]
|
96
96
|
glob = "#{gem_path}#{extra}/**/*"
|
97
|
-
prefix_re =
|
97
|
+
prefix_re = %r{#{Regexp.escape(gem_path)}/}
|
98
98
|
|
99
99
|
Dir[glob].map do |file|
|
100
100
|
[gem_path, file.sub(prefix_re, "")]
|
@@ -104,7 +104,7 @@ prefix or only the files that are requireable.
|
|
104
104
|
def files_in_default_gem(spec)
|
105
105
|
spec.files.map do |file|
|
106
106
|
case file
|
107
|
-
when
|
107
|
+
when %r{\A#{spec.bindir}/}
|
108
108
|
# $' is POSTMATCH
|
109
109
|
[RbConfig::CONFIG["bindir"], $']
|
110
110
|
when /\.so\z/
|
@@ -11,15 +11,14 @@ class Gem::Commands::DependencyCommand < Gem::Command
|
|
11
11
|
def initialize
|
12
12
|
super "dependency",
|
13
13
|
"Show the dependencies of an installed gem",
|
14
|
-
:
|
14
|
+
version: Gem::Requirement.default, domain: :local
|
15
15
|
|
16
16
|
add_version_option
|
17
17
|
add_platform_option
|
18
18
|
add_prerelease_option
|
19
19
|
|
20
20
|
add_option("-R", "--[no-]reverse-dependencies",
|
21
|
-
"Include reverse dependencies in the output") do
|
22
|
-
|value, options|
|
21
|
+
"Include reverse dependencies in the output") do |value, options|
|
23
22
|
options[:reverse_dependencies] = value
|
24
23
|
end
|
25
24
|
|
@@ -92,7 +91,7 @@ use with other commands.
|
|
92
91
|
def display_pipe(specs) # :nodoc:
|
93
92
|
specs.each do |spec|
|
94
93
|
next if spec.dependencies.empty?
|
95
|
-
spec.dependencies.sort_by
|
94
|
+
spec.dependencies.sort_by(&:name).each do |dep|
|
96
95
|
say "#{dep.name} --version '#{dep.requirement}'"
|
97
96
|
end
|
98
97
|
end
|
@@ -153,7 +152,7 @@ use with other commands.
|
|
153
152
|
response = String.new
|
154
153
|
response << " " * level + "Gem #{spec.full_name}\n"
|
155
154
|
unless spec.dependencies.empty?
|
156
|
-
spec.dependencies.sort_by
|
155
|
+
spec.dependencies.sort_by(&:name).each do |dep|
|
157
156
|
response << " " * level + " #{dep}\n"
|
158
157
|
end
|
159
158
|
end
|
@@ -108,9 +108,7 @@ lib/rubygems/defaults/operating_system.rb
|
|
108
108
|
|
109
109
|
out << " - RUBYGEMS VERSION: #{Gem::VERSION}\n"
|
110
110
|
|
111
|
-
out << " - RUBY VERSION: #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}"
|
112
|
-
out << " patchlevel #{RUBY_PATCHLEVEL}" if defined? RUBY_PATCHLEVEL
|
113
|
-
out << ") [#{RUBY_PLATFORM}]\n"
|
111
|
+
out << " - RUBY VERSION: #{RUBY_VERSION} (#{RUBY_RELEASE_DATE} patchlevel #{RUBY_PATCHLEVEL}) [#{RUBY_PLATFORM}]\n"
|
114
112
|
|
115
113
|
out << " - INSTALLATION DIRECTORY: #{Gem.dir}\n"
|
116
114
|
|
@@ -23,7 +23,7 @@ class Gem::Commands::ExecCommand < Gem::Command
|
|
23
23
|
|
24
24
|
add_option(:"Install/Update", "--conservative",
|
25
25
|
"Prefer the most recent installed version, ",
|
26
|
-
"rather than the latest version overall") do |
|
26
|
+
"rather than the latest version overall") do |_value, options|
|
27
27
|
options[:conservative] = true
|
28
28
|
end
|
29
29
|
end
|
@@ -10,8 +10,8 @@ class Gem::Commands::FetchCommand < Gem::Command
|
|
10
10
|
|
11
11
|
def initialize
|
12
12
|
defaults = {
|
13
|
-
:
|
14
|
-
:
|
13
|
+
suggest_alternate: true,
|
14
|
+
version: Gem::Requirement.default,
|
15
15
|
}
|
16
16
|
|
17
17
|
super "fetch", "Download a gem and place it in the current directory", defaults
|
@@ -1,86 +1,51 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative "../command"
|
4
|
-
require_relative "../indexer"
|
5
4
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
"Generates the index files for a gem server directory",
|
15
|
-
:directory => ".", :build_modern => true
|
5
|
+
unless defined? Gem::Commands::GenerateIndexCommand
|
6
|
+
class Gem::Commands::GenerateIndexCommand < Gem::Command
|
7
|
+
module RubygemsTrampoline
|
8
|
+
def description # :nodoc:
|
9
|
+
<<~EOF
|
10
|
+
The generate_index command has been moved to the rubygems-generate_index gem.
|
11
|
+
EOF
|
12
|
+
end
|
16
13
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
end
|
14
|
+
def execute
|
15
|
+
alert_error "Install the rubygems-generate_index gem for the generate_index command"
|
16
|
+
end
|
21
17
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
18
|
+
def invoke_with_build_args(args, build_args)
|
19
|
+
name = "rubygems-generate_index"
|
20
|
+
spec = begin
|
21
|
+
Gem::Specification.find_by_name(name)
|
22
|
+
rescue Gem::LoadError
|
23
|
+
require "rubygems/dependency_installer"
|
24
|
+
Gem.install(name, Gem::Requirement.default, Gem::DependencyInstaller::DEFAULT_OPTIONS).find {|s| s.name == name }
|
25
|
+
end
|
26
|
+
|
27
|
+
# remove the methods defined in this file so that the methods defined in the gem are used instead,
|
28
|
+
# and without a method redefinition warning
|
29
|
+
%w[description execute invoke_with_build_args].each do |method|
|
30
|
+
RubygemsTrampoline.remove_method(method)
|
31
|
+
end
|
32
|
+
self.class.singleton_class.remove_method(:new)
|
33
|
+
|
34
|
+
spec.activate
|
35
|
+
Gem.load_plugin_files spec.matches_for_glob("rubygems_plugin#{Gem.suffix_pattern}")
|
36
|
+
|
37
|
+
self.class.new.invoke_with_build_args(args, build_args)
|
38
|
+
end
|
26
39
|
end
|
40
|
+
private_constant :RubygemsTrampoline
|
27
41
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
"since the last update" do |value, options|
|
34
|
-
options[:update] = value
|
42
|
+
# remove_method(:initialize) warns, but removing new does not warn
|
43
|
+
def self.new
|
44
|
+
command = allocate
|
45
|
+
command.send(:initialize, "generate_index", "Generates the index files for a gem server directory (requires rubygems-generate_index)")
|
46
|
+
command
|
35
47
|
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def defaults_str # :nodoc:
|
39
|
-
"--directory . --modern"
|
40
|
-
end
|
41
|
-
|
42
|
-
def description # :nodoc:
|
43
|
-
<<-EOF
|
44
|
-
The generate_index command creates a set of indexes for serving gems
|
45
|
-
statically. The command expects a 'gems' directory under the path given to
|
46
|
-
the --directory option. The given directory will be the directory you serve
|
47
|
-
as the gem repository.
|
48
48
|
|
49
|
-
|
50
|
-
your HTTP server configuration (not /path/to/repo/gems).
|
51
|
-
|
52
|
-
When done, it will generate a set of files like this:
|
53
|
-
|
54
|
-
gems/*.gem # .gem files you want to
|
55
|
-
# index
|
56
|
-
|
57
|
-
specs.<version>.gz # specs index
|
58
|
-
latest_specs.<version>.gz # latest specs index
|
59
|
-
prerelease_specs.<version>.gz # prerelease specs index
|
60
|
-
quick/Marshal.<version>/<gemname>.gemspec.rz # Marshal quick index file
|
61
|
-
|
62
|
-
The .rz extension files are compressed with the inflate algorithm.
|
63
|
-
The Marshal version number comes from ruby's Marshal::MAJOR_VERSION and
|
64
|
-
Marshal::MINOR_VERSION constants. It is used to ensure compatibility.
|
65
|
-
EOF
|
66
|
-
end
|
67
|
-
|
68
|
-
def execute
|
69
|
-
# This is always true because it's the only way now.
|
70
|
-
options[:build_modern] = true
|
71
|
-
|
72
|
-
if !File.exist?(options[:directory]) ||
|
73
|
-
!File.directory?(options[:directory])
|
74
|
-
alert_error "unknown directory name #{options[:directory]}."
|
75
|
-
terminate_interaction 1
|
76
|
-
else
|
77
|
-
indexer = Gem::Indexer.new options.delete(:directory), options
|
78
|
-
|
79
|
-
if options[:update]
|
80
|
-
indexer.update_index
|
81
|
-
else
|
82
|
-
indexer.generate_index
|
83
|
-
end
|
84
|
-
end
|
49
|
+
prepend(RubygemsTrampoline)
|
85
50
|
end
|
86
51
|
end
|
@@ -324,7 +324,7 @@ platform.
|
|
324
324
|
|
325
325
|
margin_width = 4
|
326
326
|
|
327
|
-
desc_width = @command_manager.command_names.map
|
327
|
+
desc_width = @command_manager.command_names.map(&:size).max + 4
|
328
328
|
|
329
329
|
summary_width = 80 - margin_width - desc_width
|
330
330
|
wrap_indent = " " * (margin_width + desc_width)
|
@@ -333,7 +333,7 @@ platform.
|
|
333
333
|
@command_manager.command_names.each do |cmd_name|
|
334
334
|
command = @command_manager[cmd_name]
|
335
335
|
|
336
|
-
next if command
|
336
|
+
next if command&.deprecated?
|
337
337
|
|
338
338
|
summary =
|
339
339
|
if command
|
@@ -343,7 +343,7 @@ platform.
|
|
343
343
|
end
|
344
344
|
|
345
345
|
summary = wrap(summary, summary_width).split "\n"
|
346
|
-
out <<
|
346
|
+
out << format(format, cmd_name, summary.shift)
|
347
347
|
until summary.empty? do
|
348
348
|
out << "#{wrap_indent}#{summary.shift}"
|
349
349
|
end
|
@@ -8,8 +8,8 @@ class Gem::Commands::InfoCommand < Gem::Command
|
|
8
8
|
|
9
9
|
def initialize
|
10
10
|
super "info", "Show information for the given gem",
|
11
|
-
:
|
12
|
-
:
|
11
|
+
name: //, domain: :local, details: false, versions: true,
|
12
|
+
installed: nil, version: Gem::Requirement.default
|
13
13
|
|
14
14
|
add_query_options
|
15
15
|
|
@@ -23,11 +23,11 @@ class Gem::Commands::InstallCommand < Gem::Command
|
|
23
23
|
|
24
24
|
def initialize
|
25
25
|
defaults = Gem::DependencyInstaller::DEFAULT_OPTIONS.merge({
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
26
|
+
format_executable: false,
|
27
|
+
lock: true,
|
28
|
+
suggest_alternate: true,
|
29
|
+
version: Gem::Requirement.default,
|
30
|
+
without_groups: [],
|
31
31
|
})
|
32
32
|
|
33
33
|
defaults.merge!(install_update_options)
|
@@ -48,7 +48,7 @@ class Gem::Commands::InstallCommand < Gem::Command
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def defaults_str # :nodoc:
|
51
|
-
"--both --version '#{Gem::Requirement.default}' --no-force\n"
|
51
|
+
"--both --version '#{Gem::Requirement.default}' --no-force\n" \
|
52
52
|
"--install-dir #{Gem.dir} --lock\n" +
|
53
53
|
install_update_defaults_str
|
54
54
|
end
|
@@ -136,13 +136,6 @@ You can use `i` command instead of `install`.
|
|
136
136
|
"#{program_name} [options] GEMNAME [GEMNAME ...] -- --build-flags"
|
137
137
|
end
|
138
138
|
|
139
|
-
def check_install_dir # :nodoc:
|
140
|
-
if options[:install_dir] && options[:user_install]
|
141
|
-
alert_error "Use --install-dir or --user-install but not both"
|
142
|
-
terminate_interaction 1
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
139
|
def check_version # :nodoc:
|
147
140
|
if options[:version] != Gem::Requirement.default &&
|
148
141
|
get_all_gem_names.size > 1
|
@@ -162,7 +155,6 @@ You can use `i` command instead of `install`.
|
|
162
155
|
|
163
156
|
ENV.delete "GEM_PATH" if options[:install_dir].nil?
|
164
157
|
|
165
|
-
check_install_dir
|
166
158
|
check_version
|
167
159
|
|
168
160
|
load_hooks
|
@@ -171,7 +163,7 @@ You can use `i` command instead of `install`.
|
|
171
163
|
|
172
164
|
show_installed
|
173
165
|
|
174
|
-
say update_suggestion if
|
166
|
+
say update_suggestion if eligible_for_update?
|
175
167
|
|
176
168
|
terminate_interaction exit_code
|
177
169
|
end
|
@@ -263,7 +255,7 @@ You can use `i` command instead of `install`.
|
|
263
255
|
return unless errors
|
264
256
|
|
265
257
|
errors.each do |x|
|
266
|
-
|
258
|
+
next unless Gem::SourceFetchProblem === x
|
267
259
|
|
268
260
|
require_relative "../uri"
|
269
261
|
msg = "Unable to pull data from '#{Gem::Uri.redact(x.source.uri)}': #{x.error.message}"
|
@@ -11,8 +11,8 @@ class Gem::Commands::ListCommand < Gem::Command
|
|
11
11
|
|
12
12
|
def initialize
|
13
13
|
super "list", "Display local gems whose name matches REGEXP",
|
14
|
-
:
|
15
|
-
:
|
14
|
+
domain: :local, details: false, versions: true,
|
15
|
+
installed: nil, version: Gem::Requirement.default
|
16
16
|
|
17
17
|
add_query_options
|
18
18
|
end
|
@@ -5,7 +5,7 @@ require_relative "../command"
|
|
5
5
|
class Gem::Commands::LockCommand < Gem::Command
|
6
6
|
def initialize
|
7
7
|
super "lock", "Generate a lockdown list of gems",
|
8
|
-
:
|
8
|
+
strict: false
|
9
9
|
|
10
10
|
add_option "-s", "--[no-]strict",
|
11
11
|
"fail if unable to satisfy a dependency" do |strict, options|
|
@@ -39,7 +39,7 @@ permission to.
|
|
39
39
|
add_proxy_option
|
40
40
|
add_key_option
|
41
41
|
add_otp_option
|
42
|
-
defaults.merge! :
|
42
|
+
defaults.merge! add: [], remove: []
|
43
43
|
|
44
44
|
add_option "-a", "--add NEW_OWNER", "Add an owner by user identifier" do |value, options|
|
45
45
|
options[:add] << value
|