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/tsort.rb
CHANGED
data/lib/rubygems/uninstaller.rb
CHANGED
@@ -5,12 +5,12 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
require
|
9
|
-
require_relative
|
10
|
-
require_relative
|
11
|
-
require_relative
|
12
|
-
require_relative
|
13
|
-
require_relative
|
8
|
+
require "fileutils"
|
9
|
+
require_relative "../rubygems"
|
10
|
+
require_relative "installer_uninstaller_utils"
|
11
|
+
require_relative "dependency_list"
|
12
|
+
require_relative "rdoc"
|
13
|
+
require_relative "user_interaction"
|
14
14
|
|
15
15
|
##
|
16
16
|
# An Uninstaller.
|
@@ -105,8 +105,8 @@ class Gem::Uninstaller
|
|
105
105
|
@default_specs_matching_uninstall_params = default_specs
|
106
106
|
|
107
107
|
list, other_repo_specs = list.partition do |spec|
|
108
|
-
@gem_home == spec.base_dir
|
109
|
-
(@user_install
|
108
|
+
@gem_home == spec.base_dir ||
|
109
|
+
(@user_install && spec.base_dir == Gem.user_dir)
|
110
110
|
end
|
111
111
|
|
112
112
|
list.sort!
|
@@ -239,8 +239,8 @@ class Gem::Uninstaller
|
|
239
239
|
# spec:: the spec of the gem to be uninstalled
|
240
240
|
|
241
241
|
def remove(spec)
|
242
|
-
unless path_ok?(@gem_home, spec)
|
243
|
-
(@user_install
|
242
|
+
unless path_ok?(@gem_home, spec) ||
|
243
|
+
(@user_install && path_ok?(Gem.user_dir, spec))
|
244
244
|
e = Gem::GemNotInHomeException.new \
|
245
245
|
"Gem '#{spec.full_name}' is not installed in directory #{@gem_home}"
|
246
246
|
e.spec = spec
|
@@ -302,8 +302,8 @@ class Gem::Uninstaller
|
|
302
302
|
# Is +spec+ in +gem_dir+?
|
303
303
|
|
304
304
|
def path_ok?(gem_dir, spec)
|
305
|
-
full_path = File.join gem_dir,
|
306
|
-
original_path = File.join gem_dir,
|
305
|
+
full_path = File.join gem_dir, "gems", spec.full_name
|
306
|
+
original_path = File.join gem_dir, "gems", spec.original_name
|
307
307
|
|
308
308
|
full_path == spec.full_gem_path || original_path == spec.full_gem_path
|
309
309
|
end
|
@@ -332,10 +332,10 @@ class Gem::Uninstaller
|
|
332
332
|
# Asks if it is OK to remove +spec+. Returns true if it is OK.
|
333
333
|
|
334
334
|
def ask_if_ok(spec) # :nodoc:
|
335
|
-
msg = [
|
336
|
-
msg <<
|
335
|
+
msg = [""]
|
336
|
+
msg << "You have requested to uninstall the gem:"
|
337
337
|
msg << "\t#{spec.full_name}"
|
338
|
-
msg <<
|
338
|
+
msg << ""
|
339
339
|
|
340
340
|
siblings = Gem::Specification.select do |s|
|
341
341
|
s.name == spec.name && s.full_name != spec.full_name
|
@@ -347,8 +347,8 @@ class Gem::Uninstaller
|
|
347
347
|
end
|
348
348
|
end
|
349
349
|
|
350
|
-
msg <<
|
351
|
-
msg <<
|
350
|
+
msg << "If you remove this gem, these dependencies will not be met."
|
351
|
+
msg << "Continue with Uninstall?"
|
352
352
|
return ask_yes_no(msg.join("\n"), false)
|
353
353
|
end
|
354
354
|
|
@@ -360,7 +360,7 @@ class Gem::Uninstaller
|
|
360
360
|
# of what it did for us to find rather than trying to recreate
|
361
361
|
# it again.
|
362
362
|
if @format_executable
|
363
|
-
require_relative
|
363
|
+
require_relative "installer"
|
364
364
|
Gem::Installer.exec_format % File.basename(filename)
|
365
365
|
else
|
366
366
|
filename
|
data/lib/rubygems/uri.rb
CHANGED
@@ -66,7 +66,7 @@ class Gem::Uri
|
|
66
66
|
def redact_credentials_from(text)
|
67
67
|
return text unless valid_uri? && password? && text.include?(to_s)
|
68
68
|
|
69
|
-
text.sub(password,
|
69
|
+
text.sub(password, "REDACTED")
|
70
70
|
end
|
71
71
|
|
72
72
|
def method_missing(method_name, *args, &blk)
|
@@ -97,11 +97,11 @@ class Gem::Uri
|
|
97
97
|
end
|
98
98
|
|
99
99
|
def with_redacted_user
|
100
|
-
clone.tap {|uri| uri.user =
|
100
|
+
clone.tap {|uri| uri.user = "REDACTED" }
|
101
101
|
end
|
102
102
|
|
103
103
|
def with_redacted_password
|
104
|
-
clone.tap {|uri| uri.password =
|
104
|
+
clone.tap {|uri| uri.password = "REDACTED" }
|
105
105
|
end
|
106
106
|
|
107
107
|
def valid_uri?
|
@@ -113,7 +113,7 @@ class Gem::Uri
|
|
113
113
|
end
|
114
114
|
|
115
115
|
def oauth_basic?
|
116
|
-
password ==
|
116
|
+
password == "x-oauth-basic"
|
117
117
|
end
|
118
118
|
|
119
119
|
def token?
|
@@ -5,8 +5,8 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
require_relative
|
9
|
-
require_relative
|
8
|
+
require_relative "deprecate"
|
9
|
+
require_relative "text"
|
10
10
|
|
11
11
|
##
|
12
12
|
# Module that defines the default UserInteraction. Any class including this
|
@@ -148,7 +148,7 @@ module Gem::UserInteraction
|
|
148
148
|
##
|
149
149
|
# Displays the given +statement+ on the standard output (or equivalent).
|
150
150
|
|
151
|
-
def say(statement =
|
151
|
+
def say(statement = "")
|
152
152
|
ui.say statement
|
153
153
|
end
|
154
154
|
|
@@ -259,11 +259,11 @@ class Gem::StreamUI
|
|
259
259
|
|
260
260
|
default_answer = case default
|
261
261
|
when nil
|
262
|
-
|
262
|
+
"yn"
|
263
263
|
when true
|
264
|
-
|
264
|
+
"Yn"
|
265
265
|
else
|
266
|
-
|
266
|
+
"yN"
|
267
267
|
end
|
268
268
|
|
269
269
|
result = nil
|
@@ -284,7 +284,7 @@ class Gem::StreamUI
|
|
284
284
|
# Ask a question. Returns an answer if connected to a tty, nil otherwise.
|
285
285
|
|
286
286
|
def ask(question)
|
287
|
-
return nil if
|
287
|
+
return nil if !tty?
|
288
288
|
|
289
289
|
@outs.print(question + " ")
|
290
290
|
@outs.flush
|
@@ -298,7 +298,7 @@ class Gem::StreamUI
|
|
298
298
|
# Ask for a password. Does not echo response to terminal.
|
299
299
|
|
300
300
|
def ask_for_password(question)
|
301
|
-
return nil if
|
301
|
+
return nil if !tty?
|
302
302
|
|
303
303
|
@outs.print(question, " ")
|
304
304
|
@outs.flush
|
@@ -312,7 +312,7 @@ class Gem::StreamUI
|
|
312
312
|
def require_io_console
|
313
313
|
@require_io_console ||= begin
|
314
314
|
begin
|
315
|
-
require
|
315
|
+
require "io/console"
|
316
316
|
rescue LoadError
|
317
317
|
end
|
318
318
|
true
|
@@ -472,7 +472,7 @@ class Gem::StreamUI
|
|
472
472
|
# and the +terminal_message+ when it is complete.
|
473
473
|
|
474
474
|
def initialize(out_stream, size, initial_message,
|
475
|
-
terminal_message =
|
475
|
+
terminal_message = "complete")
|
476
476
|
@out = out_stream
|
477
477
|
@total = size
|
478
478
|
@count = 0
|
@@ -616,18 +616,11 @@ class Gem::SilentUI < Gem::StreamUI
|
|
616
616
|
# The SilentUI has no arguments as it does not use any stream.
|
617
617
|
|
618
618
|
def initialize
|
619
|
-
|
620
|
-
|
621
|
-
reader = File.open(IO::NULL, 'r')
|
622
|
-
writer = File.open(IO::NULL, 'w')
|
623
|
-
|
624
|
-
super reader, writer, writer, false
|
619
|
+
io = NullIO.new
|
620
|
+
super io, io, io, false
|
625
621
|
end
|
626
622
|
|
627
623
|
def close
|
628
|
-
super
|
629
|
-
@ins.close
|
630
|
-
@outs.close
|
631
624
|
end
|
632
625
|
|
633
626
|
def download_reporter(*args) # :nodoc:
|
@@ -637,4 +630,25 @@ class Gem::SilentUI < Gem::StreamUI
|
|
637
630
|
def progress_reporter(*args) # :nodoc:
|
638
631
|
SilentProgressReporter.new(@outs, *args)
|
639
632
|
end
|
633
|
+
|
634
|
+
##
|
635
|
+
# An absolutely silent IO.
|
636
|
+
|
637
|
+
class NullIO
|
638
|
+
def puts(*args)
|
639
|
+
end
|
640
|
+
|
641
|
+
def print(*args)
|
642
|
+
end
|
643
|
+
|
644
|
+
def flush
|
645
|
+
end
|
646
|
+
|
647
|
+
def gets(*args)
|
648
|
+
end
|
649
|
+
|
650
|
+
def tty?
|
651
|
+
false
|
652
|
+
end
|
653
|
+
end
|
640
654
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
2
|
+
require_relative "../text"
|
3
3
|
|
4
4
|
class Gem::Licenses
|
5
5
|
extend Gem::Text
|
6
6
|
|
7
|
-
NONSTANDARD =
|
8
|
-
LICENSE_REF =
|
7
|
+
NONSTANDARD = "Nonstandard".freeze
|
8
|
+
LICENSE_REF = "LicenseRef-.+".freeze
|
9
9
|
|
10
10
|
# Software Package Data Exchange (SPDX) standard open-source software
|
11
11
|
# license identifiers
|
data/lib/rubygems/util.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
2
|
+
require_relative "deprecate"
|
3
3
|
|
4
4
|
##
|
5
5
|
# This module contains various utility methods as module methods.
|
@@ -10,9 +10,9 @@ module Gem::Util
|
|
10
10
|
# Zlib::GzipReader wrapper that unzips +data+.
|
11
11
|
|
12
12
|
def self.gunzip(data)
|
13
|
-
require
|
14
|
-
require
|
15
|
-
data = StringIO.new(data,
|
13
|
+
require "zlib"
|
14
|
+
require "stringio"
|
15
|
+
data = StringIO.new(data, "r")
|
16
16
|
|
17
17
|
gzip_reader = begin
|
18
18
|
Zlib::GzipReader.new(data)
|
@@ -29,9 +29,9 @@ module Gem::Util
|
|
29
29
|
# Zlib::GzipWriter wrapper that zips +data+.
|
30
30
|
|
31
31
|
def self.gzip(data)
|
32
|
-
require
|
33
|
-
require
|
34
|
-
zipped = StringIO.new(String.new,
|
32
|
+
require "zlib"
|
33
|
+
require "stringio"
|
34
|
+
zipped = StringIO.new(String.new, "w")
|
35
35
|
zipped.set_encoding Encoding::BINARY
|
36
36
|
|
37
37
|
Zlib::GzipWriter.wrap zipped do |io|
|
@@ -45,7 +45,7 @@ module Gem::Util
|
|
45
45
|
# A Zlib::Inflate#inflate wrapper
|
46
46
|
|
47
47
|
def self.inflate(data)
|
48
|
-
require
|
48
|
+
require "zlib"
|
49
49
|
Zlib::Inflate.inflate data
|
50
50
|
end
|
51
51
|
|
@@ -86,7 +86,7 @@ module Gem::Util
|
|
86
86
|
loop do
|
87
87
|
Dir.chdir here, &block rescue Errno::EACCES
|
88
88
|
|
89
|
-
new_here = File.expand_path(
|
89
|
+
new_here = File.expand_path("..", here)
|
90
90
|
return if new_here == here # toplevel
|
91
91
|
here = new_here
|
92
92
|
end
|
@@ -109,7 +109,7 @@ module Gem::Util
|
|
109
109
|
# comes with a leading slash.
|
110
110
|
|
111
111
|
def self.correct_for_windows_path(path)
|
112
|
-
if path[0].chr ==
|
112
|
+
if path[0].chr == "/" && path[1].chr =~ /[a-z]/i && path[2].chr == ":"
|
113
113
|
path[1..-1]
|
114
114
|
else
|
115
115
|
path
|
data/lib/rubygems/validator.rb
CHANGED
@@ -5,8 +5,8 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
require_relative
|
9
|
-
require_relative
|
8
|
+
require_relative "package"
|
9
|
+
require_relative "installer"
|
10
10
|
|
11
11
|
##
|
12
12
|
# Validator performs various gem file and gem database validation
|
@@ -15,7 +15,7 @@ class Gem::Validator
|
|
15
15
|
include Gem::UserInteraction
|
16
16
|
|
17
17
|
def initialize # :nodoc:
|
18
|
-
require
|
18
|
+
require "find"
|
19
19
|
end
|
20
20
|
|
21
21
|
private
|
@@ -110,11 +110,11 @@ class Gem::Validator
|
|
110
110
|
begin
|
111
111
|
next unless data # HACK `gem check -a mkrf`
|
112
112
|
|
113
|
-
source = File.join gem_directory, entry[
|
113
|
+
source = File.join gem_directory, entry["path"]
|
114
114
|
|
115
115
|
File.open source, Gem.binary_mode do |f|
|
116
116
|
unless f.read == data
|
117
|
-
errors[gem_name][entry[
|
117
|
+
errors[gem_name][entry["path"]] = "Modified from original"
|
118
118
|
end
|
119
119
|
end
|
120
120
|
end
|
data/lib/rubygems/version.rb
CHANGED
@@ -153,8 +153,6 @@ require_relative "deprecate"
|
|
153
153
|
# a zero to give a sensible result.
|
154
154
|
|
155
155
|
class Gem::Version
|
156
|
-
autoload :Requirement, File.expand_path('requirement', __dir__)
|
157
|
-
|
158
156
|
include Comparable
|
159
157
|
|
160
158
|
VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?'.freeze # :nodoc:
|
@@ -173,9 +171,7 @@ class Gem::Version
|
|
173
171
|
# True if the +version+ string matches RubyGems' requirements.
|
174
172
|
|
175
173
|
def self.correct?(version)
|
176
|
-
|
177
|
-
warn "nil versions are discouraged and will be deprecated in Rubygems 4" if version.nil?
|
178
|
-
end
|
174
|
+
nil_versions_are_discouraged! if version.nil?
|
179
175
|
|
180
176
|
!!(version.to_s =~ ANCHORED_VERSION_PATTERN)
|
181
177
|
end
|
@@ -192,6 +188,8 @@ class Gem::Version
|
|
192
188
|
if self === input # check yourself before you wreck yourself
|
193
189
|
input
|
194
190
|
elsif input.nil?
|
191
|
+
nil_versions_are_discouraged!
|
192
|
+
|
195
193
|
nil
|
196
194
|
else
|
197
195
|
new input
|
@@ -208,6 +206,14 @@ class Gem::Version
|
|
208
206
|
@@all[version] ||= super
|
209
207
|
end
|
210
208
|
|
209
|
+
def self.nil_versions_are_discouraged!
|
210
|
+
unless Gem::Deprecate.skip
|
211
|
+
warn "nil versions are discouraged and will be deprecated in Rubygems 4"
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
private_class_method :nil_versions_are_discouraged!
|
216
|
+
|
211
217
|
##
|
212
218
|
# Constructs a Version from the +version+ string. A version string is a
|
213
219
|
# series of digits or ASCII letters separated by dots.
|
@@ -246,7 +252,7 @@ class Gem::Version
|
|
246
252
|
# same precision. Version "1.0" is not the same as version "1".
|
247
253
|
|
248
254
|
def eql?(other)
|
249
|
-
self.class === other
|
255
|
+
self.class === other && @version == other._version
|
250
256
|
end
|
251
257
|
|
252
258
|
def hash # :nodoc:
|
@@ -278,7 +284,7 @@ class Gem::Version
|
|
278
284
|
end
|
279
285
|
|
280
286
|
def yaml_initialize(tag, map) # :nodoc:
|
281
|
-
@version = map[
|
287
|
+
@version = map["version"]
|
282
288
|
@segments = nil
|
283
289
|
@hash = nil
|
284
290
|
end
|
@@ -288,7 +294,7 @@ class Gem::Version
|
|
288
294
|
end
|
289
295
|
|
290
296
|
def encode_with(coder) # :nodoc:
|
291
|
-
coder.add
|
297
|
+
coder.add "version", @version
|
292
298
|
end
|
293
299
|
|
294
300
|
##
|
@@ -313,7 +319,7 @@ class Gem::Version
|
|
313
319
|
@@release[self] ||= if prerelease?
|
314
320
|
segments = self.segments
|
315
321
|
segments.pop while segments.any? {|s| String === s }
|
316
|
-
self.class.new segments.join(
|
322
|
+
self.class.new segments.join(".")
|
317
323
|
else
|
318
324
|
self
|
319
325
|
end
|
@@ -5,7 +5,7 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
require_relative
|
8
|
+
require_relative "../rubygems"
|
9
9
|
|
10
10
|
##
|
11
11
|
# Mixin methods for --version and --platform Gem::Command options.
|
@@ -24,7 +24,7 @@ module Gem::VersionOption
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
add_option(
|
27
|
+
add_option("--platform PLATFORM", Gem::Platform,
|
28
28
|
"Specify the platform of gem to #{task}", *wrap) do
|
29
29
|
|value, options|
|
30
30
|
unless options[:added_platform]
|
@@ -55,7 +55,7 @@ module Gem::VersionOption
|
|
55
55
|
Gem::Requirement.new(*value.split(/\s*,\s*/))
|
56
56
|
end
|
57
57
|
|
58
|
-
add_option(
|
58
|
+
add_option("-v", "--version VERSION", Gem::Requirement,
|
59
59
|
"Specify version of gem to #{task}", *wrap) do
|
60
60
|
|value, options|
|
61
61
|
# Allow handling for multiple --version operators
|