rubygems-update 3.2.30 → 3.4.10
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 +1666 -994
- data/CONTRIBUTING.md +71 -15
- data/Manifest.txt +93 -37
- data/POLICIES.md +65 -16
- data/README.md +28 -13
- data/UPGRADING.md +5 -81
- data/bin/gem +2 -10
- data/bin/update_rubygems +5 -5
- data/bundler/CHANGELOG.md +647 -1
- data/bundler/README.md +3 -6
- data/bundler/UPGRADING.md +11 -4
- data/bundler/bundler.gemspec +8 -10
- data/bundler/exe/bundle +7 -11
- data/bundler/exe/bundler +1 -1
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +3 -3
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +5 -1
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +4 -2
- data/bundler/lib/bundler/cli/config.rb +10 -1
- data/bundler/lib/bundler/cli/console.rb +2 -2
- data/bundler/lib/bundler/cli/doctor.rb +10 -3
- data/bundler/lib/bundler/cli/gem.rb +136 -42
- data/bundler/lib/bundler/cli/info.rb +17 -3
- data/bundler/lib/bundler/cli/init.rb +6 -2
- data/bundler/lib/bundler/cli/install.rb +15 -33
- data/bundler/lib/bundler/cli/lock.rb +8 -5
- data/bundler/lib/bundler/cli/open.rb +6 -4
- data/bundler/lib/bundler/cli/outdated.rb +13 -6
- data/bundler/lib/bundler/cli/platform.rb +2 -2
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +8 -4
- data/bundler/lib/bundler/cli/viz.rb +1 -1
- data/bundler/lib/bundler/cli.rb +67 -21
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -10
- data/bundler/lib/bundler/compact_index_client/updater.rb +53 -44
- data/bundler/lib/bundler/compact_index_client.rb +0 -6
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +18 -6
- data/bundler/lib/bundler/definition.rb +259 -242
- data/bundler/lib/bundler/dependency.rb +24 -71
- data/bundler/lib/bundler/digest.rb +1 -1
- data/bundler/lib/bundler/dsl.rb +29 -46
- data/bundler/lib/bundler/endpoint_specification.rb +15 -13
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/environment_preserver.rb +7 -3
- data/bundler/lib/bundler/errors.rb +15 -15
- data/bundler/lib/bundler/feature_flag.rb +0 -1
- data/bundler/lib/bundler/fetcher/base.rb +6 -8
- data/bundler/lib/bundler/fetcher/compact_index.rb +18 -25
- data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
- data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
- data/bundler/lib/bundler/fetcher/index.rb +0 -26
- data/bundler/lib/bundler/fetcher.rb +22 -29
- data/bundler/lib/bundler/force_platform.rb +18 -0
- data/bundler/lib/bundler/friendly_errors.rb +21 -7
- data/bundler/lib/bundler/gem_helper.rb +4 -4
- data/bundler/lib/bundler/gem_helpers.rb +9 -2
- data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
- data/bundler/lib/bundler/graph.rb +3 -3
- data/bundler/lib/bundler/index.rb +13 -51
- data/bundler/lib/bundler/injector.rb +18 -4
- data/bundler/lib/bundler/inline.rb +9 -21
- data/bundler/lib/bundler/installer/gem_installer.rb +13 -5
- data/bundler/lib/bundler/installer/parallel_installer.rb +3 -33
- data/bundler/lib/bundler/installer/standalone.rb +42 -11
- data/bundler/lib/bundler/installer.rb +20 -44
- data/bundler/lib/bundler/lazy_specification.rb +72 -55
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +28 -26
- data/bundler/lib/bundler/man/bundle-add.1 +21 -5
- data/bundler/lib/bundler/man/bundle-add.1.ronn +16 -4
- 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 +2 -2
- data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +34 -15
- data/bundler/lib/bundler/man/bundle-config.1.ronn +31 -19
- 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 +6 -6
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
- data/bundler/lib/bundler/man/bundle-gem.1 +37 -34
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +21 -5
- 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 +5 -1
- data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
- 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 +6 -31
- data/bundler/lib/bundler/man/bundle-install.1.ronn +8 -31
- 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 +22 -2
- data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +3 -10
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -10
- 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 +2 -2
- data/bundler/lib/bundler/man/bundle-update.1.ronn +2 -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 +117 -80
- data/bundler/lib/bundler/man/gemfile.5.ronn +105 -84
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_platform.rb +0 -1
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +5 -7
- data/bundler/lib/bundler/plugin/api/source.rb +4 -9
- data/bundler/lib/bundler/plugin/index.rb +4 -4
- data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -8
- data/bundler/lib/bundler/plugin/installer.rb +6 -3
- data/bundler/lib/bundler/plugin.rb +3 -1
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/remote_specification.rb +7 -5
- data/bundler/lib/bundler/resolver/base.rb +109 -0
- data/bundler/lib/bundler/resolver/candidate.rb +94 -0
- data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
- data/bundler/lib/bundler/resolver/package.rb +72 -0
- data/bundler/lib/bundler/resolver/root.rb +25 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +43 -71
- data/bundler/lib/bundler/resolver.rb +332 -308
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +5 -18
- data/bundler/lib/bundler/rubygems_ext.rb +144 -25
- data/bundler/lib/bundler/rubygems_gem_installer.rb +32 -20
- data/bundler/lib/bundler/rubygems_integration.rb +24 -95
- data/bundler/lib/bundler/runtime.rb +2 -7
- data/bundler/lib/bundler/self_manager.rb +168 -0
- data/bundler/lib/bundler/settings.rb +5 -10
- data/bundler/lib/bundler/setup.rb +4 -1
- data/bundler/lib/bundler/shared_helpers.rb +17 -25
- data/bundler/lib/bundler/source/git/git_proxy.rb +219 -71
- data/bundler/lib/bundler/source/git.rb +23 -26
- data/bundler/lib/bundler/source/metadata.rb +3 -4
- data/bundler/lib/bundler/source/path/installer.rb +1 -22
- data/bundler/lib/bundler/source/path.rb +7 -7
- data/bundler/lib/bundler/source/rubygems.rb +91 -130
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +1 -1
- data/bundler/lib/bundler/source.rb +4 -5
- data/bundler/lib/bundler/source_list.rb +19 -31
- data/bundler/lib/bundler/source_map.rb +15 -2
- data/bundler/lib/bundler/spec_set.rb +63 -35
- data/bundler/lib/bundler/stub_specification.rb +5 -3
- data/bundler/lib/bundler/templates/Executable +3 -5
- data/bundler/lib/bundler/templates/Executable.bundler +6 -11
- data/bundler/lib/bundler/templates/Executable.standalone +4 -4
- data/bundler/lib/bundler/templates/Gemfile +0 -2
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +8 -2
- data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -11
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +27 -3
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +13 -3
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +22 -16
- data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
- data/bundler/lib/bundler/ui/shell.rb +36 -13
- data/bundler/lib/bundler/ui/silent.rb +21 -5
- data/bundler/lib/bundler/uri_normalizer.rb +23 -0
- data/bundler/lib/bundler/vendor/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
- data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +243 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +6 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +6 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +9 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +19 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +23 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +76 -91
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +32 -13
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +14 -21
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -17
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -3
- data/bundler/lib/bundler/vendored_persistent.rb +1 -33
- data/bundler/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
- data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_tsort.rb} +1 -1
- data/bundler/lib/bundler/version.rb +5 -1
- data/bundler/lib/bundler/worker.rb +5 -7
- data/bundler/lib/bundler.rb +50 -77
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +3 -3
- data/lib/rubygems/basic_specification.rb +12 -12
- data/lib/rubygems/bundler_version_finder.rb +14 -46
- data/lib/rubygems/command.rb +47 -39
- data/lib/rubygems/command_manager.rb +34 -13
- data/lib/rubygems/commands/build_command.rb +11 -8
- data/lib/rubygems/commands/cert_command.rb +39 -39
- data/lib/rubygems/commands/check_command.rb +20 -20
- data/lib/rubygems/commands/cleanup_command.rb +23 -23
- data/lib/rubygems/commands/contents_command.rb +13 -13
- data/lib/rubygems/commands/dependency_command.rb +35 -45
- data/lib/rubygems/commands/environment_command.rb +10 -7
- data/lib/rubygems/commands/exec_command.rb +248 -0
- data/lib/rubygems/commands/fetch_command.rb +32 -13
- data/lib/rubygems/commands/generate_index_command.rb +17 -17
- data/lib/rubygems/commands/help_command.rb +6 -6
- data/lib/rubygems/commands/info_command.rb +3 -3
- data/lib/rubygems/commands/install_command.rb +31 -24
- data/lib/rubygems/commands/list_command.rb +4 -4
- 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 +17 -12
- data/lib/rubygems/commands/pristine_command.rb +64 -49
- data/lib/rubygems/commands/push_command.rb +16 -16
- data/lib/rubygems/commands/query_command.rb +9 -9
- data/lib/rubygems/commands/rdoc_command.rb +26 -25
- data/lib/rubygems/commands/search_command.rb +4 -4
- data/lib/rubygems/commands/server_command.rb +16 -79
- data/lib/rubygems/commands/setup_command.rb +172 -173
- 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 +22 -22
- data/lib/rubygems/commands/specification_command.rb +18 -18
- data/lib/rubygems/commands/stale_command.rb +2 -2
- data/lib/rubygems/commands/uninstall_command.rb +43 -40
- data/lib/rubygems/commands/unpack_command.rb +13 -13
- data/lib/rubygems/commands/update_command.rb +61 -72
- data/lib/rubygems/commands/which_command.rb +7 -7
- data/lib/rubygems/commands/yank_command.rb +11 -11
- data/lib/rubygems/compatibility.rb +4 -2
- data/lib/rubygems/config_file.rb +58 -25
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
- data/lib/rubygems/core_ext/kernel_require.rb +108 -115
- data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
- data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
- data/lib/rubygems/defaults.rb +32 -36
- data/lib/rubygems/dependency.rb +20 -17
- data/lib/rubygems/dependency_installer.rb +37 -37
- data/lib/rubygems/dependency_list.rb +7 -7
- data/lib/rubygems/deprecate.rb +55 -8
- data/lib/rubygems/doctor.rb +21 -21
- data/lib/rubygems/errors.rb +3 -6
- data/lib/rubygems/exceptions.rb +35 -7
- data/lib/rubygems/ext/build_error.rb +1 -1
- data/lib/rubygems/ext/builder.rb +51 -22
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
- data/lib/rubygems/ext/cargo_builder.rb +360 -0
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +1 -1
- data/lib/rubygems/ext/ext_conf_builder.rb +35 -59
- data/lib/rubygems/ext/rake_builder.rb +3 -3
- data/lib/rubygems/ext.rb +7 -6
- data/lib/rubygems/gem_runner.rb +12 -16
- data/lib/rubygems/gemcutter_utilities.rb +60 -21
- data/lib/rubygems/indexer.rb +30 -28
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +70 -61
- data/lib/rubygems/installer.rb +135 -87
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
- data/lib/rubygems/local_remote_options.rb +22 -24
- data/lib/rubygems/mock_gem_ui.rb +2 -2
- data/lib/rubygems/name_tuple.rb +6 -7
- data/lib/rubygems/optparse/.document +1 -0
- data/lib/rubygems/optparse/COPYING +56 -0
- data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
- data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
- data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
- data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
- data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
- data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
- data/lib/rubygems/optparse/lib/optparse.rb +2308 -0
- data/lib/rubygems/optparse.rb +3 -0
- data/lib/rubygems/package/file_source.rb +2 -2
- data/lib/rubygems/package/old.rb +9 -9
- data/lib/rubygems/package/tar_header.rb +62 -62
- data/lib/rubygems/package/tar_reader/entry.rb +90 -9
- data/lib/rubygems/package/tar_reader.rb +1 -29
- data/lib/rubygems/package/tar_writer.rb +7 -7
- data/lib/rubygems/package.rb +77 -60
- data/lib/rubygems/package_task.rb +4 -4
- data/lib/rubygems/path_support.rb +1 -6
- data/lib/rubygems/platform.rb +94 -61
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/query_utils.rb +49 -51
- data/lib/rubygems/rdoc.rb +2 -2
- data/lib/rubygems/remote_fetcher.rb +27 -27
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +1 -1
- data/lib/rubygems/request.rb +24 -24
- data/lib/rubygems/request_set/gem_dependency_api.rb +122 -123
- 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 +9 -9
- data/lib/rubygems/request_set.rb +18 -18
- data/lib/rubygems/requirement.rb +15 -15
- 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 +21 -26
- 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/lib/molinillo/dependency_graph.rb +3 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/specification.rb +1 -1
- data/lib/rubygems/resolver/stats.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 +40 -40
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_yaml.rb +10 -10
- data/lib/rubygems/security/policies.rb +47 -47
- data/lib/rubygems/security/policy.rb +19 -21
- data/lib/rubygems/security/signer.rb +5 -5
- data/lib/rubygems/security/trust_dir.rb +4 -4
- data/lib/rubygems/security.rb +37 -43
- data/lib/rubygems/security_option.rb +7 -7
- data/lib/rubygems/source/git.rb +25 -24
- 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 +27 -32
- data/lib/rubygems/source_list.rb +5 -9
- data/lib/rubygems/spec_fetcher.rb +37 -37
- data/lib/rubygems/specification.rb +265 -211
- data/lib/rubygems/specification_policy.rb +49 -30
- data/lib/rubygems/stub_specification.rb +24 -27
- data/lib/rubygems/text.rb +22 -21
- data/lib/rubygems/tsort/.document +1 -0
- data/lib/rubygems/tsort/LICENSE.txt +22 -0
- data/lib/rubygems/tsort/lib/tsort.rb +452 -0
- data/lib/rubygems/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +29 -26
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/update_suggestion.rb +69 -0
- data/lib/rubygems/uri.rb +45 -30
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +42 -28
- data/lib/rubygems/util/licenses.rb +4 -2
- data/lib/rubygems/util.rb +12 -16
- data/lib/rubygems/validator.rb +6 -6
- data/lib/rubygems/version.rb +28 -17
- data/lib/rubygems/version_option.rb +5 -5
- data/lib/rubygems.rb +129 -117
- data/rubygems-update.gemspec +3 -3
- data/setup.rb +11 -16
- data/test/rubygems/alternate_cert.pem +14 -14
- data/test/rubygems/alternate_cert_32.pem +15 -15
- data/test/rubygems/alternate_key.pem +25 -25
- data/test/rubygems/bundler_test_gem.rb +419 -0
- data/test/rubygems/child_cert.pem +15 -16
- data/test/rubygems/child_cert_32.pem +15 -16
- data/test/rubygems/child_key.pem +25 -25
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +26 -26
- data/test/rubygems/expired_cert.pem +15 -15
- data/test/rubygems/future_cert.pem +15 -15
- data/test/rubygems/future_cert_32.pem +15 -15
- data/test/rubygems/grandchild_cert.pem +15 -16
- data/test/rubygems/grandchild_cert_32.pem +15 -16
- data/test/rubygems/grandchild_key.pem +25 -25
- data/test/rubygems/helper.rb +237 -207
- data/test/rubygems/installer_test_case.rb +13 -13
- data/test/rubygems/invalid_issuer_cert.pem +16 -16
- data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
- data/test/rubygems/invalid_key.pem +25 -25
- data/test/rubygems/invalid_signer_cert.pem +15 -15
- data/test/rubygems/invalid_signer_cert_32.pem +15 -15
- data/test/rubygems/invalidchild_cert.pem +15 -16
- data/test/rubygems/invalidchild_cert_32.pem +15 -16
- data/test/rubygems/invalidchild_key.pem +25 -25
- data/test/rubygems/package/tar_test_case.rb +52 -17
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/private_key.pem +25 -25
- data/test/rubygems/public_cert.pem +16 -16
- data/test/rubygems/public_cert_32.pem +15 -15
- data/test/rubygems/public_key.pem +7 -7
- data/test/rubygems/rubygems_plugin.rb +2 -2
- data/test/rubygems/simple_gem.rb +1 -1
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
- data/test/rubygems/test_bundled_ca.rb +11 -11
- data/test/rubygems/test_config.rb +5 -5
- data/test/rubygems/test_deprecate.rb +3 -3
- data/test/rubygems/test_exit.rb +17 -0
- data/test/rubygems/test_gem.rb +367 -757
- data/test/rubygems/test_gem_available_set.rb +21 -21
- data/test/rubygems/test_gem_bundler_version_finder.rb +27 -47
- data/test/rubygems/test_gem_command.rb +45 -45
- data/test/rubygems/test_gem_command_manager.rb +124 -27
- data/test/rubygems/test_gem_commands_build_command.rb +73 -63
- data/test/rubygems/test_gem_commands_cert_command.rb +105 -107
- 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 +28 -28
- data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
- data/test/rubygems/test_gem_commands_environment_command.rb +38 -14
- data/test/rubygems/test_gem_commands_exec_command.rb +851 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +159 -26
- 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 +200 -132
- 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 +5 -5
- data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
- data/test/rubygems/test_gem_commands_owner_command.rb +126 -45
- data/test/rubygems/test_gem_commands_pristine_command.rb +141 -92
- data/test/rubygems/test_gem_commands_push_command.rb +85 -59
- 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 +6 -48
- data/test/rubygems/test_gem_commands_setup_command.rb +169 -92
- data/test/rubygems/test_gem_commands_signin_command.rb +154 -26
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +74 -25
- 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 +99 -82
- data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
- data/test/rubygems/test_gem_commands_update_command.rb +202 -91
- data/test/rubygems/test_gem_commands_which_command.rb +6 -6
- data/test/rubygems/test_gem_commands_yank_command.rb +43 -43
- data/test/rubygems/test_gem_config_file.rb +93 -81
- data/test/rubygems/test_gem_dependency.rb +78 -80
- 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 +60 -62
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +8 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +233 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +27 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +247 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +51 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +166 -0
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +60 -0
- data/test/rubygems/test_gem_ext_cmake_builder.rb +17 -15
- data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +53 -50
- data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
- data/test/rubygems/test_gem_gem_runner.rb +13 -8
- data/test/rubygems/test_gem_gemcutter_utilities.rb +71 -65
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
- data/test/rubygems/test_gem_indexer.rb +90 -67
- data/test/rubygems/test_gem_install_update_options.rb +18 -18
- data/test/rubygems/test_gem_installer.rb +511 -327
- 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 +246 -236
- data/test/rubygems/test_gem_package_old.rb +13 -13
- data/test/rubygems/test_gem_package_tar_header.rb +47 -47
- data/test/rubygems/test_gem_package_tar_reader.rb +55 -8
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +161 -16
- 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 +15 -19
- data/test/rubygems/test_gem_platform.rb +335 -214
- data/test/rubygems/test_gem_rdoc.rb +14 -14
- data/test/rubygems/test_gem_remote_fetcher.rb +169 -154
- data/test/rubygems/test_gem_request.rb +65 -59
- data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
- data/test/rubygems/test_gem_request_set.rb +100 -100
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +209 -211
- data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -58
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
- data/test/rubygems/test_gem_requirement.rb +47 -42
- data/test/rubygems/test_gem_resolver.rb +173 -106
- 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 +79 -35
- 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 +69 -69
- data/test/rubygems/test_gem_security_policy.rb +72 -72
- data/test/rubygems/test_gem_security_signer.rb +34 -34
- data/test/rubygems/test_gem_security_trust_dir.rb +6 -6
- 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 +69 -62
- 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 +560 -493
- data/test/rubygems/test_gem_stream_ui.rb +20 -20
- data/test/rubygems/test_gem_stub_specification.rb +32 -48
- data/test/rubygems/test_gem_text.rb +7 -1
- data/test/rubygems/test_gem_uninstaller.rb +113 -113
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
- data/test/rubygems/test_gem_update_suggestion.rb +208 -0
- 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 +27 -16
- data/test/rubygems/test_gem_version_option.rb +15 -15
- data/test/rubygems/test_kernel.rb +42 -60
- data/test/rubygems/test_project_sanity.rb +2 -2
- data/test/rubygems/test_remote_fetch_error.rb +6 -6
- data/test/rubygems/test_require.rb +132 -174
- data/test/rubygems/test_rubygems.rb +42 -12
- data/test/rubygems/utilities.rb +59 -37
- data/test/rubygems/wrong_key_cert.pem +15 -15
- data/test/rubygems/wrong_key_cert_32.pem +15 -15
- data/test/test_changelog_generator.rb +1 -0
- metadata +97 -41
- data/bundler/lib/bundler/dep_proxy.rb +0 -55
- data/bundler/lib/bundler/gemdeps.rb +0 -29
- data/bundler/lib/bundler/psyched_yaml.rb +0 -22
- data/bundler/lib/bundler/templates/gems.rb +0 -8
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
- data/bundler/lib/bundler/version_ranges.rb +0 -122
- data/lib/rubygems/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -882
- data/test/rubygems/bogussources.rb +0 -9
- data/test/rubygems/data/null-type.gemspec.rz +0 -0
- data/test/rubygems/test_gem_server.rb +0 -608
- /data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +0 -0
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
require_relative
|
|
3
|
-
|
|
4
|
-
require
|
|
5
|
-
require
|
|
2
|
+
require_relative "helper"
|
|
3
|
+
require_relative "test_gem_update_suggestion"
|
|
4
|
+
require "rubygems/commands/install_command"
|
|
5
|
+
require "rubygems/request_set"
|
|
6
|
+
require "rubygems/rdoc"
|
|
6
7
|
|
|
7
8
|
class TestGemCommandsInstallCommand < Gem::TestCase
|
|
8
9
|
def setup
|
|
10
|
+
@orig_args = Gem::Command.build_args
|
|
9
11
|
super
|
|
10
12
|
common_installer_setup
|
|
11
13
|
|
|
@@ -13,7 +15,6 @@ class TestGemCommandsInstallCommand < Gem::TestCase
|
|
|
13
15
|
@cmd.options[:document] = []
|
|
14
16
|
|
|
15
17
|
@gemdeps = "tmp_install_gemdeps"
|
|
16
|
-
@orig_args = Gem::Command.build_args
|
|
17
18
|
|
|
18
19
|
common_installer_setup
|
|
19
20
|
end
|
|
@@ -30,8 +31,8 @@ class TestGemCommandsInstallCommand < Gem::TestCase
|
|
|
30
31
|
|
|
31
32
|
def test_execute_exclude_prerelease
|
|
32
33
|
spec_fetcher do |fetcher|
|
|
33
|
-
fetcher.gem
|
|
34
|
-
fetcher.gem
|
|
34
|
+
fetcher.gem "a", 2
|
|
35
|
+
fetcher.gem "a", "2.pre"
|
|
35
36
|
end
|
|
36
37
|
|
|
37
38
|
@cmd.options[:args] = %w[a]
|
|
@@ -47,13 +48,13 @@ class TestGemCommandsInstallCommand < Gem::TestCase
|
|
|
47
48
|
|
|
48
49
|
def test_execute_explicit_version_includes_prerelease
|
|
49
50
|
specs = spec_fetcher do |fetcher|
|
|
50
|
-
fetcher.gem
|
|
51
|
-
fetcher.gem
|
|
51
|
+
fetcher.gem "a", 2
|
|
52
|
+
fetcher.gem "a", "2.a"
|
|
52
53
|
end
|
|
53
54
|
|
|
54
|
-
a2_pre = specs[
|
|
55
|
+
a2_pre = specs["a-2.a"]
|
|
55
56
|
|
|
56
|
-
@cmd.handle_options [a2_pre.name,
|
|
57
|
+
@cmd.handle_options [a2_pre.name, "--version", a2_pre.version.to_s,
|
|
57
58
|
"--no-document"]
|
|
58
59
|
assert @cmd.options[:prerelease]
|
|
59
60
|
assert @cmd.options[:version].satisfied_by?(a2_pre.version)
|
|
@@ -69,12 +70,12 @@ class TestGemCommandsInstallCommand < Gem::TestCase
|
|
|
69
70
|
|
|
70
71
|
def test_execute_local
|
|
71
72
|
specs = spec_fetcher do |fetcher|
|
|
72
|
-
fetcher.gem
|
|
73
|
+
fetcher.gem "a", 2
|
|
73
74
|
end
|
|
74
75
|
|
|
75
76
|
@cmd.options[:domain] = :local
|
|
76
77
|
|
|
77
|
-
FileUtils.mv specs[
|
|
78
|
+
FileUtils.mv specs["a-2"].cache_file, @tempdir
|
|
78
79
|
|
|
79
80
|
@cmd.options[:args] = %w[a]
|
|
80
81
|
|
|
@@ -97,14 +98,14 @@ class TestGemCommandsInstallCommand < Gem::TestCase
|
|
|
97
98
|
|
|
98
99
|
def test_execute_local_dependency_nonexistent
|
|
99
100
|
specs = spec_fetcher do |fetcher|
|
|
100
|
-
fetcher.gem
|
|
101
|
+
fetcher.gem "foo", 2, "bar" => "0.5"
|
|
101
102
|
end
|
|
102
103
|
|
|
103
104
|
@cmd.options[:domain] = :local
|
|
104
105
|
|
|
105
|
-
FileUtils.mv specs[
|
|
106
|
+
FileUtils.mv specs["foo-2"].cache_file, @tempdir
|
|
106
107
|
|
|
107
|
-
@cmd.options[:args] = [
|
|
108
|
+
@cmd.options[:args] = ["foo"]
|
|
108
109
|
|
|
109
110
|
use_ui @ui do
|
|
110
111
|
orig_dir = Dir.pwd
|
|
@@ -128,15 +129,15 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
|
128
129
|
|
|
129
130
|
def test_execute_local_dependency_nonexistent_ignore_dependencies
|
|
130
131
|
specs = spec_fetcher do |fetcher|
|
|
131
|
-
fetcher.gem
|
|
132
|
+
fetcher.gem "foo", 2, "bar" => "0.5"
|
|
132
133
|
end
|
|
133
134
|
|
|
134
135
|
@cmd.options[:domain] = :local
|
|
135
136
|
@cmd.options[:ignore_dependencies] = true
|
|
136
137
|
|
|
137
|
-
FileUtils.mv specs[
|
|
138
|
+
FileUtils.mv specs["foo-2"].cache_file, @tempdir
|
|
138
139
|
|
|
139
|
-
@cmd.options[:args] = [
|
|
140
|
+
@cmd.options[:args] = ["foo"]
|
|
140
141
|
|
|
141
142
|
use_ui @ui do
|
|
142
143
|
orig_dir = Dir.pwd
|
|
@@ -155,16 +156,16 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
|
155
156
|
|
|
156
157
|
def test_execute_local_transitive_prerelease
|
|
157
158
|
specs = spec_fetcher do |fetcher|
|
|
158
|
-
fetcher.download
|
|
159
|
-
fetcher.download
|
|
160
|
-
fetcher.download
|
|
159
|
+
fetcher.download "a", 2, "b" => "2.a", "c" => "3"
|
|
160
|
+
fetcher.download "b", "2.a"
|
|
161
|
+
fetcher.download "c", "3"
|
|
161
162
|
end
|
|
162
163
|
|
|
163
164
|
@cmd.options[:domain] = :local
|
|
164
165
|
|
|
165
|
-
FileUtils.mv specs[
|
|
166
|
-
FileUtils.mv specs[
|
|
167
|
-
FileUtils.mv specs[
|
|
166
|
+
FileUtils.mv specs["a-2"].cache_file, @tempdir
|
|
167
|
+
FileUtils.mv specs["b-2.a"].cache_file, @tempdir
|
|
168
|
+
FileUtils.mv specs["c-3"].cache_file, @tempdir
|
|
168
169
|
|
|
169
170
|
@cmd.options[:args] = %w[a]
|
|
170
171
|
|
|
@@ -187,16 +188,16 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
|
187
188
|
end
|
|
188
189
|
|
|
189
190
|
def test_execute_no_user_install
|
|
190
|
-
pend
|
|
191
|
-
pend
|
|
191
|
+
pend "skipped on MS Windows (chmod has no effect)" if win_platform?
|
|
192
|
+
pend "skipped in root privilege" if Process.uid.zero?
|
|
192
193
|
|
|
193
194
|
specs = spec_fetcher do |fetcher|
|
|
194
|
-
fetcher.gem
|
|
195
|
+
fetcher.gem "a", 2
|
|
195
196
|
end
|
|
196
197
|
|
|
197
198
|
@cmd.options[:user_install] = false
|
|
198
199
|
|
|
199
|
-
FileUtils.mv specs[
|
|
200
|
+
FileUtils.mv specs["a-2"].cache_file, @tempdir
|
|
200
201
|
|
|
201
202
|
@cmd.options[:args] = %w[a]
|
|
202
203
|
|
|
@@ -277,12 +278,28 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
|
277
278
|
assert_match(/ould not find a valid gem 'nonexistent'/, @ui.error)
|
|
278
279
|
end
|
|
279
280
|
|
|
281
|
+
def test_execute_nonexistent_force
|
|
282
|
+
spec_fetcher
|
|
283
|
+
|
|
284
|
+
@cmd.options[:args] = %w[nonexistent]
|
|
285
|
+
@cmd.options[:force] = true
|
|
286
|
+
|
|
287
|
+
use_ui @ui do
|
|
288
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
|
289
|
+
@cmd.execute
|
|
290
|
+
end
|
|
291
|
+
assert_equal 2, e.exit_code
|
|
292
|
+
end
|
|
293
|
+
|
|
294
|
+
assert_match(/ould not find a valid gem 'nonexistent'/, @ui.error)
|
|
295
|
+
end
|
|
296
|
+
|
|
280
297
|
def test_execute_dependency_nonexistent
|
|
281
298
|
spec_fetcher do |fetcher|
|
|
282
|
-
fetcher.spec
|
|
299
|
+
fetcher.spec "foo", 2, "bar" => "0.5"
|
|
283
300
|
end
|
|
284
301
|
|
|
285
|
-
@cmd.options[:args] = [
|
|
302
|
+
@cmd.options[:args] = ["foo"]
|
|
286
303
|
|
|
287
304
|
use_ui @ui do
|
|
288
305
|
e = assert_raise Gem::MockGemUi::TermError do
|
|
@@ -435,8 +452,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
435
452
|
|
|
436
453
|
def test_execute_prerelease_skipped_when_no_flag_set
|
|
437
454
|
spec_fetcher do |fetcher|
|
|
438
|
-
fetcher.gem
|
|
439
|
-
fetcher.gem
|
|
455
|
+
fetcher.gem "a", 1
|
|
456
|
+
fetcher.gem "a", "3.a"
|
|
440
457
|
end
|
|
441
458
|
|
|
442
459
|
@cmd.options[:prerelease] = false
|
|
@@ -453,8 +470,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
453
470
|
|
|
454
471
|
def test_execute_prerelease_wins_over_previous_ver
|
|
455
472
|
spec_fetcher do |fetcher|
|
|
456
|
-
fetcher.download
|
|
457
|
-
fetcher.download
|
|
473
|
+
fetcher.download "a", 1
|
|
474
|
+
fetcher.download "a", "2.a"
|
|
458
475
|
end
|
|
459
476
|
|
|
460
477
|
@cmd.options[:prerelease] = true
|
|
@@ -471,8 +488,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
471
488
|
|
|
472
489
|
def test_execute_with_version_specified_by_colon
|
|
473
490
|
spec_fetcher do |fetcher|
|
|
474
|
-
fetcher.download
|
|
475
|
-
fetcher.download
|
|
491
|
+
fetcher.download "a", 1
|
|
492
|
+
fetcher.download "a", 2
|
|
476
493
|
end
|
|
477
494
|
|
|
478
495
|
@cmd.options[:args] = %w[a:1]
|
|
@@ -488,8 +505,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
488
505
|
|
|
489
506
|
def test_execute_prerelease_skipped_when_non_pre_available
|
|
490
507
|
spec_fetcher do |fetcher|
|
|
491
|
-
fetcher.gem
|
|
492
|
-
fetcher.gem
|
|
508
|
+
fetcher.gem "a", "2.pre"
|
|
509
|
+
fetcher.gem "a", 2
|
|
493
510
|
end
|
|
494
511
|
|
|
495
512
|
@cmd.options[:prerelease] = true
|
|
@@ -505,19 +522,19 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
505
522
|
end
|
|
506
523
|
|
|
507
524
|
def test_execute_required_ruby_version
|
|
508
|
-
next_ruby = Gem.ruby_version.segments.map.with_index{|n, i| i == 1 ? n + 1 : n }.join(".")
|
|
525
|
+
next_ruby = Gem.ruby_version.segments.map.with_index {|n, i| i == 1 ? n + 1 : n }.join(".")
|
|
509
526
|
|
|
510
527
|
local = Gem::Platform.local
|
|
511
528
|
spec_fetcher do |fetcher|
|
|
512
|
-
fetcher.download
|
|
513
|
-
fetcher.download
|
|
529
|
+
fetcher.download "a", 2
|
|
530
|
+
fetcher.download "a", 2 do |s|
|
|
514
531
|
s.required_ruby_version = "< #{RUBY_VERSION}.a"
|
|
515
532
|
s.platform = local
|
|
516
533
|
end
|
|
517
|
-
fetcher.download
|
|
534
|
+
fetcher.download "a", 3 do |s|
|
|
518
535
|
s.required_ruby_version = ">= #{next_ruby}"
|
|
519
536
|
end
|
|
520
|
-
fetcher.download
|
|
537
|
+
fetcher.download "a", 3 do |s|
|
|
521
538
|
s.required_ruby_version = ">= #{next_ruby}"
|
|
522
539
|
s.platform = local
|
|
523
540
|
end
|
|
@@ -537,8 +554,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
537
554
|
def test_execute_required_ruby_version_upper_bound
|
|
538
555
|
local = Gem::Platform.local
|
|
539
556
|
spec_fetcher do |fetcher|
|
|
540
|
-
fetcher.gem
|
|
541
|
-
fetcher.gem
|
|
557
|
+
fetcher.gem "a", 2.0
|
|
558
|
+
fetcher.gem "a", 2.0 do |s|
|
|
542
559
|
s.required_ruby_version = "< #{RUBY_VERSION}.a"
|
|
543
560
|
s.platform = local
|
|
544
561
|
end
|
|
@@ -557,8 +574,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
557
574
|
|
|
558
575
|
def test_execute_required_ruby_version_specific_not_met
|
|
559
576
|
spec_fetcher do |fetcher|
|
|
560
|
-
fetcher.gem
|
|
561
|
-
s.required_ruby_version =
|
|
577
|
+
fetcher.gem "a", "1.0" do |s|
|
|
578
|
+
s.required_ruby_version = "= 1.4.6"
|
|
562
579
|
end
|
|
563
580
|
end
|
|
564
581
|
|
|
@@ -577,8 +594,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
577
594
|
|
|
578
595
|
def test_execute_required_ruby_version_specific_prerelease_met
|
|
579
596
|
spec_fetcher do |fetcher|
|
|
580
|
-
fetcher.gem
|
|
581
|
-
s.required_ruby_version =
|
|
597
|
+
fetcher.gem "a", "1.0" do |s|
|
|
598
|
+
s.required_ruby_version = ">= 1.4.6.preview2"
|
|
582
599
|
end
|
|
583
600
|
end
|
|
584
601
|
|
|
@@ -594,10 +611,10 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
594
611
|
end
|
|
595
612
|
|
|
596
613
|
def test_execute_required_ruby_version_specific_prerelease_not_met
|
|
597
|
-
next_ruby_pre = Gem.ruby_version.segments.map.with_index{|n, i| i == 1 ? n + 1 : n }.join(".") + ".a"
|
|
614
|
+
next_ruby_pre = Gem.ruby_version.segments.map.with_index {|n, i| i == 1 ? n + 1 : n }.join(".") + ".a"
|
|
598
615
|
|
|
599
616
|
spec_fetcher do |fetcher|
|
|
600
|
-
fetcher.gem
|
|
617
|
+
fetcher.gem "a", "1.0" do |s|
|
|
601
618
|
s.required_ruby_version = "> #{next_ruby_pre}"
|
|
602
619
|
end
|
|
603
620
|
end
|
|
@@ -617,8 +634,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
617
634
|
|
|
618
635
|
def test_execute_required_rubygems_version_wrong
|
|
619
636
|
spec_fetcher do |fetcher|
|
|
620
|
-
fetcher.gem
|
|
621
|
-
s.required_rubygems_version =
|
|
637
|
+
fetcher.gem "a", "1.0" do |s|
|
|
638
|
+
s.required_rubygems_version = "< 0"
|
|
622
639
|
end
|
|
623
640
|
end
|
|
624
641
|
|
|
@@ -637,7 +654,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
637
654
|
|
|
638
655
|
def test_execute_rdoc
|
|
639
656
|
specs = spec_fetcher do |fetcher|
|
|
640
|
-
fetcher.gem
|
|
657
|
+
fetcher.gem "a", 2
|
|
641
658
|
end
|
|
642
659
|
|
|
643
660
|
Gem.done_installing(&Gem::RDoc.method(:generation_hook))
|
|
@@ -645,7 +662,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
645
662
|
@cmd.options[:document] = %w[rdoc ri]
|
|
646
663
|
@cmd.options[:domain] = :local
|
|
647
664
|
|
|
648
|
-
a2 = specs[
|
|
665
|
+
a2 = specs["a-2"]
|
|
649
666
|
FileUtils.mv a2.cache_file, @tempdir
|
|
650
667
|
|
|
651
668
|
@cmd.options[:args] = %w[a]
|
|
@@ -667,22 +684,22 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
667
684
|
|
|
668
685
|
wait_for_child_process_to_exit
|
|
669
686
|
|
|
670
|
-
assert_path_exist File.join(a2.doc_dir,
|
|
671
|
-
assert_path_exist File.join(a2.doc_dir,
|
|
687
|
+
assert_path_exist File.join(a2.doc_dir, "ri")
|
|
688
|
+
assert_path_exist File.join(a2.doc_dir, "rdoc")
|
|
672
689
|
end
|
|
673
690
|
|
|
674
691
|
def test_execute_rdoc_with_path
|
|
675
692
|
specs = spec_fetcher do |fetcher|
|
|
676
|
-
fetcher.gem
|
|
693
|
+
fetcher.gem "a", 2
|
|
677
694
|
end
|
|
678
695
|
|
|
679
696
|
Gem.done_installing(&Gem::RDoc.method(:generation_hook))
|
|
680
697
|
|
|
681
698
|
@cmd.options[:document] = %w[rdoc ri]
|
|
682
699
|
@cmd.options[:domain] = :local
|
|
683
|
-
@cmd.options[:install_dir] =
|
|
700
|
+
@cmd.options[:install_dir] = "whatever"
|
|
684
701
|
|
|
685
|
-
a2 = specs[
|
|
702
|
+
a2 = specs["a-2"]
|
|
686
703
|
FileUtils.mv a2.cache_file, @tempdir
|
|
687
704
|
|
|
688
705
|
@cmd.options[:args] = %w[a]
|
|
@@ -704,19 +721,19 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
704
721
|
|
|
705
722
|
wait_for_child_process_to_exit
|
|
706
723
|
|
|
707
|
-
assert_path_exist
|
|
724
|
+
assert_path_exist "whatever/doc/a-2", "documentation not installed"
|
|
708
725
|
end
|
|
709
726
|
|
|
710
727
|
def test_execute_saves_build_args
|
|
711
728
|
specs = spec_fetcher do |fetcher|
|
|
712
|
-
fetcher.gem
|
|
729
|
+
fetcher.gem "a", 2
|
|
713
730
|
end
|
|
714
731
|
|
|
715
732
|
args = %w[--with-awesome=true --more-awesome=yes]
|
|
716
733
|
|
|
717
734
|
Gem::Command.build_args = args
|
|
718
735
|
|
|
719
|
-
a2 = specs[
|
|
736
|
+
a2 = specs["a-2"]
|
|
720
737
|
FileUtils.mv a2.cache_file, @tempdir
|
|
721
738
|
|
|
722
739
|
@cmd.options[:domain] = :local
|
|
@@ -746,7 +763,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
746
763
|
|
|
747
764
|
def test_execute_remote
|
|
748
765
|
spec_fetcher do |fetcher|
|
|
749
|
-
fetcher.gem
|
|
766
|
+
fetcher.gem "a", 2
|
|
750
767
|
end
|
|
751
768
|
|
|
752
769
|
@cmd.options[:args] = %w[a]
|
|
@@ -766,7 +783,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
766
783
|
FileUtils.touch("a.gem")
|
|
767
784
|
|
|
768
785
|
spec_fetcher do |fetcher|
|
|
769
|
-
fetcher.gem
|
|
786
|
+
fetcher.gem "a", 2
|
|
770
787
|
end
|
|
771
788
|
|
|
772
789
|
@cmd.options[:args] = %w[a]
|
|
@@ -782,16 +799,49 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
782
799
|
assert_match "1 gem installed", @ui.output
|
|
783
800
|
end
|
|
784
801
|
|
|
802
|
+
def test_execute_remote_truncates_existing_gemspecs
|
|
803
|
+
spec_fetcher do |fetcher|
|
|
804
|
+
fetcher.gem "a", 1
|
|
805
|
+
end
|
|
806
|
+
|
|
807
|
+
@cmd.options[:domain] = :remote
|
|
808
|
+
|
|
809
|
+
@cmd.options[:args] = %w[a]
|
|
810
|
+
|
|
811
|
+
use_ui @ui do
|
|
812
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
|
813
|
+
@cmd.execute
|
|
814
|
+
end
|
|
815
|
+
end
|
|
816
|
+
|
|
817
|
+
assert_equal %w[a-1], @cmd.installed_specs.map {|spec| spec.full_name }
|
|
818
|
+
assert_match "1 gem installed", @ui.output
|
|
819
|
+
|
|
820
|
+
a1_gemspec = File.join(@gemhome, "specifications", "a-1.gemspec")
|
|
821
|
+
|
|
822
|
+
initial_a1_gemspec_content = File.read(a1_gemspec)
|
|
823
|
+
modified_a1_gemspec_content = initial_a1_gemspec_content + "\n # AAAAAAA\n"
|
|
824
|
+
File.write(a1_gemspec, modified_a1_gemspec_content)
|
|
825
|
+
|
|
826
|
+
use_ui @ui do
|
|
827
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
|
828
|
+
@cmd.execute
|
|
829
|
+
end
|
|
830
|
+
end
|
|
831
|
+
|
|
832
|
+
assert_equal initial_a1_gemspec_content, File.read(a1_gemspec)
|
|
833
|
+
end
|
|
834
|
+
|
|
785
835
|
def test_execute_remote_ignores_files
|
|
786
836
|
specs = spec_fetcher do |fetcher|
|
|
787
|
-
fetcher.gem
|
|
788
|
-
fetcher.gem
|
|
837
|
+
fetcher.gem "a", 1
|
|
838
|
+
fetcher.gem "a", 2
|
|
789
839
|
end
|
|
790
840
|
|
|
791
841
|
@cmd.options[:domain] = :remote
|
|
792
842
|
|
|
793
|
-
a1 = specs[
|
|
794
|
-
a2 = specs[
|
|
843
|
+
a1 = specs["a-1"]
|
|
844
|
+
a2 = specs["a-2"]
|
|
795
845
|
|
|
796
846
|
FileUtils.mv a2.cache_file, @tempdir
|
|
797
847
|
|
|
@@ -800,7 +850,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
800
850
|
|
|
801
851
|
@cmd.options[:args] = [a2.name]
|
|
802
852
|
|
|
803
|
-
gemdir = File.join @gemhome,
|
|
853
|
+
gemdir = File.join @gemhome, "specifications"
|
|
804
854
|
|
|
805
855
|
a2_gemspec = File.join(gemdir, "a-2.gemspec")
|
|
806
856
|
a1_gemspec = File.join(gemdir, "a-1.gemspec")
|
|
@@ -829,12 +879,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
829
879
|
|
|
830
880
|
def test_execute_two
|
|
831
881
|
specs = spec_fetcher do |fetcher|
|
|
832
|
-
fetcher.gem
|
|
833
|
-
fetcher.gem
|
|
882
|
+
fetcher.gem "a", 2
|
|
883
|
+
fetcher.gem "b", 2
|
|
834
884
|
end
|
|
835
885
|
|
|
836
|
-
FileUtils.mv specs[
|
|
837
|
-
FileUtils.mv specs[
|
|
886
|
+
FileUtils.mv specs["a-2"].cache_file, @tempdir
|
|
887
|
+
FileUtils.mv specs["b-2"].cache_file, @tempdir
|
|
838
888
|
|
|
839
889
|
@cmd.options[:domain] = :local
|
|
840
890
|
|
|
@@ -880,10 +930,10 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
880
930
|
|
|
881
931
|
def test_execute_two_version_specified_by_colon
|
|
882
932
|
spec_fetcher do |fetcher|
|
|
883
|
-
fetcher.gem
|
|
884
|
-
fetcher.gem
|
|
885
|
-
fetcher.gem
|
|
886
|
-
fetcher.gem
|
|
933
|
+
fetcher.gem "a", 1
|
|
934
|
+
fetcher.gem "a", 2
|
|
935
|
+
fetcher.gem "b", 1
|
|
936
|
+
fetcher.gem "b", 2
|
|
887
937
|
end
|
|
888
938
|
|
|
889
939
|
@cmd.options[:args] = %w[a:1 b:1]
|
|
@@ -899,9 +949,9 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
899
949
|
|
|
900
950
|
def test_execute_conservative
|
|
901
951
|
spec_fetcher do |fetcher|
|
|
902
|
-
fetcher.download
|
|
952
|
+
fetcher.download "b", 2
|
|
903
953
|
|
|
904
|
-
fetcher.gem
|
|
954
|
+
fetcher.gem "a", 2
|
|
905
955
|
end
|
|
906
956
|
|
|
907
957
|
@cmd.options[:conservative] = true
|
|
@@ -932,7 +982,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
932
982
|
done_installing = true
|
|
933
983
|
end
|
|
934
984
|
|
|
935
|
-
spec = util_spec
|
|
985
|
+
spec = util_spec "a", 2
|
|
936
986
|
|
|
937
987
|
util_build_gem spec
|
|
938
988
|
|
|
@@ -940,21 +990,21 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
940
990
|
|
|
941
991
|
@cmd.options[:ignore_dependencies] = true
|
|
942
992
|
|
|
943
|
-
@cmd.install_gem
|
|
993
|
+
@cmd.install_gem "a", ">= 0"
|
|
944
994
|
|
|
945
995
|
assert_equal %w[a-2], @cmd.installed_specs.map {|s| s.full_name }
|
|
946
996
|
|
|
947
|
-
assert done_installing,
|
|
997
|
+
assert done_installing, "documentation was not generated"
|
|
948
998
|
end
|
|
949
999
|
|
|
950
1000
|
def test_install_gem_ignore_dependencies_remote
|
|
951
1001
|
spec_fetcher do |fetcher|
|
|
952
|
-
fetcher.gem
|
|
1002
|
+
fetcher.gem "a", 2
|
|
953
1003
|
end
|
|
954
1004
|
|
|
955
1005
|
@cmd.options[:ignore_dependencies] = true
|
|
956
1006
|
|
|
957
|
-
@cmd.install_gem
|
|
1007
|
+
@cmd.install_gem "a", ">= 0"
|
|
958
1008
|
|
|
959
1009
|
assert_equal %w[a-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
|
960
1010
|
end
|
|
@@ -962,22 +1012,22 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
962
1012
|
def test_install_gem_ignore_dependencies_remote_platform_local
|
|
963
1013
|
local = Gem::Platform.local
|
|
964
1014
|
spec_fetcher do |fetcher|
|
|
965
|
-
fetcher.gem
|
|
1015
|
+
fetcher.gem "a", 3
|
|
966
1016
|
|
|
967
|
-
fetcher.gem
|
|
1017
|
+
fetcher.gem "a", 3 do |s|
|
|
968
1018
|
s.platform = local
|
|
969
1019
|
end
|
|
970
1020
|
end
|
|
971
1021
|
|
|
972
1022
|
@cmd.options[:ignore_dependencies] = true
|
|
973
1023
|
|
|
974
|
-
@cmd.install_gem
|
|
1024
|
+
@cmd.install_gem "a", ">= 0"
|
|
975
1025
|
|
|
976
1026
|
assert_equal %W[a-3-#{local}], @cmd.installed_specs.map {|spec| spec.full_name }
|
|
977
1027
|
end
|
|
978
1028
|
|
|
979
1029
|
def test_install_gem_ignore_dependencies_specific_file
|
|
980
|
-
spec = util_spec
|
|
1030
|
+
spec = util_spec "a", 2
|
|
981
1031
|
|
|
982
1032
|
util_build_gem spec
|
|
983
1033
|
|
|
@@ -992,8 +1042,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
992
1042
|
|
|
993
1043
|
def test_parses_requirement_from_gemname
|
|
994
1044
|
spec_fetcher do |fetcher|
|
|
995
|
-
fetcher.gem
|
|
996
|
-
fetcher.gem
|
|
1045
|
+
fetcher.gem "a", 2
|
|
1046
|
+
fetcher.gem "b", 2
|
|
997
1047
|
end
|
|
998
1048
|
|
|
999
1049
|
@cmd.options[:domain] = :local
|
|
@@ -1039,12 +1089,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1039
1089
|
|
|
1040
1090
|
assert_equal 2, e.exit_code
|
|
1041
1091
|
|
|
1042
|
-
assert_match
|
|
1092
|
+
assert_match "Unable to download data", @ui.error
|
|
1043
1093
|
end
|
|
1044
1094
|
|
|
1045
1095
|
def test_show_source_problems_even_on_success
|
|
1046
1096
|
spec_fetcher do |fetcher|
|
|
1047
|
-
fetcher.download
|
|
1097
|
+
fetcher.download "a", 2
|
|
1048
1098
|
end
|
|
1049
1099
|
|
|
1050
1100
|
Gem.sources << "http://nonexistent.example"
|
|
@@ -1069,7 +1119,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1069
1119
|
|
|
1070
1120
|
def test_redact_credentials_from_uri_on_warning
|
|
1071
1121
|
spec_fetcher do |fetcher|
|
|
1072
|
-
fetcher.download
|
|
1122
|
+
fetcher.download "a", 2
|
|
1073
1123
|
end
|
|
1074
1124
|
|
|
1075
1125
|
Gem.sources << "http://username:SECURE_TOKEN@nonexistent.example"
|
|
@@ -1094,7 +1144,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1094
1144
|
|
|
1095
1145
|
def test_execute_uses_from_a_gemdeps
|
|
1096
1146
|
spec_fetcher do |fetcher|
|
|
1097
|
-
fetcher.gem
|
|
1147
|
+
fetcher.gem "a", 2
|
|
1098
1148
|
end
|
|
1099
1149
|
|
|
1100
1150
|
File.open @gemdeps, "w" do |f|
|
|
@@ -1117,7 +1167,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1117
1167
|
|
|
1118
1168
|
def test_execute_uses_from_a_gemdeps_with_no_lock
|
|
1119
1169
|
spec_fetcher do |fetcher|
|
|
1120
|
-
fetcher.gem
|
|
1170
|
+
fetcher.gem "a", 2
|
|
1121
1171
|
end
|
|
1122
1172
|
|
|
1123
1173
|
File.open @gemdeps, "w" do |f|
|
|
@@ -1141,8 +1191,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1141
1191
|
|
|
1142
1192
|
def test_execute_installs_from_a_gemdeps_with_conservative
|
|
1143
1193
|
spec_fetcher do |fetcher|
|
|
1144
|
-
fetcher.download
|
|
1145
|
-
fetcher.gem
|
|
1194
|
+
fetcher.download "a", 2
|
|
1195
|
+
fetcher.gem "a", 1
|
|
1146
1196
|
end
|
|
1147
1197
|
|
|
1148
1198
|
File.open @gemdeps, "w" do |f|
|
|
@@ -1165,7 +1215,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1165
1215
|
|
|
1166
1216
|
def test_execute_installs_from_a_gemdeps
|
|
1167
1217
|
spec_fetcher do |fetcher|
|
|
1168
|
-
fetcher.download
|
|
1218
|
+
fetcher.download "a", 2
|
|
1169
1219
|
end
|
|
1170
1220
|
|
|
1171
1221
|
File.open @gemdeps, "w" do |f|
|
|
@@ -1187,8 +1237,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1187
1237
|
|
|
1188
1238
|
def test_execute_installs_deps_a_gemdeps
|
|
1189
1239
|
spec_fetcher do |fetcher|
|
|
1190
|
-
fetcher.download
|
|
1191
|
-
fetcher.download
|
|
1240
|
+
fetcher.download "q", "1.0"
|
|
1241
|
+
fetcher.download "r", "2.0", "q" => nil
|
|
1192
1242
|
end
|
|
1193
1243
|
|
|
1194
1244
|
File.open @gemdeps, "w" do |f|
|
|
@@ -1213,9 +1263,9 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1213
1263
|
|
|
1214
1264
|
def test_execute_uses_deps_a_gemdeps
|
|
1215
1265
|
spec_fetcher do |fetcher|
|
|
1216
|
-
fetcher.download
|
|
1266
|
+
fetcher.download "r", "2.0", "q" => nil
|
|
1217
1267
|
|
|
1218
|
-
fetcher.spec
|
|
1268
|
+
fetcher.spec "q", "1.0"
|
|
1219
1269
|
end
|
|
1220
1270
|
|
|
1221
1271
|
File.open @gemdeps, "w" do |f|
|
|
@@ -1240,8 +1290,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1240
1290
|
|
|
1241
1291
|
def test_execute_installs_deps_a_gemdeps_into_a_path
|
|
1242
1292
|
spec_fetcher do |fetcher|
|
|
1243
|
-
fetcher.download
|
|
1244
|
-
fetcher.download
|
|
1293
|
+
fetcher.download "q", "1.0"
|
|
1294
|
+
fetcher.download "r", "2.0", "q" => nil
|
|
1245
1295
|
end
|
|
1246
1296
|
|
|
1247
1297
|
File.open @gemdeps, "w" do |f|
|
|
@@ -1270,11 +1320,11 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1270
1320
|
|
|
1271
1321
|
def test_execute_with_gemdeps_path_ignores_system
|
|
1272
1322
|
specs = spec_fetcher do |fetcher|
|
|
1273
|
-
fetcher.download
|
|
1274
|
-
fetcher.download
|
|
1323
|
+
fetcher.download "q", "1.0"
|
|
1324
|
+
fetcher.download "r", "2.0", "q" => nil
|
|
1275
1325
|
end
|
|
1276
1326
|
|
|
1277
|
-
install_specs specs[
|
|
1327
|
+
install_specs specs["q-1.0"]
|
|
1278
1328
|
|
|
1279
1329
|
File.open @gemdeps, "w" do |f|
|
|
1280
1330
|
f << "gem 'r'"
|
|
@@ -1302,11 +1352,11 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1302
1352
|
|
|
1303
1353
|
def test_execute_uses_deps_a_gemdeps_with_a_path
|
|
1304
1354
|
specs = spec_fetcher do |fetcher|
|
|
1305
|
-
fetcher.gem
|
|
1306
|
-
fetcher.gem
|
|
1355
|
+
fetcher.gem "q", "1.0"
|
|
1356
|
+
fetcher.gem "r", "2.0", "q" => nil
|
|
1307
1357
|
end
|
|
1308
1358
|
|
|
1309
|
-
i = Gem::Installer.at specs[
|
|
1359
|
+
i = Gem::Installer.at specs["q-1.0"].cache_file, :install_dir => "gf-path"
|
|
1310
1360
|
i.install
|
|
1311
1361
|
|
|
1312
1362
|
assert File.file?("gf-path/specifications/q-1.0.gemspec"), "not installed"
|
|
@@ -1333,39 +1383,39 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1333
1383
|
end
|
|
1334
1384
|
|
|
1335
1385
|
def test_handle_options_file
|
|
1336
|
-
FileUtils.touch
|
|
1386
|
+
FileUtils.touch "Gemfile"
|
|
1337
1387
|
|
|
1338
1388
|
@cmd.handle_options %w[-g Gemfile]
|
|
1339
1389
|
|
|
1340
|
-
assert_equal
|
|
1390
|
+
assert_equal "Gemfile", @cmd.options[:gemdeps]
|
|
1341
1391
|
|
|
1342
|
-
FileUtils.rm
|
|
1392
|
+
FileUtils.rm "Gemfile"
|
|
1343
1393
|
|
|
1344
|
-
FileUtils.touch
|
|
1394
|
+
FileUtils.touch "gem.deps.rb"
|
|
1345
1395
|
|
|
1346
1396
|
@cmd.handle_options %w[--file gem.deps.rb]
|
|
1347
1397
|
|
|
1348
|
-
assert_equal
|
|
1398
|
+
assert_equal "gem.deps.rb", @cmd.options[:gemdeps]
|
|
1349
1399
|
|
|
1350
|
-
FileUtils.rm
|
|
1400
|
+
FileUtils.rm "gem.deps.rb"
|
|
1351
1401
|
|
|
1352
|
-
FileUtils.touch
|
|
1402
|
+
FileUtils.touch "Isolate"
|
|
1353
1403
|
|
|
1354
1404
|
@cmd.handle_options %w[-g]
|
|
1355
1405
|
|
|
1356
|
-
assert_equal
|
|
1406
|
+
assert_equal "Isolate", @cmd.options[:gemdeps]
|
|
1357
1407
|
|
|
1358
|
-
FileUtils.touch
|
|
1408
|
+
FileUtils.touch "Gemfile"
|
|
1359
1409
|
|
|
1360
1410
|
@cmd.handle_options %w[-g]
|
|
1361
1411
|
|
|
1362
|
-
assert_equal
|
|
1412
|
+
assert_equal "Gemfile", @cmd.options[:gemdeps]
|
|
1363
1413
|
|
|
1364
|
-
FileUtils.touch
|
|
1414
|
+
FileUtils.touch "gem.deps.rb"
|
|
1365
1415
|
|
|
1366
1416
|
@cmd.handle_options %w[-g]
|
|
1367
1417
|
|
|
1368
|
-
assert_equal
|
|
1418
|
+
assert_equal "gem.deps.rb", @cmd.options[:gemdeps]
|
|
1369
1419
|
end
|
|
1370
1420
|
|
|
1371
1421
|
def test_handle_options_suggest
|
|
@@ -1393,9 +1443,9 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1393
1443
|
def test_explain_platform_local
|
|
1394
1444
|
local = Gem::Platform.local
|
|
1395
1445
|
spec_fetcher do |fetcher|
|
|
1396
|
-
fetcher.spec
|
|
1446
|
+
fetcher.spec "a", 2
|
|
1397
1447
|
|
|
1398
|
-
fetcher.spec
|
|
1448
|
+
fetcher.spec "a", 2 do |s|
|
|
1399
1449
|
s.platform = local
|
|
1400
1450
|
end
|
|
1401
1451
|
end
|
|
@@ -1419,9 +1469,9 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1419
1469
|
def test_explain_platform_local_ignore_dependencies
|
|
1420
1470
|
local = Gem::Platform.local
|
|
1421
1471
|
spec_fetcher do |fetcher|
|
|
1422
|
-
fetcher.spec
|
|
1472
|
+
fetcher.spec "a", 3
|
|
1423
1473
|
|
|
1424
|
-
fetcher.spec
|
|
1474
|
+
fetcher.spec "a", 3 do |s|
|
|
1425
1475
|
s.platform = local
|
|
1426
1476
|
end
|
|
1427
1477
|
end
|
|
@@ -1446,9 +1496,9 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1446
1496
|
def test_explain_platform_ruby
|
|
1447
1497
|
local = Gem::Platform.local
|
|
1448
1498
|
spec_fetcher do |fetcher|
|
|
1449
|
-
fetcher.spec
|
|
1499
|
+
fetcher.spec "a", 2
|
|
1450
1500
|
|
|
1451
|
-
fetcher.spec
|
|
1501
|
+
fetcher.spec "a", 2 do |s|
|
|
1452
1502
|
s.platform = local
|
|
1453
1503
|
end
|
|
1454
1504
|
end
|
|
@@ -1475,9 +1525,9 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1475
1525
|
def test_explain_platform_ruby_ignore_dependencies
|
|
1476
1526
|
local = Gem::Platform.local
|
|
1477
1527
|
spec_fetcher do |fetcher|
|
|
1478
|
-
fetcher.spec
|
|
1528
|
+
fetcher.spec "a", 3
|
|
1479
1529
|
|
|
1480
|
-
fetcher.spec
|
|
1530
|
+
fetcher.spec "a", 3 do |s|
|
|
1481
1531
|
s.platform = local
|
|
1482
1532
|
end
|
|
1483
1533
|
end
|
|
@@ -1501,4 +1551,22 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
|
1501
1551
|
assert_equal " a-3", out.shift
|
|
1502
1552
|
assert_empty out
|
|
1503
1553
|
end
|
|
1554
|
+
|
|
1555
|
+
def test_suggest_update_if_enabled
|
|
1556
|
+
TestUpdateSuggestion.with_eglible_environment(cmd: @cmd) do
|
|
1557
|
+
spec_fetcher do |fetcher|
|
|
1558
|
+
fetcher.gem "a", 2
|
|
1559
|
+
end
|
|
1560
|
+
|
|
1561
|
+
@cmd.options[:args] = %w[a]
|
|
1562
|
+
|
|
1563
|
+
use_ui @ui do
|
|
1564
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
|
1565
|
+
@cmd.execute
|
|
1566
|
+
end
|
|
1567
|
+
end
|
|
1568
|
+
|
|
1569
|
+
assert_includes @ui.output, "A new release of RubyGems is available: 1.2.3 → 2.0.0!"
|
|
1570
|
+
end
|
|
1571
|
+
end
|
|
1504
1572
|
end
|