rubygems-update 3.0.6 → 3.2.14
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/{History.txt → CHANGELOG.md} +1100 -436
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +37 -10
- data/MAINTAINERS.txt +1 -6
- data/Manifest.txt +104 -64
- data/POLICIES.md +6 -12
- data/README.md +6 -6
- data/Rakefile +121 -111
- data/bin/gem +0 -6
- data/bin/update_rubygems +2 -2
- data/bundler/CHANGELOG.md +1788 -1251
- data/bundler/LICENSE.md +18 -19
- data/bundler/README.md +9 -10
- data/bundler/UPGRADING.md +215 -0
- data/bundler/bundler.gemspec +9 -26
- data/bundler/exe/bundle +22 -3
- data/bundler/lib/bundler.rb +233 -94
- data/bundler/lib/bundler/build_metadata.rb +5 -13
- data/bundler/lib/bundler/capistrano.rb +4 -4
- data/bundler/lib/bundler/cli.rb +221 -148
- data/bundler/lib/bundler/cli/add.rb +28 -16
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/cache.rb +24 -17
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +25 -12
- data/bundler/lib/bundler/cli/config.rb +161 -86
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +5 -5
- data/bundler/lib/bundler/cli/exec.rb +8 -20
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +125 -32
- data/bundler/lib/bundler/cli/info.rb +29 -6
- data/bundler/lib/bundler/cli/init.rb +2 -2
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +27 -23
- data/bundler/lib/bundler/cli/issue.rb +5 -5
- data/bundler/lib/bundler/cli/list.rb +12 -10
- data/bundler/lib/bundler/cli/open.rb +10 -6
- data/bundler/lib/bundler/cli/outdated.rb +134 -109
- data/bundler/lib/bundler/cli/plugin.rb +19 -2
- data/bundler/lib/bundler/cli/pristine.rb +6 -1
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +34 -12
- data/bundler/lib/bundler/compact_index_client.rb +26 -10
- data/bundler/lib/bundler/compact_index_client/cache.rb +6 -14
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +8 -20
- data/bundler/lib/bundler/current_ruby.rb +9 -7
- data/bundler/lib/bundler/definition.rb +133 -132
- data/bundler/lib/bundler/dep_proxy.rb +16 -9
- data/bundler/lib/bundler/dependency.rb +19 -14
- data/bundler/lib/bundler/deployment.rb +1 -1
- data/bundler/lib/bundler/dsl.rb +54 -71
- data/bundler/lib/bundler/endpoint_specification.rb +1 -1
- data/bundler/lib/bundler/env.rb +9 -14
- data/bundler/lib/bundler/environment_preserver.rb +26 -3
- data/bundler/lib/bundler/errors.rb +1 -0
- data/bundler/lib/bundler/feature_flag.rb +19 -34
- data/bundler/lib/bundler/fetcher.rb +19 -16
- data/bundler/lib/bundler/fetcher/base.rb +1 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +27 -13
- data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +6 -3
- data/bundler/lib/bundler/fetcher/index.rb +8 -7
- data/bundler/lib/bundler/friendly_errors.rb +27 -19
- data/bundler/lib/bundler/gem_helper.rb +68 -37
- data/bundler/lib/bundler/gem_helpers.rb +38 -29
- data/bundler/lib/bundler/gem_tasks.rb +1 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +5 -5
- data/bundler/lib/bundler/graph.rb +3 -3
- data/bundler/lib/bundler/index.rb +12 -7
- data/bundler/lib/bundler/injector.rb +32 -12
- data/bundler/lib/bundler/inline.rb +41 -30
- data/bundler/lib/bundler/installer.rb +41 -60
- data/bundler/lib/bundler/installer/gem_installer.rb +8 -4
- data/bundler/lib/bundler/installer/parallel_installer.rb +20 -26
- data/bundler/lib/bundler/installer/standalone.rb +18 -4
- data/bundler/lib/bundler/lazy_specification.rb +41 -27
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +16 -33
- data/bundler/lib/bundler/{ssl_certs → man}/.document +0 -0
- data/bundler/lib/bundler/man/bundle-add.1 +66 -0
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +7 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +42 -0
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +3 -5
- data/bundler/lib/bundler/man/bundle-cache.1 +55 -0
- data/bundler/{man/bundle-package.ronn → lib/bundler/man/bundle-cache.1.ronn} +15 -15
- data/bundler/lib/bundler/man/bundle-check.1 +31 -0
- data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-clean.1 +24 -0
- data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-config.1 +488 -0
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +59 -67
- data/bundler/lib/bundler/man/bundle-doctor.1 +44 -0
- data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-exec.1 +165 -0
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +1 -1
- data/bundler/lib/bundler/man/bundle-gem.1 +102 -0
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/bundler/lib/bundler/man/bundle-info.1 +20 -0
- data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-init.1 +25 -0
- data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +1 -1
- data/bundler/lib/bundler/man/bundle-inject.1 +33 -0
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-install.1 +338 -0
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +34 -7
- data/bundler/lib/bundler/man/bundle-list.1 +50 -0
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/lib/bundler/man/bundle-lock.1 +84 -0
- data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-open.1 +32 -0
- data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-outdated.1 +155 -0
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-platform.1 +61 -0
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +34 -0
- data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-remove.1 +31 -0
- data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-show.1 +23 -0
- data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle-update.1 +394 -0
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +3 -3
- data/bundler/lib/bundler/man/bundle-viz.1 +39 -0
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/bundler/lib/bundler/man/bundle.1 +136 -0
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +2 -2
- data/bundler/lib/bundler/man/gemfile.5 +686 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +16 -20
- data/bundler/lib/bundler/man/index.txt +25 -0
- data/bundler/lib/bundler/match_platform.rb +1 -1
- data/bundler/lib/bundler/mirror.rb +5 -5
- data/bundler/lib/bundler/plugin.rb +75 -36
- data/bundler/lib/bundler/plugin/api.rb +1 -1
- data/bundler/lib/bundler/plugin/api/source.rb +12 -7
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +24 -4
- data/bundler/lib/bundler/plugin/installer.rb +33 -22
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/bundler/lib/bundler/plugin/source_list.rb +5 -1
- data/bundler/lib/bundler/psyched_yaml.rb +0 -15
- data/bundler/lib/bundler/remote_specification.rb +5 -4
- data/bundler/lib/bundler/resolver.rb +191 -87
- data/bundler/lib/bundler/resolver/spec_group.rb +76 -48
- data/bundler/lib/bundler/retry.rb +3 -3
- data/bundler/lib/bundler/ruby_version.rb +5 -20
- data/bundler/lib/bundler/rubygems_ext.rb +76 -72
- data/bundler/lib/bundler/rubygems_gem_installer.rb +47 -13
- data/bundler/lib/bundler/rubygems_integration.rb +159 -444
- data/bundler/lib/bundler/runtime.rb +6 -23
- data/bundler/lib/bundler/settings.rb +67 -93
- data/bundler/lib/bundler/setup.rb +11 -12
- data/bundler/lib/bundler/shared_helpers.rb +54 -80
- data/bundler/lib/bundler/similarity_detector.rb +3 -3
- data/bundler/lib/bundler/source.rb +12 -6
- data/bundler/lib/bundler/source/git.rb +47 -38
- data/bundler/lib/bundler/source/git/git_proxy.rb +101 -102
- data/bundler/lib/bundler/source/metadata.rb +7 -6
- data/bundler/lib/bundler/source/path.rb +20 -11
- data/bundler/lib/bundler/source/path/installer.rb +10 -10
- data/bundler/lib/bundler/source/rubygems.rb +56 -29
- data/bundler/lib/bundler/source/rubygems/remote.rb +3 -4
- data/bundler/lib/bundler/source_list.rb +32 -30
- data/bundler/lib/bundler/spec_set.rb +37 -25
- data/bundler/lib/bundler/stub_specification.rb +40 -34
- data/bundler/lib/bundler/templates/Executable.bundler +23 -14
- data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +16 -2
- data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -5
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +18 -31
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -1
- data/bundler/lib/bundler/ui.rb +3 -3
- data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
- data/bundler/lib/bundler/ui/shell.rb +7 -11
- data/bundler/lib/bundler/uri_credentials_filter.rb +10 -4
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +161 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +66 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +176 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +273 -147
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +5 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +36 -4
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +6 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +3 -3
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +39 -11
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +4 -4
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +11 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +53 -51
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -2
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +302 -462
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +16 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +28 -13
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +3 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +7 -17
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +20 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +19 -8
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +63 -43
- data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +21 -14
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +78 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +6 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +7 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +20 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +21 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +1 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +15 -14
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +4 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +65 -8
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +10 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +3 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +18 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +104 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +744 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +94 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1568 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +88 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +21 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +294 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +546 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +125 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
- data/bundler/lib/bundler/vendored_fileutils.rb +1 -6
- data/bundler/lib/bundler/vendored_molinillo.rb +1 -1
- data/bundler/lib/bundler/vendored_persistent.rb +7 -12
- data/bundler/lib/bundler/vendored_thor.rb +2 -2
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/vendored_uri.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -20
- data/bundler/lib/bundler/version_ranges.rb +51 -5
- data/bundler/lib/bundler/vlad.rb +2 -2
- data/bundler/lib/bundler/worker.rb +2 -4
- data/bundler/lib/bundler/yaml_serializer.rb +3 -4
- data/lib/rubygems.rb +198 -222
- data/lib/rubygems/available_set.rb +4 -5
- data/lib/rubygems/basic_specification.rb +32 -19
- data/lib/rubygems/bundler_version_finder.rb +19 -9
- data/lib/rubygems/command.rb +73 -21
- data/lib/rubygems/command_manager.rb +5 -12
- data/lib/rubygems/commands/build_command.rb +51 -18
- data/lib/rubygems/commands/cert_command.rb +2 -11
- data/lib/rubygems/commands/check_command.rb +0 -2
- data/lib/rubygems/commands/cleanup_command.rb +17 -13
- data/lib/rubygems/commands/contents_command.rb +7 -9
- data/lib/rubygems/commands/dependency_command.rb +9 -10
- data/lib/rubygems/commands/environment_command.rb +1 -6
- data/lib/rubygems/commands/fetch_command.rb +2 -4
- data/lib/rubygems/commands/generate_index_command.rb +3 -2
- data/lib/rubygems/commands/help_command.rb +4 -4
- data/lib/rubygems/commands/info_command.rb +9 -4
- data/lib/rubygems/commands/install_command.rb +12 -54
- data/lib/rubygems/commands/list_command.rb +8 -7
- data/lib/rubygems/commands/lock_command.rb +3 -5
- data/lib/rubygems/commands/mirror_command.rb +0 -1
- data/lib/rubygems/commands/open_command.rb +1 -4
- data/lib/rubygems/commands/outdated_command.rb +0 -1
- data/lib/rubygems/commands/owner_command.rb +10 -10
- data/lib/rubygems/commands/pristine_command.rb +13 -9
- data/lib/rubygems/commands/push_command.rb +12 -51
- data/lib/rubygems/commands/query_command.rb +14 -330
- data/lib/rubygems/commands/rdoc_command.rb +0 -1
- data/lib/rubygems/commands/search_command.rb +7 -7
- data/lib/rubygems/commands/server_command.rb +3 -1
- data/lib/rubygems/commands/setup_command.rb +143 -101
- data/lib/rubygems/commands/signin_command.rb +0 -1
- data/lib/rubygems/commands/signout_command.rb +0 -2
- data/lib/rubygems/commands/sources_command.rb +22 -6
- data/lib/rubygems/commands/specification_command.rb +8 -3
- data/lib/rubygems/commands/stale_command.rb +1 -1
- data/lib/rubygems/commands/uninstall_command.rb +2 -3
- data/lib/rubygems/commands/unpack_command.rb +3 -32
- data/lib/rubygems/commands/update_command.rb +73 -28
- data/lib/rubygems/commands/which_command.rb +0 -1
- data/lib/rubygems/commands/yank_command.rb +10 -7
- data/lib/rubygems/compatibility.rb +4 -4
- data/lib/rubygems/config_file.rb +48 -27
- data/lib/rubygems/core_ext/kernel_gem.rb +7 -6
- data/lib/rubygems/core_ext/kernel_require.rb +44 -6
- data/lib/rubygems/core_ext/kernel_warn.rb +22 -13
- data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
- data/lib/rubygems/defaults.rb +110 -23
- data/lib/rubygems/dependency.rb +28 -14
- data/lib/rubygems/dependency_installer.rb +11 -166
- data/lib/rubygems/dependency_list.rb +17 -18
- data/lib/rubygems/deprecate.rb +51 -6
- data/lib/rubygems/doctor.rb +4 -4
- data/lib/rubygems/errors.rb +5 -7
- data/lib/rubygems/exceptions.rb +2 -24
- data/lib/rubygems/ext.rb +6 -6
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +45 -82
- data/lib/rubygems/ext/cmake_builder.rb +6 -7
- data/lib/rubygems/ext/configure_builder.rb +5 -8
- data/lib/rubygems/ext/ext_conf_builder.rb +27 -23
- data/lib/rubygems/ext/rake_builder.rb +4 -6
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +111 -37
- data/lib/rubygems/indexer.rb +9 -26
- data/lib/rubygems/install_update_options.rb +7 -7
- data/lib/rubygems/installer.rb +91 -98
- data/lib/rubygems/installer_test_case.rb +104 -42
- data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/mock_gem_ui.rb +1 -4
- data/lib/rubygems/name_tuple.rb +4 -7
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/package.rb +49 -32
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +0 -2
- data/lib/rubygems/package/io_source.rb +0 -2
- data/lib/rubygems/package/old.rb +1 -3
- data/lib/rubygems/package/tar_header.rb +4 -6
- data/lib/rubygems/package/tar_reader.rb +15 -12
- data/lib/rubygems/package/tar_reader/entry.rb +0 -3
- data/lib/rubygems/package/tar_test_case.rb +2 -4
- data/lib/rubygems/package/tar_writer.rb +6 -16
- data/lib/rubygems/package_task.rb +1 -7
- data/lib/rubygems/path_support.rb +2 -2
- data/lib/rubygems/platform.rb +22 -16
- data/lib/rubygems/query_utils.rb +353 -0
- data/lib/rubygems/rdoc.rb +0 -12
- data/lib/rubygems/remote_fetcher.rb +33 -59
- data/lib/rubygems/request.rb +11 -14
- data/lib/rubygems/request/connection_pools.rb +3 -7
- data/lib/rubygems/request/http_pool.rb +0 -1
- data/lib/rubygems/request_set.rb +10 -23
- data/lib/rubygems/request_set/gem_dependency_api.rb +9 -11
- data/lib/rubygems/request_set/lockfile.rb +13 -12
- data/lib/rubygems/request_set/lockfile/parser.rb +2 -2
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -1
- data/lib/rubygems/requirement.rb +36 -35
- data/lib/rubygems/resolver.rb +20 -16
- data/lib/rubygems/resolver/activation_request.rb +27 -51
- data/lib/rubygems/resolver/api_set.rb +31 -24
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_specification.rb +24 -10
- data/lib/rubygems/resolver/best_set.rb +4 -6
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +2 -9
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +1 -3
- data/lib/rubygems/resolver/git_set.rb +0 -2
- data/lib/rubygems/resolver/git_specification.rb +0 -2
- data/lib/rubygems/resolver/index_set.rb +1 -3
- data/lib/rubygems/resolver/index_specification.rb +32 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +63 -16
- data/lib/rubygems/resolver/local_specification.rb +0 -2
- data/lib/rubygems/resolver/lock_set.rb +3 -5
- data/lib/rubygems/resolver/lock_specification.rb +2 -4
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +8 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +51 -12
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +76 -8
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +12 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +510 -165
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
- data/lib/rubygems/resolver/requirement_list.rb +0 -1
- data/lib/rubygems/resolver/set.rb +0 -2
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +14 -2
- data/lib/rubygems/resolver/specification.rb +13 -2
- data/lib/rubygems/resolver/vendor_set.rb +0 -2
- data/lib/rubygems/resolver/vendor_specification.rb +0 -2
- data/lib/rubygems/s3_uri_signer.rb +15 -13
- data/lib/rubygems/safe_yaml.rb +4 -4
- data/lib/rubygems/security.rb +27 -34
- data/lib/rubygems/security/policy.rb +4 -8
- data/lib/rubygems/security/signer.rb +8 -9
- data/lib/rubygems/security/trust_dir.rb +1 -3
- data/lib/rubygems/server.rb +20 -16
- data/lib/rubygems/source.rb +30 -13
- data/lib/rubygems/source/git.rb +7 -8
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +2 -4
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +0 -2
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source_list.rb +6 -6
- data/lib/rubygems/spec_fetcher.rb +22 -34
- data/lib/rubygems/specification.rb +207 -278
- data/lib/rubygems/specification_policy.rb +135 -57
- data/{bundler/lib/bundler/ssl_certs/index.rubygems.org → lib/rubygems/ssl_certs/rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +4 -5
- data/lib/rubygems/test_case.rb +221 -341
- data/lib/rubygems/test_utilities.rb +22 -18
- data/lib/rubygems/text.rb +2 -3
- data/lib/rubygems/uninstaller.rb +49 -30
- data/lib/rubygems/uri_formatter.rb +2 -4
- data/lib/rubygems/uri_parser.rb +34 -0
- data/lib/rubygems/uri_parsing.rb +23 -0
- data/lib/rubygems/user_interaction.rb +3 -20
- data/lib/rubygems/util.rb +20 -44
- data/lib/rubygems/util/licenses.rb +400 -400
- data/lib/rubygems/validator.rb +9 -31
- data/lib/rubygems/version.rb +29 -21
- data/lib/rubygems/version_option.rb +6 -0
- data/rubygems-update.gemspec +4 -11
- data/setup.rb +2 -7
- data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +0 -2
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
- data/test/rubygems/test_bundled_ca.rb +42 -45
- data/test/rubygems/test_config.rb +0 -2
- data/test/rubygems/test_deprecate.rb +41 -5
- data/test/rubygems/test_gem.rb +405 -236
- data/test/rubygems/test_gem_available_set.rb +5 -6
- data/test/rubygems/test_gem_bundler_version_finder.rb +20 -2
- data/test/rubygems/test_gem_command.rb +144 -9
- data/test/rubygems/test_gem_command_manager.rb +40 -17
- data/test/rubygems/test_gem_commands_build_command.rb +386 -13
- data/test/rubygems/test_gem_commands_cert_command.rb +18 -6
- data/test/rubygems/test_gem_commands_check_command.rb +0 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +35 -10
- data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
- data/test/rubygems/test_gem_commands_dependency_command.rb +1 -3
- data/test/rubygems/test_gem_commands_environment_command.rb +21 -33
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
- data/test/rubygems/test_gem_commands_generate_index_command.rb +32 -2
- data/test/rubygems/test_gem_commands_help_command.rb +16 -8
- data/test/rubygems/test_gem_commands_info_command.rb +6 -7
- data/test/rubygems/test_gem_commands_install_command.rb +368 -34
- data/test/rubygems/test_gem_commands_list_command.rb +0 -2
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
- data/test/rubygems/test_gem_commands_mirror.rb +1 -2
- data/test/rubygems/test_gem_commands_open_command.rb +4 -6
- data/test/rubygems/test_gem_commands_outdated_command.rb +18 -1
- data/test/rubygems/test_gem_commands_owner_command.rb +62 -9
- data/test/rubygems/test_gem_commands_pristine_command.rb +148 -16
- data/test/rubygems/test_gem_commands_push_command.rb +94 -21
- data/test/rubygems/test_gem_commands_query_command.rb +35 -10
- data/test/rubygems/test_gem_commands_search_command.rb +0 -2
- data/test/rubygems/test_gem_commands_server_command.rb +6 -4
- data/test/rubygems/test_gem_commands_setup_command.rb +228 -128
- data/test/rubygems/test_gem_commands_signin_command.rb +36 -11
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
- data/test/rubygems/test_gem_commands_sources_command.rb +193 -9
- data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +108 -52
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
- data/test/rubygems/test_gem_commands_update_command.rb +201 -29
- data/test/rubygems/test_gem_commands_which_command.rb +3 -5
- data/test/rubygems/test_gem_commands_yank_command.rb +86 -5
- data/test/rubygems/test_gem_config_file.rb +25 -13
- data/test/rubygems/test_gem_dependency.rb +6 -2
- data/test/rubygems/test_gem_dependency_installer.rb +169 -252
- data/test/rubygems/test_gem_dependency_list.rb +31 -26
- data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
- data/test/rubygems/test_gem_doctor.rb +28 -2
- data/test/rubygems/test_gem_ext_builder.rb +51 -44
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
- data/test/rubygems/test_gem_ext_configure_builder.rb +6 -14
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +21 -29
- data/test/rubygems/test_gem_ext_rake_builder.rb +39 -22
- data/test/rubygems/test_gem_gem_runner.rb +47 -2
- data/test/rubygems/test_gem_gemcutter_utilities.rb +16 -13
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
- data/test/rubygems/test_gem_indexer.rb +40 -55
- data/test/rubygems/test_gem_install_update_options.rb +45 -21
- data/test/rubygems/test_gem_installer.rb +661 -338
- data/test/rubygems/test_gem_local_remote_options.rb +0 -2
- data/test/rubygems/test_gem_name_tuple.rb +0 -2
- data/test/rubygems/test_gem_package.rb +132 -45
- data/test/rubygems/test_gem_package_old.rb +56 -55
- data/test/rubygems/test_gem_package_tar_header.rb +18 -1
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +6 -7
- data/test/rubygems/test_gem_package_tar_writer.rb +20 -12
- data/test/rubygems/test_gem_package_task.rb +46 -13
- data/test/rubygems/test_gem_path_support.rb +17 -13
- data/test/rubygems/test_gem_platform.rb +74 -7
- data/test/rubygems/test_gem_rdoc.rb +0 -1
- data/test/rubygems/test_gem_remote_fetcher.rb +223 -209
- data/test/rubygems/test_gem_request.rb +30 -19
- data/test/rubygems/test_gem_request_connection_pools.rb +2 -2
- data/test/rubygems/test_gem_request_set.rb +104 -29
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +4 -6
- data/test/rubygems/test_gem_request_set_lockfile.rb +4 -5
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -10
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -118
- data/test/rubygems/test_gem_requirement.rb +50 -4
- data/test/rubygems/test_gem_resolver.rb +73 -31
- data/test/rubygems/test_gem_resolver_activation_request.rb +3 -34
- data/test/rubygems/test_gem_resolver_api_set.rb +60 -59
- data/test/rubygems/test_gem_resolver_api_specification.rb +3 -5
- data/test/rubygems/test_gem_resolver_best_set.rb +27 -6
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_conflict.rb +1 -7
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_specification.rb +1 -2
- data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_index_specification.rb +7 -4
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -3
- data/test/rubygems/test_gem_resolver_installer_set.rb +10 -10
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
- data/test/rubygems/test_gem_resolver_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
- data/test/rubygems/test_gem_security.rb +27 -25
- data/test/rubygems/test_gem_security_policy.rb +7 -12
- data/test/rubygems/test_gem_security_signer.rb +11 -12
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
- data/test/rubygems/test_gem_server.rb +13 -12
- data/test/rubygems/test_gem_silent_ui.rb +0 -1
- data/test/rubygems/test_gem_source.rb +32 -17
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
- data/test/rubygems/test_gem_source_git.rb +12 -18
- data/test/rubygems/test_gem_source_installed.rb +11 -13
- data/test/rubygems/test_gem_source_list.rb +1 -1
- data/test/rubygems/test_gem_source_local.rb +8 -9
- data/test/rubygems/test_gem_source_lock.rb +17 -19
- data/test/rubygems/test_gem_source_specific_file.rb +9 -10
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_source_vendor.rb +7 -9
- data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
- data/test/rubygems/test_gem_specification.rb +363 -245
- data/test/rubygems/test_gem_stream_ui.rb +3 -1
- data/test/rubygems/test_gem_stub_specification.rb +6 -7
- data/test/rubygems/test_gem_text.rb +1 -2
- data/test/rubygems/test_gem_uninstaller.rb +165 -22
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
- data/test/rubygems/test_gem_uri_formatter.rb +0 -2
- data/test/rubygems/test_gem_util.rb +17 -15
- data/test/rubygems/test_gem_validator.rb +4 -7
- data/test/rubygems/test_gem_version.rb +23 -10
- data/test/rubygems/test_gem_version_option.rb +1 -3
- data/test/rubygems/test_kernel.rb +25 -9
- data/test/rubygems/test_project_sanity.rb +20 -0
- data/test/rubygems/test_remote_fetch_error.rb +1 -2
- data/test/rubygems/test_require.rb +394 -56
- data/test/test_changelog_generator.rb +17 -0
- metadata +109 -155
- data/.rubocop.yml +0 -67
- data/.travis.yml +0 -38
- data/appveyor.yml +0 -43
- data/bundler/CODE_OF_CONDUCT.md +0 -42
- data/bundler/CONTRIBUTING.md +0 -17
- data/bundler/exe/bundle_ruby +0 -60
- data/bundler/lib/bundler/cli/package.rb +0 -49
- data/bundler/lib/bundler/compatibility_guard.rb +0 -14
- data/bundler/lib/bundler/gem_remote_fetcher.rb +0 -43
- data/bundler/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
- data/bundler/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/bundler/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt +0 -4
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +0 -12
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +0 -129
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/lib/ubygems.rb +0 -14
- data/util/CL2notes +0 -55
- data/util/ci +0 -82
- data/util/cops/deprecations.rb +0 -52
- data/util/create_certs.rb +0 -171
- data/util/create_certs.sh +0 -27
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -61
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -139
- data/util/update_changelog.rb +0 -67
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/commands/stale_command'
|
4
4
|
|
5
5
|
class TestGemCommandsStaleCommand < Gem::TestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
@stub_ui = Gem::MockGemUi.new
|
@@ -40,5 +39,4 @@ class TestGemCommandsStaleCommand < Gem::TestCase
|
|
40
39
|
assert_equal("#{foo_bar.name}-#{foo_bar.version}", lines[0].split.first)
|
41
40
|
assert_equal("#{bar_baz.name}-#{bar_baz.version}", lines[1].split.first)
|
42
41
|
end
|
43
|
-
|
44
42
|
end
|
@@ -3,22 +3,15 @@ require 'rubygems/installer_test_case'
|
|
3
3
|
require 'rubygems/commands/uninstall_command'
|
4
4
|
|
5
5
|
class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
|
-
common_installer_setup
|
10
|
-
|
11
|
-
build_rake_in do
|
12
|
-
use_ui @ui do
|
13
|
-
@installer.install
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
8
|
@cmd = Gem::Commands::UninstallCommand.new
|
18
9
|
@executable = File.join(@gemhome, 'bin', 'executable')
|
19
10
|
end
|
20
11
|
|
21
12
|
def test_execute_all_named
|
13
|
+
initial_install
|
14
|
+
|
22
15
|
util_make_gems
|
23
16
|
|
24
17
|
default = new_default_spec 'default', '1'
|
@@ -47,14 +40,64 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
47
40
|
Gem::Specification.all_names.sort
|
48
41
|
end
|
49
42
|
|
43
|
+
def test_execute_all_named_default_single
|
44
|
+
z_1 = new_default_spec 'z', '1'
|
45
|
+
install_default_gems z_1
|
46
|
+
|
47
|
+
assert_includes Gem::Specification.all_names, 'z-1'
|
48
|
+
|
49
|
+
@cmd.options[:all] = true
|
50
|
+
@cmd.options[:args] = %w[z]
|
51
|
+
|
52
|
+
use_ui @ui do
|
53
|
+
@cmd.execute
|
54
|
+
end
|
55
|
+
|
56
|
+
assert_equal %w[z-1], Gem::Specification.all_names.sort
|
57
|
+
|
58
|
+
output = @ui.output.split "\n"
|
59
|
+
|
60
|
+
assert_equal 'Gem z-1 cannot be uninstalled because it is a default gem', output.shift
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_execute_all_named_default_multiple
|
64
|
+
z_1 = new_default_spec 'z', '1'
|
65
|
+
install_default_gems z_1
|
66
|
+
|
67
|
+
z_2, = util_gem 'z', 2
|
68
|
+
install_gem z_2
|
69
|
+
|
70
|
+
assert_includes Gem::Specification.all_names, 'z-1'
|
71
|
+
assert_includes Gem::Specification.all_names, 'z-2'
|
72
|
+
|
73
|
+
@cmd.options[:all] = true
|
74
|
+
@cmd.options[:args] = %w[z]
|
75
|
+
|
76
|
+
use_ui @ui do
|
77
|
+
@cmd.execute
|
78
|
+
end
|
79
|
+
|
80
|
+
assert_equal %w[z-1], Gem::Specification.all_names.sort
|
81
|
+
|
82
|
+
output = @ui.output.split "\n"
|
83
|
+
|
84
|
+
assert_equal 'Gem z-1 cannot be uninstalled because it is a default gem', output.shift
|
85
|
+
assert_equal 'Successfully uninstalled z-2', output.shift
|
86
|
+
end
|
87
|
+
|
50
88
|
def test_execute_dependency_order
|
89
|
+
initial_install
|
90
|
+
|
51
91
|
c = quick_gem 'c' do |spec|
|
52
92
|
spec.add_dependency 'a'
|
53
93
|
end
|
54
94
|
|
55
95
|
util_build_gem c
|
56
96
|
installer = util_installer c, @gemhome
|
57
|
-
|
97
|
+
|
98
|
+
use_ui @ui do
|
99
|
+
installer.install
|
100
|
+
end
|
58
101
|
|
59
102
|
ui = Gem::MockGemUi.new
|
60
103
|
|
@@ -73,15 +116,7 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
73
116
|
end
|
74
117
|
|
75
118
|
def test_execute_removes_executable
|
76
|
-
|
77
|
-
|
78
|
-
util_setup_gem ui
|
79
|
-
|
80
|
-
build_rake_in do
|
81
|
-
use_ui ui do
|
82
|
-
@installer.install
|
83
|
-
end
|
84
|
-
end
|
119
|
+
initial_install
|
85
120
|
|
86
121
|
if win_platform?
|
87
122
|
assert File.exist?(@executable)
|
@@ -92,7 +127,9 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
92
127
|
# Evil hack to prevent false removal success
|
93
128
|
FileUtils.rm_f @executable
|
94
129
|
|
95
|
-
File.open @executable, "wb+" do |f|
|
130
|
+
File.open @executable, "wb+" do |f|
|
131
|
+
f.puts "binary"
|
132
|
+
end
|
96
133
|
|
97
134
|
@cmd.options[:executables] = true
|
98
135
|
@cmd.options[:args] = [@spec.name]
|
@@ -108,12 +145,14 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
108
145
|
end
|
109
146
|
|
110
147
|
def test_execute_removes_formatted_executable
|
148
|
+
installer = setup_base_installer
|
149
|
+
|
111
150
|
FileUtils.rm_f @executable # Wish this didn't happen in #setup
|
112
151
|
|
113
152
|
Gem::Installer.exec_format = 'foo-%s-bar'
|
114
153
|
|
115
|
-
|
116
|
-
|
154
|
+
installer.format_executable = true
|
155
|
+
installer.install
|
117
156
|
|
118
157
|
formatted_executable = File.join @gemhome, 'bin', 'foo-executable-bar'
|
119
158
|
assert_equal true, File.exist?(formatted_executable)
|
@@ -132,11 +171,11 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
132
171
|
@gem = File.join @tempdir, @spec.file_name
|
133
172
|
FileUtils.touch @gem
|
134
173
|
|
135
|
-
util_setup_gem
|
174
|
+
installer = util_setup_gem
|
136
175
|
|
137
176
|
build_rake_in do
|
138
177
|
use_ui @ui do
|
139
|
-
|
178
|
+
installer.install
|
140
179
|
end
|
141
180
|
end
|
142
181
|
|
@@ -152,10 +191,11 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
152
191
|
end
|
153
192
|
|
154
193
|
def test_execute_with_version_leaves_non_matching_versions
|
194
|
+
initial_install
|
195
|
+
|
155
196
|
ui = Gem::MockGemUi.new
|
156
197
|
|
157
198
|
util_make_gems
|
158
|
-
util_setup_gem ui
|
159
199
|
|
160
200
|
assert_equal 3, Gem::Specification.find_all_by_name('a').length
|
161
201
|
|
@@ -173,10 +213,11 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
173
213
|
end
|
174
214
|
|
175
215
|
def test_execute_with_version_specified_as_colon
|
216
|
+
initial_install
|
217
|
+
|
176
218
|
ui = Gem::MockGemUi.new "y\n"
|
177
219
|
|
178
220
|
util_make_gems
|
179
|
-
util_setup_gem ui
|
180
221
|
|
181
222
|
assert_equal 3, Gem::Specification.find_all_by_name('a').length
|
182
223
|
|
@@ -249,6 +290,8 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
249
290
|
end
|
250
291
|
|
251
292
|
def test_execute_with_force_and_without_version_uninstalls_everything
|
293
|
+
initial_install
|
294
|
+
|
252
295
|
ui = Gem::MockGemUi.new "y\n"
|
253
296
|
|
254
297
|
a_1, = util_gem 'a', 1
|
@@ -257,8 +300,6 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
257
300
|
a_3a, = util_gem 'a', '3.a'
|
258
301
|
install_gem a_3a
|
259
302
|
|
260
|
-
util_setup_gem ui
|
261
|
-
|
262
303
|
assert_equal 3, Gem::Specification.find_all_by_name('a').length
|
263
304
|
|
264
305
|
@cmd.options[:force] = true
|
@@ -274,10 +315,11 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
274
315
|
end
|
275
316
|
|
276
317
|
def test_execute_with_force_ignores_dependencies
|
318
|
+
initial_install
|
319
|
+
|
277
320
|
ui = Gem::MockGemUi.new
|
278
321
|
|
279
322
|
util_make_gems
|
280
|
-
util_setup_gem ui
|
281
323
|
|
282
324
|
assert Gem::Specification.find_all_by_name('dep_x').length > 0
|
283
325
|
assert Gem::Specification.find_all_by_name('x').length > 0
|
@@ -318,6 +360,7 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
318
360
|
end
|
319
361
|
|
320
362
|
assert_equal %w[default-1], Gem::Specification.all_names.sort
|
363
|
+
assert_equal "INFO: Uninstalled all gems in #{@gemhome}", @ui.output.split("\n").last
|
321
364
|
end
|
322
365
|
|
323
366
|
def test_execute_outside_gem_home
|
@@ -354,20 +397,22 @@ class TestGemCommandsUninstallCommand < Gem::InstallerTestCase
|
|
354
397
|
end
|
355
398
|
|
356
399
|
def test_handle_options_vendor
|
357
|
-
|
358
|
-
@
|
359
|
-
|
400
|
+
vendordir(File.join(@tempdir, 'vendor')) do
|
401
|
+
use_ui @ui do
|
402
|
+
@cmd.handle_options %w[--vendor]
|
403
|
+
end
|
360
404
|
|
361
|
-
|
362
|
-
|
405
|
+
assert @cmd.options[:vendor]
|
406
|
+
assert_equal Gem.vendor_dir, @cmd.options[:install_dir]
|
363
407
|
|
364
|
-
|
408
|
+
assert_empty @ui.output
|
365
409
|
|
366
|
-
|
410
|
+
expected = <<-EXPECTED
|
367
411
|
WARNING: Use your OS package manager to uninstall vendor gems
|
368
|
-
|
412
|
+
EXPECTED
|
369
413
|
|
370
|
-
|
414
|
+
assert_match expected, @ui.error
|
415
|
+
end
|
371
416
|
end
|
372
417
|
|
373
418
|
def test_execute_two_version
|
@@ -390,21 +435,17 @@ WARNING: Use your OS package manager to uninstall vendor gems
|
|
390
435
|
end
|
391
436
|
|
392
437
|
def test_handle_options_vendor_missing
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
@cmd.handle_options %w[--vendor]
|
398
|
-
end
|
399
|
-
|
400
|
-
assert_equal 'invalid option: --vendor your platform is not supported',
|
401
|
-
e.message
|
438
|
+
vendordir(nil) do
|
439
|
+
e = assert_raises OptionParser::InvalidOption do
|
440
|
+
@cmd.handle_options %w[--vendor]
|
441
|
+
end
|
402
442
|
|
403
|
-
|
404
|
-
|
443
|
+
assert_equal 'invalid option: --vendor your platform is not supported',
|
444
|
+
e.message
|
405
445
|
|
406
|
-
|
407
|
-
|
446
|
+
refute @cmd.options[:vendor]
|
447
|
+
refute @cmd.options[:install_dir]
|
448
|
+
end
|
408
449
|
end
|
409
450
|
|
410
451
|
def test_execute_with_gem_not_installed
|
@@ -420,6 +461,8 @@ WARNING: Use your OS package manager to uninstall vendor gems
|
|
420
461
|
end
|
421
462
|
|
422
463
|
def test_execute_with_gem_uninstall_error
|
464
|
+
initial_install
|
465
|
+
|
423
466
|
util_make_gems
|
424
467
|
|
425
468
|
@cmd.options[:args] = %w[a]
|
@@ -443,6 +486,19 @@ WARNING: Use your OS package manager to uninstall vendor gems
|
|
443
486
|
end
|
444
487
|
|
445
488
|
assert_empty @ui.output
|
446
|
-
assert_match %r
|
489
|
+
assert_match %r{Error: unable to successfully uninstall '#{@spec.name}'}, @ui.error
|
490
|
+
end
|
491
|
+
|
492
|
+
private
|
493
|
+
|
494
|
+
def initial_install
|
495
|
+
installer = setup_base_installer
|
496
|
+
common_installer_setup
|
497
|
+
|
498
|
+
build_rake_in do
|
499
|
+
use_ui @ui do
|
500
|
+
installer.install
|
501
|
+
end
|
502
|
+
end
|
447
503
|
end
|
448
504
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/commands/unpack_command'
|
4
4
|
|
5
5
|
class TestGemCommandsUnpackCommand < Gem::TestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
|
@@ -221,5 +220,4 @@ class TestGemCommandsUnpackCommand < Gem::TestCase
|
|
221
220
|
|
222
221
|
assert @cmd.options[:spec]
|
223
222
|
end
|
224
|
-
|
225
223
|
end
|
@@ -3,7 +3,6 @@ require 'rubygems/test_case'
|
|
3
3
|
require 'rubygems/commands/update_command'
|
4
4
|
|
5
5
|
class TestGemCommandsUpdateCommand < Gem::TestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
common_installer_setup
|
@@ -66,7 +65,9 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
66
65
|
|
67
66
|
def test_execute_system
|
68
67
|
spec_fetcher do |fetcher|
|
69
|
-
fetcher.download 'rubygems-update', 9 do |s|
|
68
|
+
fetcher.download 'rubygems-update', 9 do |s|
|
69
|
+
s.files = %w[setup.rb]
|
70
|
+
end
|
70
71
|
end
|
71
72
|
|
72
73
|
@cmd.options[:args] = []
|
@@ -107,8 +108,13 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
107
108
|
|
108
109
|
def test_execute_system_multiple
|
109
110
|
spec_fetcher do |fetcher|
|
110
|
-
fetcher.download 'rubygems-update', 8 do |s|
|
111
|
-
|
111
|
+
fetcher.download 'rubygems-update', 8 do |s|
|
112
|
+
s.files = %w[setup.rb]
|
113
|
+
end
|
114
|
+
|
115
|
+
fetcher.download 'rubygems-update', 9 do |s|
|
116
|
+
s.files = %w[setup.rb]
|
117
|
+
end
|
112
118
|
end
|
113
119
|
|
114
120
|
@cmd.options[:args] = []
|
@@ -128,8 +134,13 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
128
134
|
|
129
135
|
def test_execute_system_specific
|
130
136
|
spec_fetcher do |fetcher|
|
131
|
-
fetcher.download 'rubygems-update', 8 do |s|
|
132
|
-
|
137
|
+
fetcher.download 'rubygems-update', 8 do |s|
|
138
|
+
s.files = %w[setup.rb]
|
139
|
+
end
|
140
|
+
|
141
|
+
fetcher.download 'rubygems-update', 9 do |s|
|
142
|
+
s.files = %w[setup.rb]
|
143
|
+
end
|
133
144
|
end
|
134
145
|
|
135
146
|
@cmd.options[:args] = []
|
@@ -147,10 +158,73 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
147
158
|
assert_empty out
|
148
159
|
end
|
149
160
|
|
161
|
+
def test_execute_system_specific_older_than_minimum_supported_rubygems
|
162
|
+
spec_fetcher do |fetcher|
|
163
|
+
fetcher.download 'rubygems-update', "2.5.1" do |s|
|
164
|
+
s.files = %w[setup.rb]
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
@cmd.options[:args] = []
|
169
|
+
@cmd.options[:system] = "2.5.1"
|
170
|
+
|
171
|
+
assert_raises Gem::MockGemUi::TermError do
|
172
|
+
use_ui @ui do
|
173
|
+
@cmd.execute
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
assert_empty @ui.output
|
178
|
+
assert_equal "ERROR: rubygems 2.5.1 is not supported. The oldest supported version is 2.5.2\n", @ui.error
|
179
|
+
end
|
180
|
+
|
181
|
+
def test_execute_system_specific_older_than_3_2_removes_plugins_dir
|
182
|
+
spec_fetcher do |fetcher|
|
183
|
+
fetcher.download 'rubygems-update', 3.1 do |s|
|
184
|
+
s.files = %w[setup.rb]
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
@cmd.options[:args] = []
|
189
|
+
@cmd.options[:system] = "3.1"
|
190
|
+
|
191
|
+
FileUtils.mkdir_p Gem.plugindir
|
192
|
+
write_file File.join(Gem.plugindir, 'a_plugin.rb')
|
193
|
+
|
194
|
+
@cmd.execute
|
195
|
+
|
196
|
+
refute_path_exists Gem.plugindir, "Plugins folder not removed when updating rubygems to pre-3.2"
|
197
|
+
end
|
198
|
+
|
199
|
+
def test_execute_system_specific_newer_than_or_equal_to_3_2_leaves_plugins_dir_alone
|
200
|
+
spec_fetcher do |fetcher|
|
201
|
+
fetcher.download 'rubygems-update', "3.2.a" do |s|
|
202
|
+
s.files = %w[setup.rb]
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
206
|
+
@cmd.options[:args] = []
|
207
|
+
@cmd.options[:system] = "3.2.a"
|
208
|
+
|
209
|
+
FileUtils.mkdir_p Gem.plugindir
|
210
|
+
plugin_file = File.join(Gem.plugindir, 'a_plugin.rb')
|
211
|
+
write_file plugin_file
|
212
|
+
|
213
|
+
@cmd.execute
|
214
|
+
|
215
|
+
assert_path_exists Gem.plugindir, "Plugin folder removed when updating rubygems to post-3.2"
|
216
|
+
assert_path_exists plugin_file, "Plugin removed when updating rubygems to post-3.2"
|
217
|
+
end
|
218
|
+
|
150
219
|
def test_execute_system_specifically_to_latest_version
|
151
220
|
spec_fetcher do |fetcher|
|
152
|
-
fetcher.download 'rubygems-update', 8 do |s|
|
153
|
-
|
221
|
+
fetcher.download 'rubygems-update', 8 do |s|
|
222
|
+
s.files = %w[setup.rb]
|
223
|
+
end
|
224
|
+
|
225
|
+
fetcher.download 'rubygems-update', 9 do |s|
|
226
|
+
s.files = %w[setup.rb]
|
227
|
+
end
|
154
228
|
end
|
155
229
|
|
156
230
|
@cmd.options[:args] = []
|
@@ -183,6 +257,53 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
183
257
|
@ui.error
|
184
258
|
end
|
185
259
|
|
260
|
+
def test_execute_system_with_disabled_update
|
261
|
+
old_disable_system_update_message = Gem.disable_system_update_message
|
262
|
+
Gem.disable_system_update_message = "Please use package manager instead."
|
263
|
+
|
264
|
+
@cmd.options[:args] = []
|
265
|
+
@cmd.options[:system] = true
|
266
|
+
|
267
|
+
assert_raises Gem::MockGemUi::TermError do
|
268
|
+
use_ui @ui do
|
269
|
+
@cmd.execute
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
assert_empty @ui.output
|
274
|
+
assert_equal "ERROR: Please use package manager instead.\n", @ui.error
|
275
|
+
ensure
|
276
|
+
Gem.disable_system_update_message = old_disable_system_update_message
|
277
|
+
end
|
278
|
+
|
279
|
+
# The other style of `gem update --system` tests don't actually run
|
280
|
+
# setup.rb, so we just check that setup.rb gets the `--silent` flag.
|
281
|
+
def test_execute_system_silent_passed_to_setuprb
|
282
|
+
@cmd.options[:args] = []
|
283
|
+
@cmd.options[:system] = true
|
284
|
+
@cmd.options[:silent] = true
|
285
|
+
|
286
|
+
assert_equal true, @cmd.update_rubygems_arguments.include?('--silent')
|
287
|
+
end
|
288
|
+
|
289
|
+
def test_execute_system_silent
|
290
|
+
spec_fetcher do |fetcher|
|
291
|
+
fetcher.download 'rubygems-update', 9 do |s|
|
292
|
+
s.files = %w[setup.rb]
|
293
|
+
end
|
294
|
+
end
|
295
|
+
|
296
|
+
@cmd.options[:args] = []
|
297
|
+
@cmd.options[:system] = true
|
298
|
+
@cmd.options[:silent] = true
|
299
|
+
|
300
|
+
use_ui @ui do
|
301
|
+
@cmd.execute
|
302
|
+
end
|
303
|
+
|
304
|
+
assert_empty @ui.output
|
305
|
+
end
|
306
|
+
|
186
307
|
# before:
|
187
308
|
# a1 -> c1.2
|
188
309
|
# after:
|
@@ -342,10 +463,10 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
342
463
|
end
|
343
464
|
|
344
465
|
def test_execute_user_install
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
466
|
+
a = util_spec "a", 1
|
467
|
+
b = util_spec "b", 1
|
468
|
+
install_gem_user(a)
|
469
|
+
install_gem(b)
|
349
470
|
|
350
471
|
@cmd.handle_options %w[--user-install]
|
351
472
|
|
@@ -356,7 +477,13 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
356
477
|
installer = @cmd.installer
|
357
478
|
user_install = installer.instance_variable_get :@user_install
|
358
479
|
|
359
|
-
assert user_install,
|
480
|
+
assert user_install, "user_install must be set on the installer"
|
481
|
+
|
482
|
+
out = @ui.output.split "\n"
|
483
|
+
assert_equal "Updating installed gems", out.shift
|
484
|
+
assert_equal "Updating a", out.shift
|
485
|
+
assert_equal "Gems updated: a", out.shift
|
486
|
+
assert_empty out
|
360
487
|
end
|
361
488
|
|
362
489
|
def test_fetch_remote_gems
|
@@ -367,7 +494,7 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
367
494
|
|
368
495
|
expected = [
|
369
496
|
[Gem::NameTuple.new('a', v(2), Gem::Platform::RUBY),
|
370
|
-
|
497
|
+
Gem::Source.new(@gem_repo)],
|
371
498
|
]
|
372
499
|
|
373
500
|
assert_equal expected, @cmd.fetch_remote_gems(specs['a-1'])
|
@@ -387,12 +514,15 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
387
514
|
specs = spec_fetcher do |fetcher|
|
388
515
|
fetcher.spec 'a', 1
|
389
516
|
fetcher.spec 'a', 2
|
390
|
-
|
517
|
+
|
518
|
+
fetcher.spec 'a', 2 do |s|
|
519
|
+
s.platform = platform
|
520
|
+
end
|
391
521
|
end
|
392
522
|
|
393
523
|
expected = [
|
394
524
|
[Gem::NameTuple.new('a', v(2), Gem::Platform::RUBY),
|
395
|
-
|
525
|
+
Gem::Source.new(@gem_repo)],
|
396
526
|
]
|
397
527
|
|
398
528
|
assert_equal expected, @cmd.fetch_remote_gems(specs['a-1'])
|
@@ -409,9 +539,9 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
409
539
|
|
410
540
|
expected = [
|
411
541
|
[Gem::NameTuple.new('a', v(2), Gem::Platform::RUBY),
|
412
|
-
|
542
|
+
Gem::Source.new(@gem_repo)],
|
413
543
|
[Gem::NameTuple.new('a', v('3.a'), Gem::Platform::RUBY),
|
414
|
-
|
544
|
+
Gem::Source.new(@gem_repo)],
|
415
545
|
]
|
416
546
|
|
417
547
|
assert_equal expected, @cmd.fetch_remote_gems(specs['a-1'])
|
@@ -484,31 +614,73 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
484
614
|
|
485
615
|
assert_equal '--prefix', arguments.shift
|
486
616
|
assert_equal Gem.prefix, arguments.shift
|
487
|
-
assert_equal '--no-
|
488
|
-
assert_equal '--no-ri', arguments.shift
|
617
|
+
assert_equal '--no-document', arguments.shift
|
489
618
|
assert_equal '--previous-version', arguments.shift
|
490
619
|
assert_equal Gem::VERSION, arguments.shift
|
491
620
|
assert_empty arguments
|
492
621
|
end
|
493
622
|
|
494
|
-
def
|
495
|
-
|
623
|
+
def test_explain
|
624
|
+
spec_fetcher do |fetcher|
|
625
|
+
fetcher.download 'a', 2
|
626
|
+
fetcher.spec 'a', 1
|
627
|
+
end
|
496
628
|
|
497
|
-
|
629
|
+
@cmd.options[:explain] = true
|
630
|
+
@cmd.options[:args] = %w[a]
|
498
631
|
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
632
|
+
use_ui @ui do
|
633
|
+
@cmd.execute
|
634
|
+
end
|
635
|
+
|
636
|
+
out = @ui.output.split "\n"
|
637
|
+
|
638
|
+
assert_equal "Gems to update:", out.shift
|
639
|
+
assert_equal " a-2", out.shift
|
640
|
+
assert_empty out
|
504
641
|
end
|
505
642
|
|
506
|
-
def
|
643
|
+
def test_explain_platform_local
|
644
|
+
local = Gem::Platform.local
|
645
|
+
spec_fetcher do |fetcher|
|
646
|
+
fetcher.download 'a', 2
|
647
|
+
|
648
|
+
fetcher.download 'a', 2 do |s|
|
649
|
+
s.platform = local
|
650
|
+
end
|
651
|
+
|
652
|
+
fetcher.spec 'a', 1
|
653
|
+
end
|
654
|
+
|
655
|
+
@cmd.options[:explain] = true
|
656
|
+
@cmd.options[:args] = %w[a]
|
657
|
+
|
658
|
+
use_ui @ui do
|
659
|
+
@cmd.execute
|
660
|
+
end
|
661
|
+
|
662
|
+
out = @ui.output.split "\n"
|
663
|
+
|
664
|
+
assert_equal "Gems to update:", out.shift
|
665
|
+
assert_equal " a-2-#{local}", out.shift
|
666
|
+
assert_empty out
|
667
|
+
end
|
668
|
+
|
669
|
+
def test_explain_platform_ruby
|
670
|
+
local = Gem::Platform.local
|
507
671
|
spec_fetcher do |fetcher|
|
508
672
|
fetcher.download 'a', 2
|
673
|
+
|
674
|
+
fetcher.download 'a', 2 do |s|
|
675
|
+
s.platform = local
|
676
|
+
end
|
677
|
+
|
509
678
|
fetcher.spec 'a', 1
|
510
679
|
end
|
511
680
|
|
681
|
+
# equivalent to --platform=ruby
|
682
|
+
Gem.platforms = [Gem::Platform::RUBY]
|
683
|
+
|
512
684
|
@cmd.options[:explain] = true
|
513
685
|
@cmd.options[:args] = %w[a]
|
514
686
|
|