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
@@ -1,44 +1,44 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require_relative
|
4
|
-
require_relative
|
5
|
-
require_relative
|
2
|
+
require_relative "../command"
|
3
|
+
require_relative "../version_option"
|
4
|
+
require_relative "../validator"
|
5
|
+
require_relative "../doctor"
|
6
6
|
|
7
7
|
class Gem::Commands::CheckCommand < Gem::Command
|
8
8
|
include Gem::VersionOption
|
9
9
|
|
10
10
|
def initialize
|
11
|
-
super
|
11
|
+
super "check", "Check a gem repository for added or missing files",
|
12
12
|
:alien => true, :doctor => false, :dry_run => false, :gems => true
|
13
13
|
|
14
|
-
add_option(
|
14
|
+
add_option("-a", "--[no-]alien",
|
15
15
|
'Report "unmanaged" or rogue files in the',
|
16
|
-
|
16
|
+
"gem repository") do |value, options|
|
17
17
|
options[:alien] = value
|
18
18
|
end
|
19
19
|
|
20
|
-
add_option(
|
21
|
-
|
22
|
-
|
20
|
+
add_option("--[no-]doctor",
|
21
|
+
"Clean up uninstalled gems and broken",
|
22
|
+
"specifications") do |value, options|
|
23
23
|
options[:doctor] = value
|
24
24
|
end
|
25
25
|
|
26
|
-
add_option(
|
27
|
-
|
28
|
-
|
26
|
+
add_option("--[no-]dry-run",
|
27
|
+
"Do not remove files, only report what",
|
28
|
+
"would be removed") do |value, options|
|
29
29
|
options[:dry_run] = value
|
30
30
|
end
|
31
31
|
|
32
|
-
add_option(
|
33
|
-
|
32
|
+
add_option("--[no-]gems",
|
33
|
+
"Check installed gems for problems") do |value, options|
|
34
34
|
options[:gems] = value
|
35
35
|
end
|
36
36
|
|
37
|
-
add_version_option
|
37
|
+
add_version_option "check"
|
38
38
|
end
|
39
39
|
|
40
40
|
def check_gems
|
41
|
-
say
|
41
|
+
say "Checking gems..."
|
42
42
|
say
|
43
43
|
gems = get_all_gem_names rescue []
|
44
44
|
|
@@ -57,7 +57,7 @@ class Gem::Commands::CheckCommand < Gem::Command
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def doctor
|
60
|
-
say
|
60
|
+
say "Checking for files from uninstalled gems..."
|
61
61
|
say
|
62
62
|
|
63
63
|
Gem.path.each do |gem_repo|
|
@@ -72,11 +72,11 @@ class Gem::Commands::CheckCommand < Gem::Command
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def arguments # :nodoc:
|
75
|
-
|
75
|
+
"GEMNAME name of gem to check"
|
76
76
|
end
|
77
77
|
|
78
78
|
def defaults_str # :nodoc:
|
79
|
-
|
79
|
+
"--gems --alien"
|
80
80
|
end
|
81
81
|
|
82
82
|
def description # :nodoc:
|
@@ -1,35 +1,35 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require_relative
|
4
|
-
require_relative
|
2
|
+
require_relative "../command"
|
3
|
+
require_relative "../dependency_list"
|
4
|
+
require_relative "../uninstaller"
|
5
5
|
|
6
6
|
class Gem::Commands::CleanupCommand < Gem::Command
|
7
7
|
def initialize
|
8
|
-
super
|
9
|
-
|
8
|
+
super "cleanup",
|
9
|
+
"Clean up old versions of installed gems",
|
10
10
|
:force => false, :install_dir => Gem.dir,
|
11
11
|
:check_dev => true
|
12
12
|
|
13
|
-
add_option(
|
14
|
-
|
13
|
+
add_option("-n", "-d", "--dry-run",
|
14
|
+
"Do not uninstall gems") do |value, options|
|
15
15
|
options[:dryrun] = true
|
16
16
|
end
|
17
17
|
|
18
|
-
add_option(:Deprecated,
|
19
|
-
|
18
|
+
add_option(:Deprecated, "--dryrun",
|
19
|
+
"Do not uninstall gems") do |value, options|
|
20
20
|
options[:dryrun] = true
|
21
21
|
end
|
22
|
-
deprecate_option(
|
22
|
+
deprecate_option("--dryrun", extra_msg: "Use --dry-run instead")
|
23
23
|
|
24
|
-
add_option(
|
25
|
-
|
26
|
-
|
24
|
+
add_option("-D", "--[no-]check-development",
|
25
|
+
"Check development dependencies while uninstalling",
|
26
|
+
"(default: true)") do |value, options|
|
27
27
|
options[:check_dev] = value
|
28
28
|
end
|
29
29
|
|
30
|
-
add_option(
|
31
|
-
|
32
|
-
|
30
|
+
add_option("--[no-]user-install",
|
31
|
+
"Cleanup in user's home directory instead",
|
32
|
+
"of GEM_HOME.") do |value, options|
|
33
33
|
options[:user_install] = value
|
34
34
|
end
|
35
35
|
|
@@ -149,7 +149,7 @@ If no gems are named all gems in GEM_HOME are cleaned.
|
|
149
149
|
@primary_gems = {}
|
150
150
|
|
151
151
|
Gem::Specification.each do |spec|
|
152
|
-
if @primary_gems[spec.name].nil?
|
152
|
+
if @primary_gems[spec.name].nil? ||
|
153
153
|
@primary_gems[spec.name].version < spec.version
|
154
154
|
@primary_gems[spec.name] = spec
|
155
155
|
end
|
@@ -1,39 +1,39 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require_relative
|
2
|
+
require_relative "../command"
|
3
|
+
require_relative "../version_option"
|
4
4
|
|
5
5
|
class Gem::Commands::ContentsCommand < Gem::Command
|
6
6
|
include Gem::VersionOption
|
7
7
|
|
8
8
|
def initialize
|
9
|
-
super
|
9
|
+
super "contents", "Display the contents of the installed gems",
|
10
10
|
:specdirs => [], :lib_only => false, :prefix => true,
|
11
11
|
:show_install_dir => false
|
12
12
|
|
13
13
|
add_version_option
|
14
14
|
|
15
|
-
add_option(
|
15
|
+
add_option("--all",
|
16
16
|
"Contents for all gems") do |all, options|
|
17
17
|
options[:all] = all
|
18
18
|
end
|
19
19
|
|
20
|
-
add_option(
|
20
|
+
add_option("-s", "--spec-dir a,b,c", Array,
|
21
21
|
"Search for gems under specific paths") do |spec_dirs, options|
|
22
22
|
options[:specdirs] = spec_dirs
|
23
23
|
end
|
24
24
|
|
25
|
-
add_option(
|
25
|
+
add_option("-l", "--[no-]lib-only",
|
26
26
|
"Only return files in the Gem's lib_dirs") do |lib_only, options|
|
27
27
|
options[:lib_only] = lib_only
|
28
28
|
end
|
29
29
|
|
30
|
-
add_option(
|
30
|
+
add_option("--[no-]prefix",
|
31
31
|
"Don't include installed path prefix") do |prefix, options|
|
32
32
|
options[:prefix] = prefix
|
33
33
|
end
|
34
34
|
|
35
|
-
add_option(
|
36
|
-
|
35
|
+
add_option("--[no-]show-install-dir",
|
36
|
+
"Show only the gem install dir") do |show, options|
|
37
37
|
options[:show_install_dir] = show
|
38
38
|
end
|
39
39
|
|
@@ -77,7 +77,7 @@ prefix or only the files that are requireable.
|
|
77
77
|
gem_contents name
|
78
78
|
end
|
79
79
|
|
80
|
-
terminate_interaction 1 unless found
|
80
|
+
terminate_interaction 1 unless found || names.length > 1
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
@@ -105,11 +105,11 @@ prefix or only the files that are requireable.
|
|
105
105
|
case file
|
106
106
|
when /\A#{spec.bindir}\//
|
107
107
|
# $' is POSTMATCH
|
108
|
-
[RbConfig::CONFIG[
|
108
|
+
[RbConfig::CONFIG["bindir"], $']
|
109
109
|
when /\.so\z/
|
110
|
-
[RbConfig::CONFIG[
|
110
|
+
[RbConfig::CONFIG["archdir"], file]
|
111
111
|
else
|
112
|
-
[RbConfig::CONFIG[
|
112
|
+
[RbConfig::CONFIG["rubylibdir"], file]
|
113
113
|
end
|
114
114
|
end
|
115
115
|
end
|
@@ -1,28 +1,28 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require_relative
|
4
|
-
require_relative
|
2
|
+
require_relative "../command"
|
3
|
+
require_relative "../local_remote_options"
|
4
|
+
require_relative "../version_option"
|
5
5
|
|
6
6
|
class Gem::Commands::DependencyCommand < Gem::Command
|
7
7
|
include Gem::LocalRemoteOptions
|
8
8
|
include Gem::VersionOption
|
9
9
|
|
10
10
|
def initialize
|
11
|
-
super
|
12
|
-
|
11
|
+
super "dependency",
|
12
|
+
"Show the dependencies of an installed gem",
|
13
13
|
:version => Gem::Requirement.default, :domain => :local
|
14
14
|
|
15
15
|
add_version_option
|
16
16
|
add_platform_option
|
17
17
|
add_prerelease_option
|
18
18
|
|
19
|
-
add_option(
|
20
|
-
|
19
|
+
add_option("-R", "--[no-]reverse-dependencies",
|
20
|
+
"Include reverse dependencies in the output") do
|
21
21
|
|value, options|
|
22
22
|
options[:reverse_dependencies] = value
|
23
23
|
end
|
24
24
|
|
25
|
-
add_option(
|
25
|
+
add_option("-p", "--pipe",
|
26
26
|
"Pipe Format (name --version ver)") do |value, options|
|
27
27
|
options[:pipe_format] = value
|
28
28
|
end
|
@@ -77,7 +77,7 @@ use with other commands.
|
|
77
77
|
name_matches = name_pattern ? name_pattern =~ spec.name : true
|
78
78
|
version_matches = requirement.satisfied_by?(spec.version)
|
79
79
|
|
80
|
-
name_matches
|
80
|
+
name_matches && version_matches
|
81
81
|
}.map(&:to_spec)
|
82
82
|
end
|
83
83
|
|
@@ -133,8 +133,8 @@ use with other commands.
|
|
133
133
|
end
|
134
134
|
|
135
135
|
def ensure_local_only_reverse_dependencies # :nodoc:
|
136
|
-
if options[:reverse_dependencies]
|
137
|
-
alert_error
|
136
|
+
if options[:reverse_dependencies] && remote? && !local?
|
137
|
+
alert_error "Only reverse dependencies for local gems are supported."
|
138
138
|
terminate_interaction 1
|
139
139
|
end
|
140
140
|
end
|
@@ -142,7 +142,7 @@ use with other commands.
|
|
142
142
|
def ensure_specs(specs) # :nodoc:
|
143
143
|
return unless specs.empty?
|
144
144
|
|
145
|
-
patterns = options[:args].join
|
145
|
+
patterns = options[:args].join ","
|
146
146
|
say "No gems found matching #{patterns} (#{options[:version]})" if
|
147
147
|
Gem.configuration.verbose
|
148
148
|
|
@@ -151,10 +151,10 @@ use with other commands.
|
|
151
151
|
|
152
152
|
def print_dependencies(spec, level = 0) # :nodoc:
|
153
153
|
response = String.new
|
154
|
-
response <<
|
154
|
+
response << " " * level + "Gem #{spec.full_name}\n"
|
155
155
|
unless spec.dependencies.empty?
|
156
156
|
spec.dependencies.sort_by {|dep| dep.name }.each do |dep|
|
157
|
-
response <<
|
157
|
+
response << " " * level + " #{dep}\n"
|
158
158
|
end
|
159
159
|
end
|
160
160
|
response
|
@@ -182,7 +182,7 @@ use with other commands.
|
|
182
182
|
sp.dependencies.each do |dep|
|
183
183
|
dep = Gem::Dependency.new(*dep) unless Gem::Dependency === dep
|
184
184
|
|
185
|
-
if spec.name == dep.name
|
185
|
+
if spec.name == dep.name &&
|
186
186
|
dep.requirement.satisfied_by?(spec.version)
|
187
187
|
result << [sp.full_name, dep]
|
188
188
|
end
|
@@ -197,7 +197,7 @@ use with other commands.
|
|
197
197
|
def name_pattern(args)
|
198
198
|
return if args.empty?
|
199
199
|
|
200
|
-
if args.length == 1
|
200
|
+
if args.length == 1 && args.first =~ /\A(.*)(i)?\z/m
|
201
201
|
flags = $2 ? Regexp::IGNORECASE : nil
|
202
202
|
Regexp.new $1, flags
|
203
203
|
else
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
2
|
+
require_relative "../command"
|
3
3
|
|
4
4
|
class Gem::Commands::EnvironmentCommand < Gem::Command
|
5
5
|
def initialize
|
6
|
-
super
|
6
|
+
super "environment", "Display information about the RubyGems environment"
|
7
7
|
end
|
8
8
|
|
9
9
|
def arguments # :nodoc:
|
@@ -16,7 +16,7 @@ class Gem::Commands::EnvironmentCommand < Gem::Command
|
|
16
16
|
platform display the supported gem platforms
|
17
17
|
<omitted> display everything
|
18
18
|
EOF
|
19
|
-
return args.gsub(/^\s+/,
|
19
|
+
return args.gsub(/^\s+/, "")
|
20
20
|
end
|
21
21
|
|
22
22
|
def description # :nodoc:
|
@@ -141,7 +141,7 @@ lib/rubygems/defaults/operating_system.rb
|
|
141
141
|
|
142
142
|
out << " - GEM CONFIGURATION:\n"
|
143
143
|
Gem.configuration.each do |name, value|
|
144
|
-
value = value.gsub(/./,
|
144
|
+
value = value.gsub(/./, "*") if name == "gemcutter_key"
|
145
145
|
out << " - #{name.inspect} => #{value.inspect}\n"
|
146
146
|
end
|
147
147
|
|
@@ -152,7 +152,7 @@ lib/rubygems/defaults/operating_system.rb
|
|
152
152
|
|
153
153
|
out << " - SHELL PATH:\n"
|
154
154
|
|
155
|
-
shell_path = ENV[
|
155
|
+
shell_path = ENV["PATH"].split(File::PATH_SEPARATOR)
|
156
156
|
add_path out, shell_path
|
157
157
|
|
158
158
|
out
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require_relative
|
4
|
-
require_relative
|
2
|
+
require_relative "../command"
|
3
|
+
require_relative "../local_remote_options"
|
4
|
+
require_relative "../version_option"
|
5
5
|
|
6
6
|
class Gem::Commands::FetchCommand < Gem::Command
|
7
7
|
include Gem::LocalRemoteOptions
|
@@ -13,7 +13,7 @@ class Gem::Commands::FetchCommand < Gem::Command
|
|
13
13
|
:version => Gem::Requirement.default,
|
14
14
|
}
|
15
15
|
|
16
|
-
super
|
16
|
+
super "fetch", "Download a gem and place it in the current directory", defaults
|
17
17
|
|
18
18
|
add_bulk_threshold_option
|
19
19
|
add_proxy_option
|
@@ -24,13 +24,13 @@ class Gem::Commands::FetchCommand < Gem::Command
|
|
24
24
|
add_platform_option
|
25
25
|
add_prerelease_option
|
26
26
|
|
27
|
-
add_option
|
27
|
+
add_option "--[no-]suggestions", "Suggest alternates when gems are not found" do |value, options|
|
28
28
|
options[:suggest_alternate] = value
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
def arguments # :nodoc:
|
33
|
-
|
33
|
+
"GEMNAME name of gem to download"
|
34
34
|
end
|
35
35
|
|
36
36
|
def defaults_str # :nodoc:
|
@@ -52,8 +52,8 @@ then repackaging it.
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def check_version # :nodoc:
|
55
|
-
if options[:version] != Gem::Requirement.default
|
56
|
-
|
55
|
+
if options[:version] != Gem::Requirement.default &&
|
56
|
+
get_all_gem_names.size > 1
|
57
57
|
alert_error "Can't use --version with multiple gems. You can specify multiple gems with" \
|
58
58
|
" version requirements using `gem fetch 'my_gem:1.0.0' 'my_other_gem:~>2.0.0'`"
|
59
59
|
terminate_interaction 1
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require_relative
|
2
|
+
require_relative "../command"
|
3
|
+
require_relative "../indexer"
|
4
4
|
|
5
5
|
##
|
6
6
|
# Generates a index files for use as a gem server.
|
@@ -9,27 +9,27 @@ require_relative '../indexer'
|
|
9
9
|
|
10
10
|
class Gem::Commands::GenerateIndexCommand < Gem::Command
|
11
11
|
def initialize
|
12
|
-
super
|
13
|
-
|
14
|
-
:directory =>
|
12
|
+
super "generate_index",
|
13
|
+
"Generates the index files for a gem server directory",
|
14
|
+
:directory => ".", :build_modern => true
|
15
15
|
|
16
|
-
add_option
|
17
|
-
|
16
|
+
add_option "-d", "--directory=DIRNAME",
|
17
|
+
"repository base dir containing gems subdir" do |dir, options|
|
18
18
|
options[:directory] = File.expand_path dir
|
19
19
|
end
|
20
20
|
|
21
|
-
add_option
|
22
|
-
|
23
|
-
|
21
|
+
add_option "--[no-]modern",
|
22
|
+
"Generate indexes for RubyGems",
|
23
|
+
"(always true)" do |value, options|
|
24
24
|
options[:build_modern] = value
|
25
25
|
end
|
26
26
|
|
27
|
-
deprecate_option(
|
28
|
-
deprecate_option(
|
27
|
+
deprecate_option("--modern", version: "4.0", extra_msg: "Modern indexes (specs, latest_specs, and prerelease_specs) are always generated, so this option is not needed.")
|
28
|
+
deprecate_option("--no-modern", version: "4.0", extra_msg: "The `--no-modern` option is currently ignored. Modern indexes (specs, latest_specs, and prerelease_specs) are always generated.")
|
29
29
|
|
30
|
-
add_option
|
31
|
-
|
32
|
-
|
30
|
+
add_option "--update",
|
31
|
+
"Update modern indexes with gems added",
|
32
|
+
"since the last update" do |value, options|
|
33
33
|
options[:update] = value
|
34
34
|
end
|
35
35
|
end
|
@@ -68,8 +68,8 @@ Marshal::MINOR_VERSION constants. It is used to ensure compatibility.
|
|
68
68
|
# This is always true because it's the only way now.
|
69
69
|
options[:build_modern] = true
|
70
70
|
|
71
|
-
if
|
72
|
-
|
71
|
+
if !File.exist?(options[:directory]) ||
|
72
|
+
!File.directory?(options[:directory])
|
73
73
|
alert_error "unknown directory name #{options[:directory]}."
|
74
74
|
terminate_interaction 1
|
75
75
|
else
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
2
|
+
require_relative "../command"
|
3
3
|
|
4
4
|
class Gem::Commands::HelpCommand < Gem::Command
|
5
5
|
# :stopdoc:
|
@@ -280,7 +280,7 @@ platform.
|
|
280
280
|
# :startdoc:
|
281
281
|
|
282
282
|
def initialize
|
283
|
-
super
|
283
|
+
super "help", "Provide help on the 'gem' command"
|
284
284
|
|
285
285
|
@command_manager = Gem::CommandManager.instance
|
286
286
|
end
|
@@ -326,7 +326,7 @@ platform.
|
|
326
326
|
desc_width = @command_manager.command_names.map {|n| n.size }.max + 4
|
327
327
|
|
328
328
|
summary_width = 80 - margin_width - desc_width
|
329
|
-
wrap_indent =
|
329
|
+
wrap_indent = " " * (margin_width + desc_width)
|
330
330
|
format = "#{' ' * margin_width}%-#{desc_width}s%s"
|
331
331
|
|
332
332
|
@command_manager.command_names.each do |cmd_name|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative
|
4
|
-
require_relative
|
3
|
+
require_relative "../command"
|
4
|
+
require_relative "../query_utils"
|
5
5
|
|
6
6
|
class Gem::Commands::InfoCommand < Gem::Command
|
7
7
|
include Gem::QueryUtils
|
@@ -13,7 +13,7 @@ class Gem::Commands::InfoCommand < Gem::Command
|
|
13
13
|
|
14
14
|
add_query_options
|
15
15
|
|
16
|
-
remove_option(
|
16
|
+
remove_option("-d")
|
17
17
|
|
18
18
|
defaults[:details] = true
|
19
19
|
defaults[:exact] = true
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require_relative
|
4
|
-
require_relative
|
5
|
-
require_relative
|
6
|
-
require_relative
|
7
|
-
require_relative
|
2
|
+
require_relative "../command"
|
3
|
+
require_relative "../install_update_options"
|
4
|
+
require_relative "../dependency_installer"
|
5
|
+
require_relative "../local_remote_options"
|
6
|
+
require_relative "../validator"
|
7
|
+
require_relative "../version_option"
|
8
8
|
|
9
9
|
##
|
10
10
|
# Gem installer command line tool
|
@@ -29,7 +29,7 @@ class Gem::Commands::InstallCommand < Gem::Command
|
|
29
29
|
|
30
30
|
defaults.merge!(install_update_options)
|
31
31
|
|
32
|
-
super
|
32
|
+
super "install", "Install a gem into the local repository", defaults
|
33
33
|
|
34
34
|
add_install_update_options
|
35
35
|
add_local_remote_options
|
@@ -46,8 +46,8 @@ class Gem::Commands::InstallCommand < Gem::Command
|
|
46
46
|
|
47
47
|
def defaults_str # :nodoc:
|
48
48
|
"--both --version '#{Gem::Requirement.default}' --no-force\n" +
|
49
|
-
|
50
|
-
|
49
|
+
"--install-dir #{Gem.dir} --lock\n" +
|
50
|
+
install_update_defaults_str
|
51
51
|
end
|
52
52
|
|
53
53
|
def description # :nodoc:
|
@@ -134,15 +134,15 @@ You can use `i` command instead of `install`.
|
|
134
134
|
end
|
135
135
|
|
136
136
|
def check_install_dir # :nodoc:
|
137
|
-
if options[:install_dir]
|
137
|
+
if options[:install_dir] && options[:user_install]
|
138
138
|
alert_error "Use --install-dir or --user-install but not both"
|
139
139
|
terminate_interaction 1
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
143
143
|
def check_version # :nodoc:
|
144
|
-
if options[:version] != Gem::Requirement.default
|
145
|
-
|
144
|
+
if options[:version] != Gem::Requirement.default &&
|
145
|
+
get_all_gem_names.size > 1
|
146
146
|
alert_error "Can't use --version with multiple gems. You can specify multiple gems with" \
|
147
147
|
" version requirements using `gem install 'my_gem:1.0.0' 'my_other_gem:~>2.0.0'`"
|
148
148
|
terminate_interaction 1
|
@@ -157,7 +157,7 @@ You can use `i` command instead of `install`.
|
|
157
157
|
|
158
158
|
@installed_specs = []
|
159
159
|
|
160
|
-
ENV.delete
|
160
|
+
ENV.delete "GEM_PATH" if options[:install_dir].nil?
|
161
161
|
|
162
162
|
check_install_dir
|
163
163
|
check_version
|
@@ -172,7 +172,7 @@ You can use `i` command instead of `install`.
|
|
172
172
|
end
|
173
173
|
|
174
174
|
def install_from_gemdeps # :nodoc:
|
175
|
-
require_relative
|
175
|
+
require_relative "../request_set"
|
176
176
|
rs = Gem::RequestSet.new
|
177
177
|
|
178
178
|
specs = rs.install_from_gemdeps options do |req, inst|
|
@@ -191,8 +191,8 @@ You can use `i` command instead of `install`.
|
|
191
191
|
end
|
192
192
|
|
193
193
|
def install_gem(name, version) # :nodoc:
|
194
|
-
return if options[:conservative]
|
195
|
-
|
194
|
+
return if options[:conservative] &&
|
195
|
+
!Gem::Dependency.new(name, version).matching_specs.empty?
|
196
196
|
|
197
197
|
req = Gem::Requirement.create(version)
|
198
198
|
|
@@ -247,11 +247,11 @@ You can use `i` command instead of `install`.
|
|
247
247
|
|
248
248
|
def load_hooks # :nodoc:
|
249
249
|
if options[:install_as_default]
|
250
|
-
require_relative
|
250
|
+
require_relative "../install_default_message"
|
251
251
|
else
|
252
|
-
require_relative
|
252
|
+
require_relative "../install_message"
|
253
253
|
end
|
254
|
-
require_relative
|
254
|
+
require_relative "../rdoc"
|
255
255
|
end
|
256
256
|
|
257
257
|
def show_install_errors(errors) # :nodoc:
|
@@ -270,7 +270,7 @@ You can use `i` command instead of `install`.
|
|
270
270
|
def show_installed # :nodoc:
|
271
271
|
return if @installed_specs.empty?
|
272
272
|
|
273
|
-
gems = @installed_specs.length == 1 ?
|
273
|
+
gems = @installed_specs.length == 1 ? "gem" : "gems"
|
274
274
|
say "#{@installed_specs.length} #{gems} installed"
|
275
275
|
end
|
276
276
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
3
|
-
require_relative
|
2
|
+
require_relative "../command"
|
3
|
+
require_relative "../query_utils"
|
4
4
|
|
5
5
|
##
|
6
6
|
# Searches for gems starting with the supplied argument.
|
@@ -9,7 +9,7 @@ class Gem::Commands::ListCommand < Gem::Command
|
|
9
9
|
include Gem::QueryUtils
|
10
10
|
|
11
11
|
def initialize
|
12
|
-
super
|
12
|
+
super "list", "Display local gems whose name matches REGEXP",
|
13
13
|
:domain => :local, :details => false, :versions => true,
|
14
14
|
:installed => nil, :version => Gem::Requirement.default
|
15
15
|
|
@@ -1,13 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require_relative
|
2
|
+
require_relative "../command"
|
3
3
|
|
4
4
|
class Gem::Commands::LockCommand < Gem::Command
|
5
5
|
def initialize
|
6
|
-
super
|
6
|
+
super "lock", "Generate a lockdown list of gems",
|
7
7
|
:strict => false
|
8
8
|
|
9
|
-
add_option
|
10
|
-
|
9
|
+
add_option "-s", "--[no-]strict",
|
10
|
+
"fail if unable to satisfy a dependency" do |strict, options|
|
11
11
|
options[:strict] = strict
|
12
12
|
end
|
13
13
|
end
|