rubygems-update 3.3.18 → 3.3.22
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 +65 -0
- data/Manifest.txt +11 -0
- data/bin/gem +2 -2
- data/bin/update_rubygems +4 -4
- data/bundler/CHANGELOG.md +100 -0
- data/bundler/UPGRADING.md +11 -4
- data/bundler/bundler.gemspec +6 -8
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/common.rb +1 -0
- data/bundler/lib/bundler/cli/install.rb +5 -2
- data/bundler/lib/bundler/cli/outdated.rb +12 -3
- data/bundler/lib/bundler/cli/platform.rb +1 -1
- data/bundler/lib/bundler/cli.rb +7 -4
- data/bundler/lib/bundler/current_ruby.rb +14 -5
- data/bundler/lib/bundler/definition.rb +102 -31
- data/bundler/lib/bundler/dependency.rb +18 -85
- data/bundler/lib/bundler/dsl.rb +2 -2
- data/bundler/lib/bundler/endpoint_specification.rb +2 -13
- data/bundler/lib/bundler/feature_flag.rb +0 -1
- data/bundler/lib/bundler/fetcher.rb +6 -6
- data/bundler/lib/bundler/gem_helpers.rb +7 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +8 -18
- data/bundler/lib/bundler/index.rb +10 -12
- data/bundler/lib/bundler/injector.rb +2 -1
- data/bundler/lib/bundler/inline.rb +1 -1
- data/bundler/lib/bundler/installer/standalone.rb +1 -1
- data/bundler/lib/bundler/installer.rb +14 -12
- data/bundler/lib/bundler/lazy_specification.rb +30 -23
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/man/bundle-add.1 +6 -2
- data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +7 -1
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +25 -6
- data/bundler/lib/bundler/man/bundle-config.1.ronn +16 -6
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +2 -2
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +1 -1
- data/bundler/lib/bundler/man/bundle-init.1 +1 -1
- data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
- data/bundler/lib/bundler/man/bundle-install.1 +5 -1
- data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -0
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
- data/bundler/lib/bundler/man/bundle-open.1 +1 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +1 -1
- data/bundler/lib/bundler/man/bundle-update.1 +1 -1
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle.1 +15 -10
- data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
- data/bundler/lib/bundler/man/gemfile.5 +23 -47
- data/bundler/lib/bundler/man/gemfile.5.ronn +32 -43
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/plugin.rb +2 -0
- data/bundler/lib/bundler/remote_specification.rb +6 -11
- data/bundler/lib/bundler/resolver/base.rb +50 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +11 -8
- data/bundler/lib/bundler/resolver.rb +95 -90
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +5 -5
- data/bundler/lib/bundler/rubygems_ext.rb +52 -1
- data/bundler/lib/bundler/rubygems_gem_installer.rb +19 -12
- data/bundler/lib/bundler/settings.rb +1 -1
- data/bundler/lib/bundler/source/metadata.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +4 -0
- data/bundler/lib/bundler/spec_set.rb +48 -33
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler.rb +3 -3
- data/lib/rubygems/available_set.rb +3 -3
- data/lib/rubygems/basic_specification.rb +4 -4
- data/lib/rubygems/command.rb +25 -25
- data/lib/rubygems/command_manager.rb +9 -9
- data/lib/rubygems/commands/build_command.rb +8 -8
- data/lib/rubygems/commands/cert_command.rb +33 -33
- data/lib/rubygems/commands/check_command.rb +20 -20
- data/lib/rubygems/commands/cleanup_command.rb +17 -17
- data/lib/rubygems/commands/contents_command.rb +13 -13
- data/lib/rubygems/commands/dependency_command.rb +16 -16
- data/lib/rubygems/commands/environment_command.rb +5 -5
- data/lib/rubygems/commands/fetch_command.rb +8 -8
- data/lib/rubygems/commands/generate_index_command.rb +17 -17
- data/lib/rubygems/commands/help_command.rb +3 -3
- data/lib/rubygems/commands/info_command.rb +3 -3
- data/lib/rubygems/commands/install_command.rb +20 -20
- data/lib/rubygems/commands/list_command.rb +3 -3
- data/lib/rubygems/commands/lock_command.rb +4 -4
- data/lib/rubygems/commands/mirror_command.rb +3 -3
- data/lib/rubygems/commands/open_command.rb +9 -9
- data/lib/rubygems/commands/outdated_command.rb +5 -5
- data/lib/rubygems/commands/owner_command.rb +11 -11
- data/lib/rubygems/commands/pristine_command.rb +36 -36
- data/lib/rubygems/commands/push_command.rb +8 -8
- data/lib/rubygems/commands/query_command.rb +8 -8
- data/lib/rubygems/commands/rdoc_command.rb +17 -17
- data/lib/rubygems/commands/search_command.rb +3 -3
- data/lib/rubygems/commands/server_command.rb +3 -3
- data/lib/rubygems/commands/setup_command.rb +96 -106
- data/lib/rubygems/commands/signin_command.rb +9 -9
- data/lib/rubygems/commands/signout_command.rb +7 -7
- data/lib/rubygems/commands/sources_command.rb +21 -21
- data/lib/rubygems/commands/specification_command.rb +13 -13
- data/lib/rubygems/commands/stale_command.rb +2 -2
- data/lib/rubygems/commands/uninstall_command.rb +40 -40
- data/lib/rubygems/commands/unpack_command.rb +12 -12
- data/lib/rubygems/commands/update_command.rb +40 -56
- data/lib/rubygems/commands/which_command.rb +7 -7
- data/lib/rubygems/commands/yank_command.rb +11 -11
- data/lib/rubygems/config_file.rb +21 -21
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +1 -1
- 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 +16 -16
- data/lib/rubygems/dependency.rb +9 -9
- data/lib/rubygems/dependency_installer.rb +13 -13
- data/lib/rubygems/dependency_list.rb +6 -6
- data/lib/rubygems/doctor.rb +18 -18
- data/lib/rubygems/errors.rb +2 -2
- data/lib/rubygems/exceptions.rb +5 -5
- data/lib/rubygems/ext/build_error.rb +1 -1
- data/lib/rubygems/ext/builder.rb +16 -16
- data/lib/rubygems/ext/cargo_builder.rb +7 -7
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +1 -1
- data/lib/rubygems/ext/ext_conf_builder.rb +8 -8
- data/lib/rubygems/ext/rake_builder.rb +3 -3
- data/lib/rubygems/ext.rb +7 -7
- data/lib/rubygems/gem_runner.rb +5 -5
- data/lib/rubygems/gemcutter_utilities.rb +31 -28
- data/lib/rubygems/indexer.rb +27 -27
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +55 -55
- data/lib/rubygems/installer.rb +32 -40
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
- data/lib/rubygems/local_remote_options.rb +18 -20
- data/lib/rubygems/mock_gem_ui.rb +2 -2
- data/lib/rubygems/name_tuple.rb +4 -4
- data/lib/rubygems/optparse.rb +1 -1
- data/lib/rubygems/package/file_source.rb +2 -2
- data/lib/rubygems/package/old.rb +8 -8
- data/lib/rubygems/package/tar_header.rb +50 -50
- data/lib/rubygems/package/tar_reader/entry.rb +2 -2
- data/lib/rubygems/package/tar_reader.rb +1 -1
- data/lib/rubygems/package/tar_writer.rb +7 -7
- data/lib/rubygems/package.rb +54 -43
- data/lib/rubygems/package_task.rb +4 -4
- data/lib/rubygems/platform.rb +66 -55
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/query_utils.rb +35 -35
- data/lib/rubygems/rdoc.rb +2 -2
- data/lib/rubygems/remote_fetcher.rb +22 -22
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +1 -1
- data/lib/rubygems/request.rb +22 -22
- data/lib/rubygems/request_set/gem_dependency_api.rb +18 -18
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -26
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +4 -4
- data/lib/rubygems/request_set/lockfile.rb +5 -5
- data/lib/rubygems/request_set.rb +17 -17
- data/lib/rubygems/requirement.rb +6 -6
- data/lib/rubygems/resolver/activation_request.rb +3 -3
- data/lib/rubygems/resolver/api_set.rb +4 -4
- data/lib/rubygems/resolver/api_specification.rb +6 -6
- data/lib/rubygems/resolver/best_set.rb +5 -5
- data/lib/rubygems/resolver/conflict.rb +10 -10
- data/lib/rubygems/resolver/dependency_request.rb +2 -2
- data/lib/rubygems/resolver/git_set.rb +2 -2
- data/lib/rubygems/resolver/git_specification.rb +6 -6
- data/lib/rubygems/resolver/index_set.rb +3 -3
- data/lib/rubygems/resolver/index_specification.rb +6 -5
- data/lib/rubygems/resolver/installed_specification.rb +4 -4
- data/lib/rubygems/resolver/installer_set.rb +11 -16
- data/lib/rubygems/resolver/local_specification.rb +2 -2
- data/lib/rubygems/resolver/lock_set.rb +4 -4
- data/lib/rubygems/resolver/lock_specification.rb +4 -4
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/specification.rb +1 -1
- data/lib/rubygems/resolver/vendor_set.rb +1 -1
- data/lib/rubygems/resolver/vendor_specification.rb +3 -3
- data/lib/rubygems/resolver.rb +39 -39
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_yaml.rb +2 -2
- data/lib/rubygems/security/policies.rb +11 -11
- data/lib/rubygems/security/policy.rb +18 -18
- data/lib/rubygems/security/signer.rb +5 -5
- data/lib/rubygems/security/trust_dir.rb +3 -3
- data/lib/rubygems/security.rb +28 -28
- data/lib/rubygems/security_option.rb +5 -5
- data/lib/rubygems/source/git.rb +21 -21
- data/lib/rubygems/source/installed.rb +1 -1
- data/lib/rubygems/source/local.rb +2 -2
- data/lib/rubygems/source/specific_file.rb +1 -1
- data/lib/rubygems/source.rb +16 -16
- data/lib/rubygems/spec_fetcher.rb +9 -9
- data/lib/rubygems/specification.rb +63 -62
- data/lib/rubygems/specification_policy.rb +15 -15
- data/lib/rubygems/stub_specification.rb +5 -5
- data/lib/rubygems/tsort.rb +1 -1
- data/lib/rubygems/uninstaller.rb +18 -18
- data/lib/rubygems/uri.rb +4 -4
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +33 -19
- data/lib/rubygems/util/licenses.rb +3 -3
- data/lib/rubygems/util.rb +10 -10
- data/lib/rubygems/validator.rb +5 -5
- data/lib/rubygems/version.rb +15 -9
- data/lib/rubygems/version_option.rb +3 -3
- data/lib/rubygems.rb +62 -61
- data/rubygems-update.gemspec +2 -2
- data/setup.rb +9 -9
- data/test/rubygems/helper.rb +132 -134
- data/test/rubygems/installer_test_case.rb +13 -13
- data/test/rubygems/package/tar_test_case.rb +2 -2
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/rubygems_plugin.rb +2 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
- data/test/rubygems/test_bundled_ca.rb +10 -10
- data/test/rubygems/test_config.rb +3 -3
- data/test/rubygems/test_deprecate.rb +3 -3
- data/test/rubygems/test_exit.rb +2 -2
- data/test/rubygems/test_gem.rb +342 -342
- data/test/rubygems/test_gem_available_set.rb +21 -21
- data/test/rubygems/test_gem_bundler_version_finder.rb +1 -1
- data/test/rubygems/test_gem_command.rb +44 -44
- data/test/rubygems/test_gem_command_manager.rb +29 -29
- data/test/rubygems/test_gem_commands_build_command.rb +63 -63
- data/test/rubygems/test_gem_commands_cert_command.rb +97 -99
- data/test/rubygems/test_gem_commands_check_command.rb +4 -4
- data/test/rubygems/test_gem_commands_cleanup_command.rb +40 -40
- data/test/rubygems/test_gem_commands_contents_command.rb +27 -27
- data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
- data/test/rubygems/test_gem_commands_environment_command.rb +16 -16
- data/test/rubygems/test_gem_commands_fetch_command.rb +37 -37
- data/test/rubygems/test_gem_commands_generate_index_command.rb +7 -7
- data/test/rubygems/test_gem_commands_help_command.rb +13 -13
- data/test/rubygems/test_gem_commands_info_command.rb +28 -2
- data/test/rubygems/test_gem_commands_install_command.rb +131 -131
- data/test/rubygems/test_gem_commands_list_command.rb +4 -4
- data/test/rubygems/test_gem_commands_lock_command.rb +10 -10
- data/test/rubygems/test_gem_commands_mirror.rb +2 -2
- data/test/rubygems/test_gem_commands_open_command.rb +4 -4
- data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
- data/test/rubygems/test_gem_commands_owner_command.rb +41 -41
- data/test/rubygems/test_gem_commands_pristine_command.rb +92 -92
- data/test/rubygems/test_gem_commands_push_command.rb +54 -54
- data/test/rubygems/test_gem_commands_query_command.rb +73 -73
- data/test/rubygems/test_gem_commands_search_command.rb +2 -2
- data/test/rubygems/test_gem_commands_server_command.rb +2 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +119 -85
- data/test/rubygems/test_gem_commands_signin_command.rb +45 -31
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +28 -29
- data/test/rubygems/test_gem_commands_specification_command.rb +32 -32
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -4
- data/test/rubygems/test_gem_commands_uninstall_command.rb +75 -75
- data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
- data/test/rubygems/test_gem_commands_update_command.rb +89 -89
- data/test/rubygems/test_gem_commands_which_command.rb +6 -6
- data/test/rubygems/test_gem_commands_yank_command.rb +40 -40
- data/test/rubygems/test_gem_config_file.rb +93 -81
- data/test/rubygems/test_gem_dependency.rb +73 -73
- data/test/rubygems/test_gem_dependency_installer.rb +165 -165
- data/test/rubygems/test_gem_dependency_list.rb +47 -47
- data/test/rubygems/test_gem_dependency_resolution_error.rb +4 -4
- data/test/rubygems/test_gem_doctor.rb +26 -26
- data/test/rubygems/test_gem_ext_builder.rb +59 -59
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +6 -6
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +8 -8
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +6 -6
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +8 -8
- data/test/rubygems/test_gem_ext_cargo_builder.rb +26 -26
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +3 -3
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +23 -23
- data/test/rubygems/test_gem_ext_cmake_builder.rb +15 -15
- data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
- data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
- data/test/rubygems/test_gem_gem_runner.rb +7 -7
- data/test/rubygems/test_gem_gemcutter_utilities.rb +66 -66
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
- data/test/rubygems/test_gem_indexer.rb +48 -48
- data/test/rubygems/test_gem_install_update_options.rb +16 -16
- data/test/rubygems/test_gem_installer.rb +303 -300
- data/test/rubygems/test_gem_local_remote_options.rb +10 -10
- data/test/rubygems/test_gem_name_tuple.rb +4 -4
- data/test/rubygems/test_gem_package.rb +228 -206
- data/test/rubygems/test_gem_package_old.rb +13 -13
- data/test/rubygems/test_gem_package_tar_header.rb +42 -42
- data/test/rubygems/test_gem_package_tar_reader.rb +8 -8
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +10 -10
- data/test/rubygems/test_gem_package_tar_writer.rb +76 -76
- data/test/rubygems/test_gem_package_task.rb +18 -18
- data/test/rubygems/test_gem_path_support.rb +14 -14
- data/test/rubygems/test_gem_platform.rb +298 -227
- data/test/rubygems/test_gem_rdoc.rb +14 -14
- data/test/rubygems/test_gem_remote_fetcher.rb +149 -149
- data/test/rubygems/test_gem_request.rb +55 -55
- data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
- data/test/rubygems/test_gem_request_set.rb +99 -99
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +204 -206
- data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +56 -56
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
- data/test/rubygems/test_gem_requirement.rb +47 -41
- data/test/rubygems/test_gem_resolver.rb +133 -99
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -6
- data/test/rubygems/test_gem_resolver_api_set.rb +33 -33
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -47
- data/test/rubygems/test_gem_resolver_best_set.rb +22 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -12
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -15
- data/test/rubygems/test_gem_resolver_git_set.rb +21 -21
- data/test/rubygems/test_gem_resolver_git_specification.rb +21 -21
- data/test/rubygems/test_gem_resolver_index_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -16
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -5
- data/test/rubygems/test_gem_resolver_installer_set.rb +78 -34
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -7
- data/test/rubygems/test_gem_resolver_lock_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -17
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
- data/test/rubygems/test_gem_resolver_specification.rb +8 -8
- data/test/rubygems/test_gem_resolver_vendor_set.rb +6 -6
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -10
- data/test/rubygems/test_gem_security.rb +67 -67
- data/test/rubygems/test_gem_security_policy.rb +62 -62
- data/test/rubygems/test_gem_security_signer.rb +28 -28
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -4
- data/test/rubygems/test_gem_silent_ui.rb +38 -32
- data/test/rubygems/test_gem_source.rb +44 -44
- data/test/rubygems/test_gem_source_fetch_problem.rb +9 -9
- data/test/rubygems/test_gem_source_git.rb +59 -59
- data/test/rubygems/test_gem_source_installed.rb +16 -16
- data/test/rubygems/test_gem_source_list.rb +5 -5
- data/test/rubygems/test_gem_source_local.rb +14 -14
- data/test/rubygems/test_gem_source_lock.rb +31 -31
- data/test/rubygems/test_gem_source_specific_file.rb +17 -17
- data/test/rubygems/test_gem_source_subpath_problem.rb +7 -7
- data/test/rubygems/test_gem_source_vendor.rb +13 -13
- data/test/rubygems/test_gem_spec_fetcher.rb +72 -72
- data/test/rubygems/test_gem_specification.rb +444 -436
- data/test/rubygems/test_gem_stream_ui.rb +19 -19
- data/test/rubygems/test_gem_stub_specification.rb +32 -32
- data/test/rubygems/test_gem_text.rb +1 -1
- data/test/rubygems/test_gem_uninstaller.rb +112 -112
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
- data/test/rubygems/test_gem_uri.rb +4 -4
- data/test/rubygems/test_gem_uri_formatter.rb +14 -14
- data/test/rubygems/test_gem_util.rb +23 -23
- data/test/rubygems/test_gem_validator.rb +8 -8
- data/test/rubygems/test_gem_version.rb +22 -15
- data/test/rubygems/test_gem_version_option.rb +15 -15
- data/test/rubygems/test_kernel.rb +31 -31
- data/test/rubygems/test_project_sanity.rb +1 -1
- data/test/rubygems/test_remote_fetch_error.rb +6 -6
- data/test/rubygems/test_require.rb +43 -43
- data/test/rubygems/test_rubygems.rb +8 -8
- data/test/rubygems/utilities.rb +19 -19
- metadata +14 -3
data/lib/rubygems/config_file.rb
CHANGED
@@ -5,8 +5,8 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
require_relative
|
9
|
-
require
|
8
|
+
require_relative "user_interaction"
|
9
|
+
require "rbconfig"
|
10
10
|
|
11
11
|
##
|
12
12
|
# Gem::ConfigFile RubyGems options and gem command options from gemrc.
|
@@ -39,7 +39,7 @@ require 'rbconfig'
|
|
39
39
|
class Gem::ConfigFile
|
40
40
|
include Gem::UserInteraction
|
41
41
|
|
42
|
-
DEFAULT_BACKTRACE =
|
42
|
+
DEFAULT_BACKTRACE = true
|
43
43
|
DEFAULT_BULK_THRESHOLD = 1000
|
44
44
|
DEFAULT_VERBOSITY = true
|
45
45
|
DEFAULT_UPDATE_SOURCES = true
|
@@ -71,7 +71,7 @@ class Gem::ConfigFile
|
|
71
71
|
|
72
72
|
# :startdoc:
|
73
73
|
|
74
|
-
SYSTEM_WIDE_CONFIG_FILE = File.join SYSTEM_CONFIG_PATH,
|
74
|
+
SYSTEM_WIDE_CONFIG_FILE = File.join SYSTEM_CONFIG_PATH, "gemrc"
|
75
75
|
|
76
76
|
##
|
77
77
|
# List of arguments supplied to the config file object.
|
@@ -182,20 +182,20 @@ class Gem::ConfigFile
|
|
182
182
|
@update_sources = DEFAULT_UPDATE_SOURCES
|
183
183
|
@concurrent_downloads = DEFAULT_CONCURRENT_DOWNLOADS
|
184
184
|
@cert_expiration_length_days = DEFAULT_CERT_EXPIRATION_LENGTH_DAYS
|
185
|
-
@ipv4_fallback_enabled = ENV[
|
185
|
+
@ipv4_fallback_enabled = ENV["IPV4_FALLBACK_ENABLED"] == "true" || DEFAULT_IPV4_FALLBACK_ENABLED
|
186
186
|
|
187
187
|
operating_system_config = Marshal.load Marshal.dump(OPERATING_SYSTEM_DEFAULTS)
|
188
188
|
platform_config = Marshal.load Marshal.dump(PLATFORM_DEFAULTS)
|
189
189
|
system_config = load_file SYSTEM_WIDE_CONFIG_FILE
|
190
190
|
user_config = load_file config_file_name.dup.tap(&Gem::UNTAINT)
|
191
191
|
|
192
|
-
environment_config = (ENV[
|
192
|
+
environment_config = (ENV["GEMRC"] || "")
|
193
193
|
.split(File::PATH_SEPARATOR).inject({}) do |result, file|
|
194
194
|
result.merge load_file file
|
195
195
|
end
|
196
196
|
|
197
197
|
@hash = operating_system_config.merge platform_config
|
198
|
-
unless args.index
|
198
|
+
unless args.index "--norc"
|
199
199
|
@hash = @hash.merge system_config
|
200
200
|
@hash = @hash.merge user_config
|
201
201
|
@hash = @hash.merge environment_config
|
@@ -269,7 +269,7 @@ if you believe they were disclosed to a third party.
|
|
269
269
|
# Location of RubyGems.org credentials
|
270
270
|
|
271
271
|
def credentials_path
|
272
|
-
credentials = File.join Gem.user_home,
|
272
|
+
credentials = File.join Gem.user_home, ".gem", "credentials"
|
273
273
|
if File.exist? credentials
|
274
274
|
credentials
|
275
275
|
else
|
@@ -320,13 +320,13 @@ if you believe they were disclosed to a third party.
|
|
320
320
|
config = load_file(credentials_path).merge(host => api_key)
|
321
321
|
|
322
322
|
dirname = File.dirname credentials_path
|
323
|
-
require
|
323
|
+
require "fileutils"
|
324
324
|
FileUtils.mkdir_p(dirname)
|
325
325
|
|
326
326
|
Gem.load_yaml
|
327
327
|
|
328
328
|
permissions = 0600 & (~File.umask)
|
329
|
-
File.open(credentials_path,
|
329
|
+
File.open(credentials_path, "w", permissions) do |f|
|
330
330
|
f.write config.to_yaml
|
331
331
|
end
|
332
332
|
|
@@ -368,7 +368,7 @@ if you believe they were disclosed to a third party.
|
|
368
368
|
|
369
369
|
# True if the backtrace option has been specified, or debug is on.
|
370
370
|
def backtrace
|
371
|
-
@backtrace
|
371
|
+
@backtrace || $DEBUG
|
372
372
|
end
|
373
373
|
|
374
374
|
# The name of the configuration file.
|
@@ -389,7 +389,7 @@ if you believe they were disclosed to a third party.
|
|
389
389
|
yield :backtrace, @backtrace
|
390
390
|
yield :bulk_threshold, @bulk_threshold
|
391
391
|
|
392
|
-
yield
|
392
|
+
yield "config_file_name", @config_file_name if @config_file_name
|
393
393
|
|
394
394
|
hash.each(&block)
|
395
395
|
end
|
@@ -405,7 +405,7 @@ if you believe they were disclosed to a third party.
|
|
405
405
|
when /^--debug$/ then
|
406
406
|
$DEBUG = true
|
407
407
|
|
408
|
-
warn
|
408
|
+
warn "NOTE: Debugging mode prints all exceptions even when rescued"
|
409
409
|
else
|
410
410
|
@args << arg
|
411
411
|
end
|
@@ -444,7 +444,7 @@ if you believe they were disclosed to a third party.
|
|
444
444
|
@hash[:ssl_client_cert] if @hash.key? :ssl_client_cert
|
445
445
|
|
446
446
|
keys = yaml_hash.keys.map {|key| key.to_s }
|
447
|
-
keys <<
|
447
|
+
keys << "debug"
|
448
448
|
re = Regexp.union(*keys)
|
449
449
|
|
450
450
|
@hash.each do |key, value|
|
@@ -458,10 +458,10 @@ if you believe they were disclosed to a third party.
|
|
458
458
|
|
459
459
|
# Writes out this config file, replacing its source.
|
460
460
|
def write
|
461
|
-
require
|
461
|
+
require "fileutils"
|
462
462
|
FileUtils.mkdir_p File.dirname(config_file_name)
|
463
463
|
|
464
|
-
File.open config_file_name,
|
464
|
+
File.open config_file_name, "w" do |io|
|
465
465
|
io.write to_yaml
|
466
466
|
end
|
467
467
|
end
|
@@ -477,11 +477,11 @@ if you believe they were disclosed to a third party.
|
|
477
477
|
end
|
478
478
|
|
479
479
|
def ==(other) # :nodoc:
|
480
|
-
self.class === other
|
481
|
-
@backtrace == other.backtrace
|
482
|
-
@bulk_threshold == other.bulk_threshold
|
483
|
-
@verbose == other.verbose
|
484
|
-
@update_sources == other.update_sources
|
480
|
+
self.class === other &&
|
481
|
+
@backtrace == other.backtrace &&
|
482
|
+
@bulk_threshold == other.bulk_threshold &&
|
483
|
+
@verbose == other.verbose &&
|
484
|
+
@update_sources == other.update_sources &&
|
485
485
|
@hash == other.hash
|
486
486
|
end
|
487
487
|
|
@@ -39,7 +39,7 @@ module Kernel
|
|
39
39
|
# GEM_SKIP=libA:libB ruby -I../libA -I../libB ./mycode.rb
|
40
40
|
|
41
41
|
def gem(gem_name, *requirements) # :doc:
|
42
|
-
skip_list = (ENV[
|
42
|
+
skip_list = (ENV["GEM_SKIP"] || "").split(/:/)
|
43
43
|
raise Gem::LoadError, "skipping #{gem_name}" if skip_list.include? gem_name
|
44
44
|
|
45
45
|
if gem_name.kind_of? Gem::Dependency
|
@@ -39,7 +39,7 @@ if RUBY_VERSION >= "2.5" && !Gem::KERNEL_WARN_IGNORES_INTERNAL_ENTRIES
|
|
39
39
|
start += 1
|
40
40
|
|
41
41
|
if path = loc.path
|
42
|
-
unless path.start_with?(rubygems_path)
|
42
|
+
unless path.start_with?(rubygems_path) || path.start_with?("<internal:")
|
43
43
|
# Non-rubygems frames
|
44
44
|
uplevel -= 1
|
45
45
|
end
|
data/lib/rubygems/defaults.rb
CHANGED
@@ -20,10 +20,10 @@ module Gem
|
|
20
20
|
# specified in the environment
|
21
21
|
|
22
22
|
def self.default_spec_cache_dir
|
23
|
-
default_spec_cache_dir = File.join Gem.user_home,
|
23
|
+
default_spec_cache_dir = File.join Gem.user_home, ".gem", "specs"
|
24
24
|
|
25
25
|
unless File.exist?(default_spec_cache_dir)
|
26
|
-
default_spec_cache_dir = File.join Gem.data_home,
|
26
|
+
default_spec_cache_dir = File.join Gem.data_home, "gem", "specs"
|
27
27
|
end
|
28
28
|
|
29
29
|
default_spec_cache_dir
|
@@ -34,7 +34,7 @@ module Gem
|
|
34
34
|
# specified in the environment
|
35
35
|
|
36
36
|
def self.default_dir
|
37
|
-
@default_dir ||= File.join(RbConfig::CONFIG[
|
37
|
+
@default_dir ||= File.join(RbConfig::CONFIG["rubylibprefix"], "gems", RbConfig::CONFIG["ruby_version"])
|
38
38
|
end
|
39
39
|
|
40
40
|
##
|
@@ -81,7 +81,7 @@ module Gem
|
|
81
81
|
Dir.home.dup
|
82
82
|
rescue
|
83
83
|
if Gem.win_platform?
|
84
|
-
File.expand_path File.join(ENV[
|
84
|
+
File.expand_path File.join(ENV["HOMEDRIVE"] || ENV["SystemDrive"], "/")
|
85
85
|
else
|
86
86
|
File.expand_path "/"
|
87
87
|
end
|
@@ -103,7 +103,7 @@ module Gem
|
|
103
103
|
gem_dir = File.join(Gem.user_home, ".gem")
|
104
104
|
gem_dir = File.join(Gem.data_home, "gem") unless File.exist?(gem_dir)
|
105
105
|
parts = [gem_dir, ruby_engine]
|
106
|
-
parts << RbConfig::CONFIG[
|
106
|
+
parts << RbConfig::CONFIG["ruby_version"] unless RbConfig::CONFIG["ruby_version"].empty?
|
107
107
|
File.join parts
|
108
108
|
end
|
109
109
|
|
@@ -111,14 +111,14 @@ module Gem
|
|
111
111
|
# The path to standard location of the user's configuration directory.
|
112
112
|
|
113
113
|
def self.config_home
|
114
|
-
@config_home ||= (ENV["XDG_CONFIG_HOME"] || File.join(Gem.user_home,
|
114
|
+
@config_home ||= (ENV["XDG_CONFIG_HOME"] || File.join(Gem.user_home, ".config"))
|
115
115
|
end
|
116
116
|
|
117
117
|
##
|
118
118
|
# Finds the user's config file
|
119
119
|
|
120
120
|
def self.find_config_file
|
121
|
-
gemrc = File.join Gem.user_home,
|
121
|
+
gemrc = File.join Gem.user_home, ".gemrc"
|
122
122
|
if File.exist? gemrc
|
123
123
|
gemrc
|
124
124
|
else
|
@@ -137,14 +137,14 @@ module Gem
|
|
137
137
|
# The path to standard location of the user's cache directory.
|
138
138
|
|
139
139
|
def self.cache_home
|
140
|
-
@cache_home ||= (ENV["XDG_CACHE_HOME"] || File.join(Gem.user_home,
|
140
|
+
@cache_home ||= (ENV["XDG_CACHE_HOME"] || File.join(Gem.user_home, ".cache"))
|
141
141
|
end
|
142
142
|
|
143
143
|
##
|
144
144
|
# The path to standard location of the user's data directory.
|
145
145
|
|
146
146
|
def self.data_home
|
147
|
-
@data_home ||= (ENV["XDG_DATA_HOME"] || File.join(Gem.user_home,
|
147
|
+
@data_home ||= (ENV["XDG_DATA_HOME"] || File.join(Gem.user_home, ".local", "share"))
|
148
148
|
end
|
149
149
|
|
150
150
|
##
|
@@ -161,7 +161,7 @@ module Gem
|
|
161
161
|
path = []
|
162
162
|
path << user_dir if user_home && File.exist?(user_home)
|
163
163
|
path << default_dir
|
164
|
-
path << vendor_dir if vendor_dir
|
164
|
+
path << vendor_dir if vendor_dir && File.directory?(vendor_dir)
|
165
165
|
path
|
166
166
|
end
|
167
167
|
|
@@ -169,7 +169,7 @@ module Gem
|
|
169
169
|
# Deduce Ruby's --program-prefix and --program-suffix from its install name
|
170
170
|
|
171
171
|
def self.default_exec_format
|
172
|
-
exec_format = RbConfig::CONFIG[
|
172
|
+
exec_format = RbConfig::CONFIG["ruby_install_name"].sub("ruby", "%s") rescue "%s"
|
173
173
|
|
174
174
|
unless exec_format =~ /%s/
|
175
175
|
raise Gem::Exception,
|
@@ -183,7 +183,7 @@ module Gem
|
|
183
183
|
# The default directory for binaries
|
184
184
|
|
185
185
|
def self.default_bindir
|
186
|
-
RbConfig::CONFIG[
|
186
|
+
RbConfig::CONFIG["bindir"]
|
187
187
|
end
|
188
188
|
|
189
189
|
def self.ruby_engine
|
@@ -227,14 +227,14 @@ module Gem
|
|
227
227
|
# Directory where vendor gems are installed.
|
228
228
|
|
229
229
|
def self.vendor_dir # :nodoc:
|
230
|
-
if vendor_dir = ENV[
|
230
|
+
if vendor_dir = ENV["GEM_VENDOR"]
|
231
231
|
return vendor_dir.dup
|
232
232
|
end
|
233
233
|
|
234
|
-
return nil unless RbConfig::CONFIG.key?
|
234
|
+
return nil unless RbConfig::CONFIG.key? "vendordir"
|
235
235
|
|
236
|
-
File.join RbConfig::CONFIG[
|
237
|
-
RbConfig::CONFIG[
|
236
|
+
File.join RbConfig::CONFIG["vendordir"], "gems",
|
237
|
+
RbConfig::CONFIG["ruby_version"]
|
238
238
|
end
|
239
239
|
|
240
240
|
##
|
data/lib/rubygems/dependency.rb
CHANGED
@@ -97,14 +97,14 @@ class Gem::Dependency
|
|
97
97
|
end
|
98
98
|
|
99
99
|
def pretty_print(q) # :nodoc:
|
100
|
-
q.group 1,
|
100
|
+
q.group 1, "Gem::Dependency.new(", ")" do
|
101
101
|
q.pp name
|
102
|
-
q.text
|
102
|
+
q.text ","
|
103
103
|
q.breakable
|
104
104
|
|
105
105
|
q.pp requirement
|
106
106
|
|
107
|
-
q.text
|
107
|
+
q.text ","
|
108
108
|
q.breakable
|
109
109
|
|
110
110
|
q.pp type
|
@@ -115,7 +115,7 @@ class Gem::Dependency
|
|
115
115
|
# What does this dependency require?
|
116
116
|
|
117
117
|
def requirement
|
118
|
-
return @requirement if defined?(@requirement)
|
118
|
+
return @requirement if defined?(@requirement) && @requirement
|
119
119
|
|
120
120
|
# @version_requirements and @version_requirement are legacy ivar
|
121
121
|
# names, and supported here because older gems need to keep
|
@@ -197,7 +197,7 @@ class Gem::Dependency
|
|
197
197
|
reqs = other.requirement.requirements
|
198
198
|
|
199
199
|
return false unless reqs.length == 1
|
200
|
-
return false unless reqs.first.first ==
|
200
|
+
return false unless reqs.first.first == "="
|
201
201
|
|
202
202
|
version = reqs.first.last
|
203
203
|
|
@@ -230,10 +230,10 @@ class Gem::Dependency
|
|
230
230
|
|
231
231
|
version = Gem::Version.new version
|
232
232
|
|
233
|
-
return true if requirement.none?
|
234
|
-
return false if version.prerelease?
|
235
|
-
|
236
|
-
|
233
|
+
return true if requirement.none? && !version.prerelease?
|
234
|
+
return false if version.prerelease? &&
|
235
|
+
!allow_prerelease &&
|
236
|
+
!prerelease?
|
237
237
|
|
238
238
|
requirement.satisfied_by? version
|
239
239
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require_relative
|
4
|
-
require_relative
|
5
|
-
require_relative
|
6
|
-
require_relative
|
7
|
-
require_relative
|
8
|
-
require_relative
|
9
|
-
require_relative
|
2
|
+
require_relative "../rubygems"
|
3
|
+
require_relative "dependency_list"
|
4
|
+
require_relative "package"
|
5
|
+
require_relative "installer"
|
6
|
+
require_relative "spec_fetcher"
|
7
|
+
require_relative "user_interaction"
|
8
|
+
require_relative "available_set"
|
9
|
+
require_relative "deprecate"
|
10
10
|
|
11
11
|
##
|
12
12
|
# Installs a gem along with all its dependencies from local and remote gems.
|
@@ -109,7 +109,7 @@ class Gem::DependencyInstaller
|
|
109
109
|
# gems should be considered.
|
110
110
|
|
111
111
|
def consider_local?
|
112
|
-
@domain == :both
|
112
|
+
@domain == :both || @domain == :local
|
113
113
|
end
|
114
114
|
|
115
115
|
##
|
@@ -117,7 +117,7 @@ class Gem::DependencyInstaller
|
|
117
117
|
# gems should be considered.
|
118
118
|
|
119
119
|
def consider_remote?
|
120
|
-
@domain == :both
|
120
|
+
@domain == :both || @domain == :remote
|
121
121
|
end
|
122
122
|
|
123
123
|
##
|
@@ -197,7 +197,7 @@ class Gem::DependencyInstaller
|
|
197
197
|
|
198
198
|
def in_background(what) # :nodoc:
|
199
199
|
fork_happened = false
|
200
|
-
if @build_docs_in_background
|
200
|
+
if @build_docs_in_background && Process.respond_to?(:fork)
|
201
201
|
begin
|
202
202
|
Process.fork do
|
203
203
|
yield
|
@@ -268,7 +268,7 @@ class Gem::DependencyInstaller
|
|
268
268
|
end
|
269
269
|
|
270
270
|
def install_development_deps # :nodoc:
|
271
|
-
if @development
|
271
|
+
if @development && @dev_shallow
|
272
272
|
:shallow
|
273
273
|
elsif @development
|
274
274
|
:all
|
@@ -289,7 +289,7 @@ class Gem::DependencyInstaller
|
|
289
289
|
installer_set.force = @force
|
290
290
|
|
291
291
|
if consider_local?
|
292
|
-
if dep_or_name =~ /\.gem$/
|
292
|
+
if dep_or_name =~ /\.gem$/ && File.file?(dep_or_name)
|
293
293
|
src = Gem::Source::SpecificFile.new dep_or_name
|
294
294
|
installer_set.add_local dep_or_name, src.spec, src
|
295
295
|
version = src.spec.version if version == Gem::Requirement.default
|
@@ -5,8 +5,8 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
require_relative
|
9
|
-
require_relative
|
8
|
+
require_relative "tsort"
|
9
|
+
require_relative "deprecate"
|
10
10
|
|
11
11
|
##
|
12
12
|
# Gem::DependencyList is used for installing and uninstalling gems in the
|
@@ -119,11 +119,11 @@ class Gem::DependencyList
|
|
119
119
|
each do |spec|
|
120
120
|
spec.runtime_dependencies.each do |dep|
|
121
121
|
inst = Gem::Specification.any? do |installed_spec|
|
122
|
-
dep.name == installed_spec.name
|
123
|
-
dep.requirement.satisfied_by?
|
122
|
+
dep.name == installed_spec.name &&
|
123
|
+
dep.requirement.satisfied_by?(installed_spec.version)
|
124
124
|
end
|
125
125
|
|
126
|
-
unless inst
|
126
|
+
unless inst || @specs.find {|s| s.satisfies_requirement? dep }
|
127
127
|
unsatisfied[spec.name] << dep
|
128
128
|
return unsatisfied if quick
|
129
129
|
end
|
@@ -175,7 +175,7 @@ class Gem::DependencyList
|
|
175
175
|
def remove_specs_unsatisfied_by(dependencies)
|
176
176
|
specs.reject! do |spec|
|
177
177
|
dep = dependencies[spec.name]
|
178
|
-
dep
|
178
|
+
dep && !dep.requirement.satisfied_by?(spec.version)
|
179
179
|
end
|
180
180
|
end
|
181
181
|
|
data/lib/rubygems/doctor.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require_relative
|
2
|
+
require_relative "../rubygems"
|
3
|
+
require_relative "user_interaction"
|
4
4
|
|
5
5
|
##
|
6
6
|
# Cleans up after a partially-failed uninstall or for an invalid
|
@@ -19,18 +19,18 @@ class Gem::Doctor
|
|
19
19
|
# subdirectory.
|
20
20
|
|
21
21
|
REPOSITORY_EXTENSION_MAP = [ # :nodoc:
|
22
|
-
[
|
23
|
-
[
|
24
|
-
[
|
25
|
-
[
|
26
|
-
[
|
27
|
-
[
|
28
|
-
[
|
22
|
+
["specifications", ".gemspec"],
|
23
|
+
["build_info", ".info"],
|
24
|
+
["cache", ".gem"],
|
25
|
+
["doc", ""],
|
26
|
+
["extensions", ""],
|
27
|
+
["gems", ""],
|
28
|
+
["plugins", ""],
|
29
29
|
].freeze
|
30
30
|
|
31
31
|
missing =
|
32
32
|
Gem::REPOSITORY_SUBDIRECTORIES.sort -
|
33
|
-
|
33
|
+
REPOSITORY_EXTENSION_MAP.map {|(k,_)| k }.sort
|
34
34
|
|
35
35
|
raise "Update REPOSITORY_EXTENSION_MAP, missing: #{missing.join ', '}" unless
|
36
36
|
missing.empty?
|
@@ -59,7 +59,7 @@ class Gem::Doctor
|
|
59
59
|
# Are we doctoring a gem repository?
|
60
60
|
|
61
61
|
def gem_repository?
|
62
|
-
|
62
|
+
!installed_specs.empty?
|
63
63
|
end
|
64
64
|
|
65
65
|
##
|
@@ -74,8 +74,8 @@ class Gem::Doctor
|
|
74
74
|
Gem.use_paths @gem_repository.to_s
|
75
75
|
|
76
76
|
unless gem_repository?
|
77
|
-
say
|
78
|
-
|
77
|
+
say "This directory does not appear to be a RubyGems repository, " +
|
78
|
+
"skipping"
|
79
79
|
say
|
80
80
|
return
|
81
81
|
end
|
@@ -111,16 +111,16 @@ class Gem::Doctor
|
|
111
111
|
basename = File.basename(child, extension)
|
112
112
|
next if installed_specs.include? basename
|
113
113
|
next if /^rubygems-\d/ =~ basename
|
114
|
-
next if
|
115
|
-
next if
|
114
|
+
next if "specifications" == sub_directory && "default" == basename
|
115
|
+
next if "plugins" == sub_directory && Gem.plugin_suffix_regexp =~ (basename)
|
116
116
|
|
117
|
-
type = File.directory?(child) ?
|
117
|
+
type = File.directory?(child) ? "directory" : "file"
|
118
118
|
|
119
119
|
action = if @dry_run
|
120
|
-
|
120
|
+
"Extra"
|
121
121
|
else
|
122
122
|
FileUtils.rm_r(child)
|
123
|
-
|
123
|
+
"Removed"
|
124
124
|
end
|
125
125
|
|
126
126
|
say "#{action} #{type} #{sub_directory}/#{File.basename(child)}"
|
data/lib/rubygems/errors.rb
CHANGED
data/lib/rubygems/exceptions.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative
|
4
|
-
require_relative
|
3
|
+
require_relative "deprecate"
|
4
|
+
require_relative "unknown_command_spell_checker"
|
5
5
|
|
6
6
|
##
|
7
7
|
# Base exception class for RubyGems. All exception raised by RubyGems are a
|
@@ -27,7 +27,7 @@ class Gem::UnknownCommandError < Gem::Exception
|
|
27
27
|
if DidYouMean.respond_to?(:correct_error)
|
28
28
|
DidYouMean.correct_error(Gem::UnknownCommandError, Gem::UnknownCommandSpellChecker)
|
29
29
|
else
|
30
|
-
DidYouMean::SPELL_CHECKERS[
|
30
|
+
DidYouMean::SPELL_CHECKERS["Gem::UnknownCommandError"] =
|
31
31
|
Gem::UnknownCommandSpellChecker
|
32
32
|
|
33
33
|
prepend DidYouMean::Correctable
|
@@ -154,7 +154,7 @@ class Gem::ImpossibleDependenciesError < Gem::Exception
|
|
154
154
|
|
155
155
|
def build_message # :nodoc:
|
156
156
|
requester = @request.requester
|
157
|
-
requester = requester ? requester.spec.full_name :
|
157
|
+
requester = requester ? requester.spec.full_name : "The user"
|
158
158
|
dependency = @request.dependency
|
159
159
|
|
160
160
|
message = "#{requester} requires #{dependency} but it conflicted:\n".dup
|
@@ -254,7 +254,7 @@ class Gem::UnsatisfiableDependencyError < Gem::DependencyError
|
|
254
254
|
# Gem::Resolver::DependencyRequest +dep+
|
255
255
|
|
256
256
|
def initialize(dep, platform_mismatch=nil)
|
257
|
-
if platform_mismatch
|
257
|
+
if platform_mismatch && !platform_mismatch.empty?
|
258
258
|
plats = platform_mismatch.map {|x| x.platform.to_s }.sort.uniq
|
259
259
|
super "Unable to resolve dependency: No match for '#{dep}' on this platform. Found: #{plats.join(', ')}"
|
260
260
|
else
|