rubygems-update 3.1.6 → 3.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/{History.txt → CHANGELOG.md} +1452 -514
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +74 -27
- data/Manifest.txt +154 -117
- data/POLICIES.md +27 -19
- data/README.md +10 -8
- data/UPGRADING.md +5 -81
- data/bin/gem +3 -8
- data/bin/update_rubygems +5 -5
- data/bundler/CHANGELOG.md +2358 -1430
- data/bundler/README.md +7 -9
- data/bundler/UPGRADING.md +27 -34
- data/bundler/bundler.gemspec +8 -11
- data/bundler/exe/bundle +10 -8
- data/bundler/exe/bundler +1 -1
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/cache.rb +3 -8
- data/bundler/lib/bundler/cli/check.rb +4 -2
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +31 -3
- data/bundler/lib/bundler/cli/config.rb +10 -1
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +25 -6
- data/bundler/lib/bundler/cli/exec.rb +5 -10
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +219 -28
- data/bundler/lib/bundler/cli/info.rb +38 -6
- data/bundler/lib/bundler/cli/init.rb +3 -3
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +25 -54
- data/bundler/lib/bundler/cli/issue.rb +5 -4
- data/bundler/lib/bundler/cli/list.rb +19 -11
- data/bundler/lib/bundler/cli/lock.rb +5 -1
- data/bundler/lib/bundler/cli/open.rb +1 -2
- data/bundler/lib/bundler/cli/outdated.rb +105 -76
- data/bundler/lib/bundler/cli/platform.rb +2 -2
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/remove.rb +1 -2
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +20 -9
- data/bundler/lib/bundler/cli.rb +106 -83
- data/bundler/lib/bundler/compact_index_client/cache.rb +6 -23
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +29 -25
- data/bundler/lib/bundler/compact_index_client.rb +3 -9
- data/bundler/lib/bundler/current_ruby.rb +17 -6
- data/bundler/lib/bundler/definition.rb +297 -396
- data/bundler/lib/bundler/dep_proxy.rb +16 -9
- data/bundler/lib/bundler/dependency.rb +22 -77
- data/bundler/lib/bundler/digest.rb +71 -0
- data/bundler/lib/bundler/dsl.rb +76 -83
- data/bundler/lib/bundler/endpoint_specification.rb +16 -14
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/environment_preserver.rb +29 -2
- data/bundler/lib/bundler/errors.rb +30 -3
- data/bundler/lib/bundler/feature_flag.rb +0 -9
- data/bundler/lib/bundler/fetcher/base.rb +7 -9
- data/bundler/lib/bundler/fetcher/compact_index.rb +11 -16
- data/bundler/lib/bundler/fetcher/downloader.rb +10 -7
- data/bundler/lib/bundler/fetcher/index.rb +2 -30
- data/bundler/lib/bundler/fetcher.rb +24 -25
- data/bundler/lib/bundler/friendly_errors.rb +46 -47
- data/bundler/lib/bundler/gem_helper.rb +53 -31
- data/bundler/lib/bundler/gem_helpers.rb +43 -24
- data/bundler/lib/bundler/gem_version_promoter.rb +10 -20
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +19 -25
- data/bundler/lib/bundler/injector.rb +38 -6
- data/bundler/lib/bundler/inline.rb +4 -13
- data/bundler/lib/bundler/installer/gem_installer.rb +19 -24
- data/bundler/lib/bundler/installer/parallel_installer.rb +46 -25
- data/bundler/lib/bundler/installer/standalone.rb +58 -11
- data/bundler/lib/bundler/installer.rb +51 -81
- data/bundler/lib/bundler/lazy_specification.rb +79 -36
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +19 -44
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man → lib/bundler/man}/bundle-add.1 +21 -5
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +16 -4
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man → lib/bundler/man}/bundle-cache.1 +7 -1
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +7 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +65 -47
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +74 -65
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-exec.1 +2 -2
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-gem.1 +38 -3
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +46 -7
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-inject.1 +5 -2
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +3 -1
- data/bundler/{man → lib/bundler/man}/bundle-install.1 +35 -4
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +33 -5
- data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +3 -10
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +1 -10
- data/bundler/{man → lib/bundler/man}/bundle-platform.1 +16 -6
- data/bundler/{man/bundle-platform.ronn → 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/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-update.1 +5 -5
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +5 -4
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1 +4 -1
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +2 -0
- data/bundler/{man → lib/bundler/man}/bundle.1 +15 -10
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +12 -7
- data/bundler/{man → lib/bundler/man}/gemfile.5 +106 -80
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +94 -83
- data/bundler/{man → 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 +2 -2
- data/bundler/lib/bundler/plugin/api/source.rb +25 -9
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +13 -1
- data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -5
- data/bundler/lib/bundler/plugin/installer.rb +11 -11
- data/bundler/lib/bundler/plugin/source_list.rb +5 -1
- data/bundler/lib/bundler/plugin.rb +58 -11
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/remote_specification.rb +11 -6
- data/bundler/lib/bundler/resolver/base.rb +50 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +64 -57
- data/bundler/lib/bundler/resolver.rb +234 -230
- data/bundler/lib/bundler/retry.rb +2 -2
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +6 -19
- data/bundler/lib/bundler/rubygems_ext.rb +194 -33
- data/bundler/lib/bundler/rubygems_gem_installer.rb +87 -16
- data/bundler/lib/bundler/rubygems_integration.rb +71 -153
- data/bundler/lib/bundler/runtime.rb +22 -26
- data/bundler/lib/bundler/self_manager.rb +168 -0
- data/bundler/lib/bundler/settings.rb +145 -66
- data/bundler/lib/bundler/setup.rb +2 -2
- data/bundler/lib/bundler/shared_helpers.rb +17 -32
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +88 -84
- data/bundler/lib/bundler/source/git.rb +50 -32
- data/bundler/lib/bundler/source/metadata.rb +3 -7
- data/bundler/lib/bundler/source/path/installer.rb +10 -10
- data/bundler/lib/bundler/source/path.rb +10 -4
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source/rubygems.rb +201 -179
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
- data/bundler/lib/bundler/source.rb +25 -5
- data/bundler/lib/bundler/source_list.rb +105 -63
- data/bundler/lib/bundler/source_map.rb +71 -0
- data/bundler/lib/bundler/spec_set.rb +62 -57
- data/bundler/lib/bundler/stub_specification.rb +30 -10
- data/bundler/lib/bundler/templates/Executable +2 -4
- data/bundler/lib/bundler/templates/Executable.bundler +8 -8
- data/bundler/lib/bundler/templates/Executable.standalone +2 -4
- data/bundler/lib/bundler/templates/Gemfile +0 -2
- data/bundler/lib/bundler/templates/gems.rb +0 -3
- 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 +12 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +9 -14
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +32 -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 +27 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +27 -17
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -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/standard.yml.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/test_newgem.rb.tt} +3 -1
- 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/ui/shell.rb +6 -6
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
- data/bundler/lib/bundler/vendor/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +9 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +37 -5
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +34 -28
- 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 +12 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +49 -47
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +82 -189
- data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +9 -7
- 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 +7 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- 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 +10 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +28 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +27 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
- 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/thor/lib/thor.rb +5 -13
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- 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/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +17 -80
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +0 -1
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/vendored_tsort.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +20 -5
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/lib/bundler.rb +79 -47
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +7 -9
- data/lib/rubygems/basic_specification.rb +23 -21
- data/lib/rubygems/bundler_version_finder.rb +26 -53
- data/lib/rubygems/command.rb +48 -45
- data/lib/rubygems/command_manager.rb +20 -14
- data/lib/rubygems/commands/build_command.rb +47 -27
- data/lib/rubygems/commands/cert_command.rb +78 -75
- data/lib/rubygems/commands/check_command.rb +20 -22
- data/lib/rubygems/commands/cleanup_command.rb +30 -26
- data/lib/rubygems/commands/contents_command.rb +16 -18
- data/lib/rubygems/commands/dependency_command.rb +39 -51
- data/lib/rubygems/commands/environment_command.rb +11 -10
- data/lib/rubygems/commands/fetch_command.rb +33 -16
- data/lib/rubygems/commands/generate_index_command.rb +17 -19
- data/lib/rubygems/commands/help_command.rb +6 -6
- data/lib/rubygems/commands/info_command.rb +10 -7
- data/lib/rubygems/commands/install_command.rb +29 -27
- data/lib/rubygems/commands/list_command.rb +9 -8
- data/lib/rubygems/commands/lock_command.rb +5 -7
- data/lib/rubygems/commands/mirror_command.rb +3 -5
- data/lib/rubygems/commands/open_command.rb +10 -14
- data/lib/rubygems/commands/outdated_command.rb +5 -7
- data/lib/rubygems/commands/owner_command.rb +26 -16
- data/lib/rubygems/commands/pristine_command.rb +61 -49
- data/lib/rubygems/commands/push_command.rb +22 -59
- data/lib/rubygems/commands/query_command.rb +21 -351
- data/lib/rubygems/commands/rdoc_command.rb +23 -25
- data/lib/rubygems/commands/search_command.rb +8 -8
- data/lib/rubygems/commands/server_command.rb +16 -77
- data/lib/rubygems/commands/setup_command.rb +255 -229
- data/lib/rubygems/commands/signin_command.rb +9 -11
- data/lib/rubygems/commands/signout_command.rb +7 -9
- data/lib/rubygems/commands/sources_command.rb +27 -25
- data/lib/rubygems/commands/specification_command.rb +25 -21
- data/lib/rubygems/commands/stale_command.rb +3 -5
- data/lib/rubygems/commands/uninstall_command.rb +41 -43
- data/lib/rubygems/commands/unpack_command.rb +13 -15
- data/lib/rubygems/commands/update_command.rb +132 -74
- data/lib/rubygems/commands/which_command.rb +7 -9
- data/lib/rubygems/commands/yank_command.rb +16 -19
- data/lib/rubygems/compatibility.rb +4 -2
- data/lib/rubygems/config_file.rb +42 -26
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +6 -3
- data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
- data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
- data/lib/rubygems/defaults.rb +108 -32
- data/lib/rubygems/dependency.rb +21 -22
- data/lib/rubygems/dependency_installer.rb +19 -91
- data/lib/rubygems/dependency_list.rb +13 -15
- data/lib/rubygems/deprecate.rb +102 -8
- data/lib/rubygems/doctor.rb +22 -22
- data/lib/rubygems/errors.rb +6 -21
- data/lib/rubygems/exceptions.rb +33 -34
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +48 -54
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +23 -0
- data/lib/rubygems/ext/cargo_builder.rb +321 -0
- data/lib/rubygems/ext/cmake_builder.rb +6 -9
- data/lib/rubygems/ext/configure_builder.rb +5 -8
- data/lib/rubygems/ext/ext_conf_builder.rb +42 -66
- data/lib/rubygems/ext/rake_builder.rb +7 -10
- data/lib/rubygems/ext.rb +7 -6
- data/lib/rubygems/gem_runner.rb +15 -26
- data/lib/rubygems/gemcutter_utilities.rb +153 -32
- data/lib/rubygems/indexer.rb +30 -49
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +73 -64
- data/lib/rubygems/installer.rb +194 -151
- data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
- data/lib/rubygems/local_remote_options.rb +22 -24
- data/lib/rubygems/mock_gem_ui.rb +2 -8
- data/lib/rubygems/name_tuple.rb +9 -14
- data/lib/rubygems/openssl.rb +7 -0
- 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 +2303 -0
- data/lib/rubygems/optparse.rb +3 -0
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +2 -4
- data/lib/rubygems/package/io_source.rb +4 -2
- data/lib/rubygems/package/old.rb +9 -11
- data/lib/rubygems/package/tar_header.rb +54 -56
- data/lib/rubygems/package/tar_reader/entry.rb +2 -5
- data/lib/rubygems/package/tar_reader.rb +1 -4
- data/lib/rubygems/package/tar_writer.rb +8 -18
- data/lib/rubygems/package.rb +101 -117
- data/lib/rubygems/package_task.rb +5 -11
- data/lib/rubygems/path_support.rb +2 -9
- data/lib/rubygems/platform.rb +101 -76
- data/lib/rubygems/psych_tree.rb +1 -3
- data/lib/rubygems/query_utils.rb +351 -0
- data/lib/rubygems/rdoc.rb +2 -14
- data/lib/rubygems/remote_fetcher.rb +48 -74
- data/lib/rubygems/request/connection_pools.rb +6 -10
- data/lib/rubygems/request/http_pool.rb +2 -4
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request.rb +26 -31
- data/lib/rubygems/request_set/gem_dependency_api.rb +23 -25
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -28
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -7
- data/lib/rubygems/request_set/lockfile.rb +17 -21
- data/lib/rubygems/request_set.rb +27 -40
- data/lib/rubygems/requirement.rb +28 -48
- data/lib/rubygems/resolver/activation_request.rb +12 -6
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_set.rb +32 -25
- data/lib/rubygems/resolver/api_specification.rb +29 -15
- data/lib/rubygems/resolver/best_set.rb +7 -9
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +12 -14
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +3 -5
- data/lib/rubygems/resolver/git_set.rb +2 -4
- data/lib/rubygems/resolver/git_specification.rb +6 -8
- data/lib/rubygems/resolver/index_set.rb +4 -6
- data/lib/rubygems/resolver/index_specification.rb +38 -7
- data/lib/rubygems/resolver/installed_specification.rb +4 -6
- data/lib/rubygems/resolver/installer_set.rb +66 -24
- data/lib/rubygems/resolver/local_specification.rb +2 -4
- data/lib/rubygems/resolver/lock_set.rb +6 -8
- data/lib/rubygems/resolver/lock_specification.rb +4 -6
- data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
- 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/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/dependency_graph.rb +41 -8
- 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 +13 -1
- 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/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/requirement_list.rb +0 -2
- data/lib/rubygems/resolver/set.rb +0 -3
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +14 -2
- data/lib/rubygems/resolver/specification.rb +14 -4
- data/lib/rubygems/resolver/stats.rb +0 -2
- data/lib/rubygems/resolver/vendor_set.rb +1 -3
- data/lib/rubygems/resolver/vendor_specification.rb +3 -5
- data/lib/rubygems/resolver.rb +53 -51
- data/lib/rubygems/s3_uri_signer.rb +7 -15
- data/lib/rubygems/safe_yaml.rb +14 -16
- data/lib/rubygems/security/policies.rb +11 -11
- data/lib/rubygems/security/policy.rb +25 -29
- data/lib/rubygems/security/signer.rb +13 -16
- data/lib/rubygems/security/trust_dir.rb +4 -5
- data/lib/rubygems/security.rb +103 -69
- data/lib/rubygems/security_option.rb +7 -7
- data/lib/rubygems/source/git.rb +30 -30
- data/lib/rubygems/source/installed.rb +1 -3
- data/lib/rubygems/source/local.rb +4 -6
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +1 -3
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source.rb +44 -38
- data/lib/rubygems/source_list.rb +9 -16
- data/lib/rubygems/spec_fetcher.rb +49 -48
- data/lib/rubygems/specification.rb +338 -295
- data/lib/rubygems/specification_policy.rb +112 -61
- data/lib/rubygems/stub_specification.rb +21 -28
- data/lib/rubygems/text.rb +21 -20
- data/lib/rubygems/tsort/.document +1 -0
- data/lib/rubygems/tsort/LICENSE.txt +22 -0
- data/lib/rubygems/tsort/lib/tsort.rb +454 -0
- data/lib/rubygems/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +98 -45
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/uri.rb +126 -0
- data/lib/rubygems/uri_formatter.rb +2 -3
- data/lib/rubygems/user_interaction.rb +43 -54
- data/lib/rubygems/util/licenses.rb +115 -10
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/util.rb +18 -12
- data/lib/rubygems/validator.rb +6 -8
- data/lib/rubygems/version.rb +29 -20
- data/lib/rubygems/version_option.rb +11 -5
- data/lib/rubygems.rb +192 -289
- data/rubygems-update.gemspec +4 -4
- data/setup.rb +11 -22
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- 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/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +26 -26
- data/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +380 -314
- data/{lib → test}/rubygems/installer_test_case.rb +38 -24
- data/{lib → test}/rubygems/package/tar_test_case.rb +4 -6
- data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
- data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/private_ec_key.pem +9 -0
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +2 -4
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -6
- data/test/rubygems/test_bundled_ca.rb +43 -50
- data/test/rubygems/test_config.rb +5 -7
- data/test/rubygems/test_deprecate.rb +87 -10
- data/test/rubygems/test_exit.rb +11 -0
- data/test/rubygems/test_gem.rb +719 -639
- data/test/rubygems/test_gem_available_set.rb +24 -26
- data/test/rubygems/test_gem_bundler_version_finder.rb +37 -44
- data/test/rubygems/test_gem_command.rb +78 -49
- data/test/rubygems/test_gem_command_manager.rb +98 -35
- data/test/rubygems/test_gem_commands_build_command.rb +275 -57
- data/test/rubygems/test_gem_commands_cert_command.rb +180 -125
- data/test/rubygems/test_gem_commands_check_command.rb +9 -11
- data/test/rubygems/test_gem_commands_cleanup_command.rb +78 -69
- data/test/rubygems/test_gem_commands_contents_command.rb +73 -42
- data/test/rubygems/test_gem_commands_dependency_command.rb +38 -40
- data/test/rubygems/test_gem_commands_environment_command.rb +60 -38
- data/test/rubygems/test_gem_commands_fetch_command.rb +163 -32
- data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -14
- data/test/rubygems/test_gem_commands_help_command.rb +34 -16
- data/test/rubygems/test_gem_commands_info_command.rb +33 -9
- data/test/rubygems/test_gem_commands_install_command.rb +401 -198
- data/test/rubygems/test_gem_commands_list_command.rb +5 -7
- data/test/rubygems/test_gem_commands_lock_command.rb +11 -13
- data/test/rubygems/test_gem_commands_mirror.rb +3 -5
- data/test/rubygems/test_gem_commands_open_command.rb +16 -19
- data/test/rubygems/test_gem_commands_outdated_command.rb +23 -7
- data/test/rubygems/test_gem_commands_owner_command.rb +100 -46
- data/test/rubygems/test_gem_commands_pristine_command.rb +131 -99
- data/test/rubygems/test_gem_commands_push_command.rb +134 -66
- data/test/rubygems/test_gem_commands_query_command.rb +91 -91
- data/test/rubygems/test_gem_commands_search_command.rb +2 -4
- data/test/rubygems/test_gem_commands_server_command.rb +6 -50
- data/test/rubygems/test_gem_commands_setup_command.rb +288 -179
- data/test/rubygems/test_gem_commands_signin_command.rb +162 -28
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -10
- data/test/rubygems/test_gem_commands_sources_command.rb +139 -32
- data/test/rubygems/test_gem_commands_specification_command.rb +81 -55
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -6
- data/test/rubygems/test_gem_commands_uninstall_command.rb +80 -82
- data/test/rubygems/test_gem_commands_unpack_command.rb +32 -34
- data/test/rubygems/test_gem_commands_update_command.rb +335 -88
- data/test/rubygems/test_gem_commands_which_command.rb +12 -14
- data/test/rubygems/test_gem_commands_yank_command.rb +80 -44
- data/test/rubygems/test_gem_config_file.rb +114 -97
- data/test/rubygems/test_gem_dependency.rb +87 -87
- data/test/rubygems/test_gem_dependency_installer.rb +277 -391
- data/test/rubygems/test_gem_dependency_list.rb +57 -59
- data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -7
- data/test/rubygems/test_gem_doctor.rb +73 -47
- data/test/rubygems/test_gem_ext_builder.rb +115 -109
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +243 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +21 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs +27 -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 +243 -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/build.rb +21 -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 +39 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +178 -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 +75 -0
- data/test/rubygems/test_gem_ext_cmake_builder.rb +31 -38
- data/test/rubygems/test_gem_ext_configure_builder.rb +23 -39
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +66 -82
- data/test/rubygems/test_gem_ext_rake_builder.rb +49 -32
- data/test/rubygems/test_gem_gem_runner.rb +51 -8
- data/test/rubygems/test_gem_gemcutter_utilities.rb +87 -76
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -6
- data/test/rubygems/test_gem_indexer.rb +62 -64
- data/test/rubygems/test_gem_install_update_options.rb +31 -21
- data/test/rubygems/test_gem_installer.rb +798 -491
- data/test/rubygems/test_gem_local_remote_options.rb +11 -13
- data/test/rubygems/test_gem_name_tuple.rb +4 -6
- data/test/rubygems/test_gem_package.rb +318 -283
- data/test/rubygems/test_gem_package_old.rb +18 -20
- data/test/rubygems/test_gem_package_tar_header.rb +64 -47
- data/test/rubygems/test_gem_package_tar_reader.rb +8 -10
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +18 -20
- data/test/rubygems/test_gem_package_tar_writer.rb +96 -100
- data/test/rubygems/test_gem_package_task.rb +58 -25
- data/test/rubygems/test_gem_path_support.rb +15 -21
- data/test/rubygems/test_gem_platform.rb +354 -201
- data/test/rubygems/test_gem_rdoc.rb +19 -21
- data/test/rubygems/test_gem_remote_fetcher.rb +376 -337
- data/test/rubygems/test_gem_request.rb +114 -86
- data/test/rubygems/test_gem_request_connection_pools.rb +30 -34
- data/test/rubygems/test_gem_request_set.rb +123 -124
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +222 -226
- data/test/rubygems/test_gem_request_set_lockfile.rb +93 -95
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +68 -70
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +136 -138
- data/test/rubygems/test_gem_requirement.rb +133 -54
- data/test/rubygems/test_gem_resolver.rb +149 -117
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -8
- data/test/rubygems/test_gem_resolver_api_set.rb +79 -78
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -49
- data/test/rubygems/test_gem_resolver_best_set.rb +43 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -3
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -14
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -17
- data/test/rubygems/test_gem_resolver_git_set.rb +22 -24
- data/test/rubygems/test_gem_resolver_git_specification.rb +22 -23
- data/test/rubygems/test_gem_resolver_index_set.rb +14 -16
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -18
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -7
- data/test/rubygems/test_gem_resolver_installer_set.rb +104 -44
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -9
- data/test/rubygems/test_gem_resolver_lock_set.rb +15 -17
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -19
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -3
- data/test/rubygems/test_gem_resolver_specification.rb +8 -12
- data/test/rubygems/test_gem_resolver_vendor_set.rb +9 -11
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -12
- data/test/rubygems/test_gem_security.rb +104 -78
- data/test/rubygems/test_gem_security_policy.rb +92 -97
- data/test/rubygems/test_gem_security_signer.rb +45 -47
- data/test/rubygems/test_gem_security_trust_dir.rb +12 -14
- data/test/rubygems/test_gem_silent_ui.rb +46 -42
- data/test/rubygems/test_gem_source.rb +53 -52
- data/test/rubygems/test_gem_source_fetch_problem.rb +16 -8
- data/test/rubygems/test_gem_source_git.rb +69 -69
- data/test/rubygems/test_gem_source_installed.rb +16 -18
- data/test/rubygems/test_gem_source_list.rb +5 -6
- data/test/rubygems/test_gem_source_local.rb +15 -17
- data/test/rubygems/test_gem_source_lock.rb +31 -33
- data/test/rubygems/test_gem_source_specific_file.rb +18 -20
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_source_vendor.rb +13 -15
- data/test/rubygems/test_gem_spec_fetcher.rb +74 -67
- data/test/rubygems/test_gem_specification.rb +888 -1024
- data/test/rubygems/test_gem_stream_ui.rb +23 -23
- data/test/rubygems/test_gem_stub_specification.rb +39 -57
- data/test/rubygems/test_gem_text.rb +8 -4
- data/test/rubygems/test_gem_uninstaller.rb +233 -104
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -5
- data/test/rubygems/test_gem_uri.rb +39 -0
- data/test/rubygems/test_gem_uri_formatter.rb +14 -16
- data/test/rubygems/test_gem_util.rb +37 -35
- data/test/rubygems/test_gem_validator.rb +10 -12
- data/test/rubygems/test_gem_version.rb +31 -31
- data/test/rubygems/test_gem_version_option.rb +16 -18
- data/test/rubygems/test_kernel.rb +46 -60
- data/test/rubygems/test_project_sanity.rb +8 -3
- data/test/rubygems/test_remote_fetch_error.rb +7 -9
- data/test/rubygems/test_require.rb +240 -167
- data/test/rubygems/test_rubygems.rb +74 -0
- data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +30 -39
- data/test/test_changelog_generator.rb +17 -0
- metadata +158 -146
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/Rakefile +0 -428
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/lib/bundler/gemdeps.rb +0 -29
- data/bundler/lib/bundler/psyched_yaml.rb +0 -37
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- data/bundler/man/bundle-add.1.txt +0 -58
- data/bundler/man/bundle-binstubs.1.txt +0 -48
- data/bundler/man/bundle-cache.1.txt +0 -78
- data/bundler/man/bundle-check.1.txt +0 -33
- data/bundler/man/bundle-clean.1.txt +0 -26
- data/bundler/man/bundle-config.1.txt +0 -528
- data/bundler/man/bundle-doctor.1.txt +0 -44
- data/bundler/man/bundle-exec.1.txt +0 -178
- data/bundler/man/bundle-gem.1.txt +0 -91
- data/bundler/man/bundle-info.1.txt +0 -21
- data/bundler/man/bundle-init.1.txt +0 -34
- data/bundler/man/bundle-inject.1.txt +0 -32
- data/bundler/man/bundle-install.1.txt +0 -401
- data/bundler/man/bundle-list.1.txt +0 -43
- data/bundler/man/bundle-lock.1.txt +0 -93
- data/bundler/man/bundle-open.1.txt +0 -29
- data/bundler/man/bundle-outdated.1.txt +0 -131
- data/bundler/man/bundle-platform.1.txt +0 -57
- data/bundler/man/bundle-pristine.1.txt +0 -44
- data/bundler/man/bundle-remove.1.txt +0 -34
- data/bundler/man/bundle-show.1.txt +0 -27
- data/bundler/man/bundle-update.1.txt +0 -390
- data/bundler/man/bundle-viz.1.txt +0 -39
- data/bundler/man/bundle.1.txt +0 -116
- data/bundler/man/gemfile.5.txt +0 -649
- data/lib/rubygems/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -879
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/syck_hack.rb +0 -79
- data/lib/rubygems/uri_parser.rb +0 -36
- data/lib/rubygems/uri_parsing.rb +0 -23
- data/lib/ubygems.rb +0 -14
- 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 -612
- data/tmp/.keep +0 -0
- data/util/CL2notes +0 -55
- data/util/bisect +0 -10
- data/util/ci.sh +0 -62
- 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 -63
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -137
- data/util/update_changelog.rb +0 -64
- /data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- /data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- /data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- /data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- /data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- /data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- /data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- /data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- /data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- /data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
@@ -1,9 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require
|
2
|
+
require_relative "installer_test_case"
|
3
|
+
require "rubygems/uninstaller"
|
4
4
|
|
5
5
|
class TestGemUninstaller < Gem::InstallerTestCase
|
6
|
-
|
7
6
|
def setup
|
8
7
|
super
|
9
8
|
@installer = setup_base_installer
|
@@ -24,14 +23,14 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
24
23
|
end
|
25
24
|
|
26
25
|
def test_initialize_expand_path
|
27
|
-
FileUtils.mkdir_p
|
28
|
-
uninstaller = Gem::Uninstaller.new nil, :install_dir =>
|
26
|
+
FileUtils.mkdir_p "foo/bar"
|
27
|
+
uninstaller = Gem::Uninstaller.new nil, :install_dir => "foo//bar"
|
29
28
|
|
30
|
-
assert_match %r
|
29
|
+
assert_match %r{foo/bar$}, uninstaller.instance_variable_get(:@gem_home)
|
31
30
|
end
|
32
31
|
|
33
32
|
def test_ask_if_ok
|
34
|
-
c = util_spec
|
33
|
+
c = util_spec "c"
|
35
34
|
|
36
35
|
uninstaller = Gem::Uninstaller.new nil
|
37
36
|
|
@@ -55,14 +54,14 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
55
54
|
uninstaller.remove_all [@spec]
|
56
55
|
end
|
57
56
|
|
58
|
-
|
57
|
+
assert_path_not_exist @spec.gem_dir
|
59
58
|
end
|
60
59
|
|
61
60
|
def test_remove_executables_force_keep
|
62
61
|
uninstaller = Gem::Uninstaller.new nil, :executables => false
|
63
62
|
|
64
|
-
executable = File.join Gem.bindir(@user_spec.base_dir),
|
65
|
-
assert File.exist?(executable),
|
63
|
+
executable = File.join Gem.bindir(@user_spec.base_dir), "executable"
|
64
|
+
assert File.exist?(executable), "executable not written"
|
66
65
|
|
67
66
|
use_ui @ui do
|
68
67
|
uninstaller.remove_executables @user_spec
|
@@ -76,8 +75,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
76
75
|
def test_remove_executables_force_remove
|
77
76
|
uninstaller = Gem::Uninstaller.new nil, :executables => true
|
78
77
|
|
79
|
-
executable = File.join Gem.bindir(@user_spec.base_dir),
|
80
|
-
assert File.exist?(executable),
|
78
|
+
executable = File.join Gem.bindir(@user_spec.base_dir), "executable"
|
79
|
+
assert File.exist?(executable), "executable not written"
|
81
80
|
|
82
81
|
use_ui @ui do
|
83
82
|
uninstaller.remove_executables @user_spec
|
@@ -95,14 +94,14 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
95
94
|
uninstaller.remove_executables @user_spec
|
96
95
|
end
|
97
96
|
|
98
|
-
exec_path = File.join Gem.user_dir,
|
99
|
-
refute File.exist?(exec_path),
|
97
|
+
exec_path = File.join Gem.user_dir, "bin", "executable"
|
98
|
+
refute File.exist?(exec_path), "exec still exists in user bin dir"
|
100
99
|
|
101
100
|
assert_equal "Removing executable\n", @ui.output
|
102
101
|
end
|
103
102
|
|
104
103
|
def test_remove_executables_user_format
|
105
|
-
Gem::Installer.exec_format =
|
104
|
+
Gem::Installer.exec_format = "foo-%s-bar"
|
106
105
|
|
107
106
|
uninstaller = Gem::Uninstaller.new nil, :executables => true, :format_executable => true
|
108
107
|
|
@@ -110,8 +109,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
110
109
|
uninstaller.remove_executables @user_spec
|
111
110
|
end
|
112
111
|
|
113
|
-
exec_path = File.join Gem.user_dir,
|
114
|
-
assert_equal false, File.exist?(exec_path),
|
112
|
+
exec_path = File.join Gem.user_dir, "bin", "foo-executable-bar"
|
113
|
+
assert_equal false, File.exist?(exec_path), "removed exec from bin dir"
|
115
114
|
|
116
115
|
assert_equal "Removing foo-executable-bar\n", @ui.output
|
117
116
|
ensure
|
@@ -119,7 +118,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
119
118
|
end
|
120
119
|
|
121
120
|
def test_remove_executables_user_format_disabled
|
122
|
-
Gem::Installer.exec_format =
|
121
|
+
Gem::Installer.exec_format = "foo-%s-bar"
|
123
122
|
|
124
123
|
uninstaller = Gem::Uninstaller.new nil, :executables => true
|
125
124
|
|
@@ -127,8 +126,8 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
127
126
|
uninstaller.remove_executables @user_spec
|
128
127
|
end
|
129
128
|
|
130
|
-
exec_path = File.join Gem.user_dir,
|
131
|
-
refute File.exist?(exec_path),
|
129
|
+
exec_path = File.join Gem.user_dir, "bin", "executable"
|
130
|
+
refute File.exist?(exec_path), "removed exec from bin dir"
|
132
131
|
|
133
132
|
assert_equal "Removing executable\n", @ui.output
|
134
133
|
ensure
|
@@ -139,7 +138,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
139
138
|
Dir.mkdir "#{@gemhome}2"
|
140
139
|
uninstaller = Gem::Uninstaller.new nil, :install_dir => "#{@gemhome}2"
|
141
140
|
|
142
|
-
e =
|
141
|
+
e = assert_raise Gem::GemNotInHomeException do
|
143
142
|
use_ui ui do
|
144
143
|
uninstaller.remove @spec
|
145
144
|
end
|
@@ -150,10 +149,12 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
150
149
|
|
151
150
|
assert_equal expected, e.message
|
152
151
|
|
153
|
-
|
152
|
+
assert_path_exist @spec.gem_dir
|
154
153
|
end
|
155
154
|
|
156
155
|
def test_remove_symlinked_gem_home
|
156
|
+
pend "Symlinks not supported or not enabled" unless symlink_supported?
|
157
|
+
|
157
158
|
Dir.mktmpdir("gem_home") do |dir|
|
158
159
|
symlinked_gem_home = "#{dir}/#{File.basename(@gemhome)}"
|
159
160
|
|
@@ -165,8 +166,61 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
165
166
|
uninstaller.remove @spec
|
166
167
|
end
|
167
168
|
|
168
|
-
|
169
|
+
assert_path_not_exist @spec.gem_dir
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
def test_remove_plugins
|
174
|
+
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
175
|
+
io.write "puts __FILE__"
|
176
|
+
end
|
177
|
+
|
178
|
+
@spec.files += %w[lib/rubygems_plugin.rb]
|
179
|
+
|
180
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
181
|
+
|
182
|
+
plugin_path = File.join Gem.plugindir, "a_plugin.rb"
|
183
|
+
assert File.exist?(plugin_path), "plugin not written"
|
184
|
+
|
185
|
+
Gem::Uninstaller.new(nil).remove_plugins @spec
|
186
|
+
|
187
|
+
refute File.exist?(plugin_path), "plugin not removed"
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_remove_plugins_with_install_dir
|
191
|
+
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
192
|
+
io.write "puts __FILE__"
|
193
|
+
end
|
194
|
+
|
195
|
+
@spec.files += %w[lib/rubygems_plugin.rb]
|
196
|
+
|
197
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
198
|
+
|
199
|
+
plugin_path = File.join Gem.plugindir, "a_plugin.rb"
|
200
|
+
assert File.exist?(plugin_path), "plugin not written"
|
201
|
+
|
202
|
+
Dir.mkdir "#{@gemhome}2"
|
203
|
+
Gem::Uninstaller.new(nil, :install_dir => "#{@gemhome}2").remove_plugins @spec
|
204
|
+
|
205
|
+
assert File.exist?(plugin_path), "plugin unintentionally removed"
|
206
|
+
end
|
207
|
+
|
208
|
+
def test_regenerate_plugins_for
|
209
|
+
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
210
|
+
io.write "puts __FILE__"
|
169
211
|
end
|
212
|
+
|
213
|
+
@spec.files += %w[lib/rubygems_plugin.rb]
|
214
|
+
|
215
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
216
|
+
|
217
|
+
plugin_path = File.join Gem.plugindir, "a_plugin.rb"
|
218
|
+
assert File.exist?(plugin_path), "plugin not written"
|
219
|
+
|
220
|
+
FileUtils.rm plugin_path
|
221
|
+
Gem::Uninstaller.new(nil).regenerate_plugins_for @spec, Gem.plugindir
|
222
|
+
|
223
|
+
assert File.exist?(plugin_path), "plugin not regenerated"
|
170
224
|
end
|
171
225
|
|
172
226
|
def test_path_ok_eh
|
@@ -180,7 +234,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
180
234
|
|
181
235
|
@spec.loaded_from = @spec.loaded_from.gsub @spec.full_name, '\&-legacy'
|
182
236
|
@spec.internal_init # blow out cache. but why did ^^ depend on cache?
|
183
|
-
@spec.platform =
|
237
|
+
@spec.platform = "legacy"
|
184
238
|
|
185
239
|
assert_equal true, uninstaller.path_ok?(@gemhome, @spec)
|
186
240
|
end
|
@@ -194,16 +248,16 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
194
248
|
def test_uninstall
|
195
249
|
uninstaller = Gem::Uninstaller.new @spec.name, :executables => true
|
196
250
|
|
197
|
-
gem_dir = File.join @gemhome,
|
251
|
+
gem_dir = File.join @gemhome, "gems", @spec.full_name
|
198
252
|
|
199
253
|
Gem.pre_uninstall do
|
200
254
|
sleep(0.1) if win_platform?
|
201
|
-
assert File.exist?(gem_dir),
|
255
|
+
assert File.exist?(gem_dir), "gem_dir should exist"
|
202
256
|
end
|
203
257
|
|
204
258
|
Gem.post_uninstall do
|
205
259
|
sleep(0.1) if win_platform?
|
206
|
-
refute File.exist?(gem_dir),
|
260
|
+
refute File.exist?(gem_dir), "gem_dir should not exist"
|
207
261
|
end
|
208
262
|
|
209
263
|
uninstaller.uninstall
|
@@ -215,7 +269,7 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
215
269
|
end
|
216
270
|
|
217
271
|
def test_uninstall_default_gem
|
218
|
-
spec = new_default_spec
|
272
|
+
spec = new_default_spec "default", "2"
|
219
273
|
|
220
274
|
install_default_gems spec
|
221
275
|
|
@@ -227,28 +281,35 @@ class TestGemUninstaller < Gem::InstallerTestCase
|
|
227
281
|
|
228
282
|
lines = @ui.output.split("\n")
|
229
283
|
|
230
|
-
assert_equal
|
284
|
+
assert_equal "Gem default-2 cannot be uninstalled because it is a default gem", lines.shift
|
231
285
|
end
|
232
286
|
|
233
287
|
def test_uninstall_default_gem_with_same_version
|
234
|
-
default_spec = new_default_spec
|
288
|
+
default_spec = new_default_spec "default", "2"
|
235
289
|
install_default_gems default_spec
|
236
290
|
|
237
|
-
spec = util_spec
|
291
|
+
spec = util_spec "default", "2"
|
238
292
|
install_gem spec
|
239
293
|
|
240
294
|
Gem::Specification.reset
|
241
295
|
|
242
296
|
uninstaller = Gem::Uninstaller.new spec.name, :executables => true
|
243
297
|
|
244
|
-
|
245
|
-
|
246
|
-
|
298
|
+
ui = Gem::MockGemUi.new "1\ny\n"
|
299
|
+
use_ui ui do
|
300
|
+
uninstaller.uninstall
|
301
|
+
end
|
302
|
+
expected = "Successfully uninstalled default-2\n" \
|
303
|
+
"There was both a regular copy and a default copy of default-2. The " \
|
304
|
+
"regular copy was successfully uninstalled, but the default copy " \
|
305
|
+
"was left around because default gems can't be removed.\n"
|
306
|
+
assert_equal expected, ui.output
|
307
|
+
assert_path_not_exist spec.gem_dir
|
247
308
|
end
|
248
309
|
|
249
310
|
def test_uninstall_extension
|
250
|
-
@spec.extensions <<
|
251
|
-
write_file File.join(@tempdir,
|
311
|
+
@spec.extensions << "extconf.rb"
|
312
|
+
write_file File.join(@tempdir, "extconf.rb") do |io|
|
252
313
|
io.write <<-RUBY
|
253
314
|
require 'mkmf'
|
254
315
|
create_makefile '#{@spec.name}'
|
@@ -260,22 +321,22 @@ create_makefile '#{@spec.name}'
|
|
260
321
|
use_ui @ui do
|
261
322
|
path = Gem::Package.build @spec
|
262
323
|
|
263
|
-
installer = Gem::Installer.at path
|
324
|
+
installer = Gem::Installer.at path, :force => true
|
264
325
|
installer.install
|
265
326
|
end
|
266
327
|
|
267
|
-
|
328
|
+
assert_path_exist @spec.extension_dir, "sanity check"
|
268
329
|
|
269
330
|
uninstaller = Gem::Uninstaller.new @spec.name, :executables => true
|
270
331
|
uninstaller.uninstall
|
271
332
|
|
272
|
-
|
333
|
+
assert_path_not_exist @spec.extension_dir
|
273
334
|
end
|
274
335
|
|
275
336
|
def test_uninstall_nonexistent
|
276
|
-
uninstaller = Gem::Uninstaller.new
|
337
|
+
uninstaller = Gem::Uninstaller.new "bogus", :executables => true
|
277
338
|
|
278
|
-
e =
|
339
|
+
e = assert_raise Gem::InstallError do
|
279
340
|
uninstaller.uninstall
|
280
341
|
end
|
281
342
|
|
@@ -283,32 +344,32 @@ create_makefile '#{@spec.name}'
|
|
283
344
|
end
|
284
345
|
|
285
346
|
def test_uninstall_not_ok
|
286
|
-
quick_gem
|
347
|
+
quick_gem "z" do |s|
|
287
348
|
s.add_runtime_dependency @spec.name
|
288
349
|
end
|
289
350
|
|
290
351
|
uninstaller = Gem::Uninstaller.new @spec.name
|
291
352
|
|
292
|
-
gem_dir = File.join @gemhome,
|
293
|
-
executable = File.join @gemhome,
|
353
|
+
gem_dir = File.join @gemhome, "gems", @spec.full_name
|
354
|
+
executable = File.join @gemhome, "bin", "executable"
|
294
355
|
|
295
|
-
assert File.exist?(gem_dir),
|
296
|
-
assert File.exist?(executable),
|
356
|
+
assert File.exist?(gem_dir), "gem_dir must exist"
|
357
|
+
assert File.exist?(executable), "executable must exist"
|
297
358
|
|
298
359
|
ui = Gem::MockGemUi.new "n\n"
|
299
360
|
|
300
|
-
|
361
|
+
assert_raise Gem::DependencyRemovalException do
|
301
362
|
use_ui ui do
|
302
363
|
uninstaller.uninstall
|
303
364
|
end
|
304
365
|
end
|
305
366
|
|
306
|
-
assert File.exist?(gem_dir),
|
307
|
-
assert File.exist?(executable),
|
367
|
+
assert File.exist?(gem_dir), "gem_dir must still exist"
|
368
|
+
assert File.exist?(executable), "executable must still exist"
|
308
369
|
end
|
309
370
|
|
310
371
|
def test_uninstall_user_install
|
311
|
-
@user_spec = Gem::Specification.find_by_name
|
372
|
+
@user_spec = Gem::Specification.find_by_name "b"
|
312
373
|
|
313
374
|
uninstaller = Gem::Uninstaller.new(@user_spec.name,
|
314
375
|
:executables => true,
|
@@ -317,16 +378,16 @@ create_makefile '#{@spec.name}'
|
|
317
378
|
gem_dir = File.join @user_spec.gem_dir
|
318
379
|
|
319
380
|
Gem.pre_uninstall do
|
320
|
-
|
381
|
+
assert_path_exist gem_dir
|
321
382
|
end
|
322
383
|
|
323
384
|
Gem.post_uninstall do
|
324
|
-
|
385
|
+
assert_path_not_exist gem_dir
|
325
386
|
end
|
326
387
|
|
327
388
|
uninstaller.uninstall
|
328
389
|
|
329
|
-
|
390
|
+
assert_path_not_exist gem_dir
|
330
391
|
|
331
392
|
assert_same uninstaller, @pre_uninstall_hook_arg
|
332
393
|
assert_same uninstaller, @post_uninstall_hook_arg
|
@@ -338,7 +399,7 @@ create_makefile '#{@spec.name}'
|
|
338
399
|
|
339
400
|
uninstaller = Gem::Uninstaller.new @spec.name, :executables => true
|
340
401
|
|
341
|
-
e =
|
402
|
+
e = assert_raise Gem::InstallError do
|
342
403
|
uninstaller.uninstall
|
343
404
|
end
|
344
405
|
|
@@ -353,9 +414,9 @@ create_makefile '#{@spec.name}'
|
|
353
414
|
def test_uninstall_selection
|
354
415
|
util_make_gems
|
355
416
|
|
356
|
-
list = Gem::Specification.find_all_by_name
|
417
|
+
list = Gem::Specification.find_all_by_name "a"
|
357
418
|
|
358
|
-
uninstaller = Gem::Uninstaller.new
|
419
|
+
uninstaller = Gem::Uninstaller.new "a"
|
359
420
|
|
360
421
|
ui = Gem::MockGemUi.new "1\ny\n"
|
361
422
|
|
@@ -363,39 +424,39 @@ create_makefile '#{@spec.name}'
|
|
363
424
|
uninstaller.uninstall
|
364
425
|
end
|
365
426
|
|
366
|
-
updated_list = Gem::Specification.find_all_by_name(
|
427
|
+
updated_list = Gem::Specification.find_all_by_name("a")
|
367
428
|
assert_equal list.length - 1, updated_list.length
|
368
429
|
|
369
|
-
assert_match
|
370
|
-
assert_match
|
371
|
-
assert_match
|
372
|
-
assert_match
|
373
|
-
assert_match
|
430
|
+
assert_match " 1. a-1", ui.output
|
431
|
+
assert_match " 2. a-2", ui.output
|
432
|
+
assert_match " 3. a-3.a", ui.output
|
433
|
+
assert_match " 4. All versions", ui.output
|
434
|
+
assert_match "uninstalled a-1", ui.output
|
374
435
|
end
|
375
436
|
|
376
437
|
def test_uninstall_selection_greater_than_one
|
377
438
|
util_make_gems
|
378
439
|
|
379
|
-
list = Gem::Specification.find_all_by_name(
|
440
|
+
list = Gem::Specification.find_all_by_name("a")
|
380
441
|
|
381
|
-
uninstaller = Gem::Uninstaller.new(
|
442
|
+
uninstaller = Gem::Uninstaller.new("a")
|
382
443
|
|
383
444
|
use_ui Gem::MockGemUi.new("2\ny\n") do
|
384
445
|
uninstaller.uninstall
|
385
446
|
end
|
386
447
|
|
387
|
-
updated_list = Gem::Specification.find_all_by_name(
|
448
|
+
updated_list = Gem::Specification.find_all_by_name("a")
|
388
449
|
assert_equal list.length - 1, updated_list.length
|
389
450
|
end
|
390
451
|
|
391
452
|
def test_uninstall_prompts_about_broken_deps
|
392
|
-
quick_gem
|
393
|
-
s.add_dependency
|
453
|
+
quick_gem "r", "1" do |s|
|
454
|
+
s.add_dependency "q", "= 1"
|
394
455
|
end
|
395
456
|
|
396
|
-
quick_gem
|
457
|
+
quick_gem "q", "1"
|
397
458
|
|
398
|
-
un = Gem::Uninstaller.new(
|
459
|
+
un = Gem::Uninstaller.new("q")
|
399
460
|
ui = Gem::MockGemUi.new("y\n")
|
400
461
|
|
401
462
|
use_ui ui do
|
@@ -405,27 +466,27 @@ create_makefile '#{@spec.name}'
|
|
405
466
|
lines = ui.output.split("\n")
|
406
467
|
lines.shift
|
407
468
|
|
408
|
-
assert_match %r
|
469
|
+
assert_match %r{You have requested to uninstall the gem:}, lines.shift
|
409
470
|
lines.shift
|
410
471
|
lines.shift
|
411
472
|
|
412
|
-
assert_match %r
|
413
|
-
assert_match %r
|
473
|
+
assert_match %r{r-1 depends on q \(= 1\)}, lines.shift
|
474
|
+
assert_match %r{Successfully uninstalled q-1}, lines.last
|
414
475
|
end
|
415
476
|
|
416
477
|
def test_uninstall_only_lists_unsatisfied_deps
|
417
|
-
quick_gem
|
418
|
-
s.add_dependency
|
478
|
+
quick_gem "r", "1" do |s|
|
479
|
+
s.add_dependency "q", "~> 1.0"
|
419
480
|
end
|
420
481
|
|
421
|
-
quick_gem
|
422
|
-
s.add_dependency
|
482
|
+
quick_gem "x", "1" do |s|
|
483
|
+
s.add_dependency "q", "= 1.0"
|
423
484
|
end
|
424
485
|
|
425
|
-
quick_gem
|
426
|
-
quick_gem
|
486
|
+
quick_gem "q", "1.0"
|
487
|
+
quick_gem "q", "1.1"
|
427
488
|
|
428
|
-
un = Gem::Uninstaller.new(
|
489
|
+
un = Gem::Uninstaller.new("q", :version => "1.0")
|
429
490
|
ui = Gem::MockGemUi.new("y\n")
|
430
491
|
|
431
492
|
use_ui ui do
|
@@ -435,23 +496,23 @@ create_makefile '#{@spec.name}'
|
|
435
496
|
lines = ui.output.split("\n")
|
436
497
|
lines.shift
|
437
498
|
|
438
|
-
assert_match %r
|
499
|
+
assert_match %r{You have requested to uninstall the gem:}, lines.shift
|
439
500
|
lines.shift
|
440
501
|
lines.shift
|
441
502
|
|
442
|
-
assert_match %r
|
443
|
-
assert_match %r
|
503
|
+
assert_match %r{x-1 depends on q \(= 1.0\)}, lines.shift
|
504
|
+
assert_match %r{Successfully uninstalled q-1.0}, lines.last
|
444
505
|
end
|
445
506
|
|
446
507
|
def test_uninstall_doesnt_prompt_when_other_gem_satisfies_requirement
|
447
|
-
quick_gem
|
448
|
-
s.add_dependency
|
508
|
+
quick_gem "r", "1" do |s|
|
509
|
+
s.add_dependency "q", "~> 1.0"
|
449
510
|
end
|
450
511
|
|
451
|
-
quick_gem
|
452
|
-
quick_gem
|
512
|
+
quick_gem "q", "1.0"
|
513
|
+
quick_gem "q", "1.1"
|
453
514
|
|
454
|
-
un = Gem::Uninstaller.new(
|
515
|
+
un = Gem::Uninstaller.new("q", :version => "1.0")
|
455
516
|
ui = Gem::MockGemUi.new("y\n")
|
456
517
|
|
457
518
|
use_ui ui do
|
@@ -464,13 +525,13 @@ create_makefile '#{@spec.name}'
|
|
464
525
|
end
|
465
526
|
|
466
527
|
def test_uninstall_doesnt_prompt_when_removing_a_dev_dep
|
467
|
-
quick_gem
|
468
|
-
s.add_development_dependency
|
528
|
+
quick_gem "r", "1" do |s|
|
529
|
+
s.add_development_dependency "q", "= 1.0"
|
469
530
|
end
|
470
531
|
|
471
|
-
quick_gem
|
532
|
+
quick_gem "q", "1.0"
|
472
533
|
|
473
|
-
un = Gem::Uninstaller.new(
|
534
|
+
un = Gem::Uninstaller.new("q", :version => "1.0")
|
474
535
|
ui = Gem::MockGemUi.new("y\n")
|
475
536
|
|
476
537
|
use_ui ui do
|
@@ -483,16 +544,16 @@ create_makefile '#{@spec.name}'
|
|
483
544
|
end
|
484
545
|
|
485
546
|
def test_uninstall_doesnt_prompt_and_raises_when_abort_on_dependent_set
|
486
|
-
quick_gem
|
487
|
-
s.add_dependency
|
547
|
+
quick_gem "r", "1" do |s|
|
548
|
+
s.add_dependency "q", "= 1"
|
488
549
|
end
|
489
550
|
|
490
|
-
quick_gem
|
551
|
+
quick_gem "q", "1"
|
491
552
|
|
492
|
-
un = Gem::Uninstaller.new(
|
553
|
+
un = Gem::Uninstaller.new("q", :abort_on_dependent => true)
|
493
554
|
ui = Gem::MockGemUi.new("y\n")
|
494
555
|
|
495
|
-
|
556
|
+
assert_raise Gem::DependencyRemovalException do
|
496
557
|
use_ui ui do
|
497
558
|
un.uninstall
|
498
559
|
end
|
@@ -500,13 +561,13 @@ create_makefile '#{@spec.name}'
|
|
500
561
|
end
|
501
562
|
|
502
563
|
def test_uninstall_prompt_includes_dep_type
|
503
|
-
quick_gem
|
504
|
-
s.add_development_dependency
|
564
|
+
quick_gem "r", "1" do |s|
|
565
|
+
s.add_development_dependency "q", "= 1"
|
505
566
|
end
|
506
567
|
|
507
|
-
quick_gem
|
568
|
+
quick_gem "q", "1"
|
508
569
|
|
509
|
-
un = Gem::Uninstaller.new(
|
570
|
+
un = Gem::Uninstaller.new("q", :check_dev => true)
|
510
571
|
ui = Gem::MockGemUi.new("y\n")
|
511
572
|
|
512
573
|
use_ui ui do
|
@@ -516,12 +577,41 @@ create_makefile '#{@spec.name}'
|
|
516
577
|
lines = ui.output.split("\n")
|
517
578
|
lines.shift
|
518
579
|
|
519
|
-
assert_match %r
|
580
|
+
assert_match %r{You have requested to uninstall the gem:}, lines.shift
|
520
581
|
lines.shift
|
521
582
|
lines.shift
|
522
583
|
|
523
|
-
assert_match %r
|
524
|
-
assert_match %r
|
584
|
+
assert_match %r{r-1 depends on q \(= 1, development\)}, lines.shift
|
585
|
+
assert_match %r{Successfully uninstalled q-1}, lines.last
|
586
|
+
end
|
587
|
+
|
588
|
+
def test_uninstall_prompt_only_lists_the_dependents_that_prevented_uninstallation
|
589
|
+
quick_gem "r", "1" do |s|
|
590
|
+
s.add_development_dependency "q", "= 1"
|
591
|
+
end
|
592
|
+
|
593
|
+
quick_gem "s", "1" do |s|
|
594
|
+
s.add_dependency "q", "= 1"
|
595
|
+
end
|
596
|
+
|
597
|
+
quick_gem "q", "1"
|
598
|
+
|
599
|
+
un = Gem::Uninstaller.new("q", :check_dev => false)
|
600
|
+
ui = Gem::MockGemUi.new("y\n")
|
601
|
+
|
602
|
+
use_ui ui do
|
603
|
+
un.uninstall
|
604
|
+
end
|
605
|
+
|
606
|
+
lines = ui.output.split("\n")
|
607
|
+
lines.shift
|
608
|
+
|
609
|
+
assert_match %r{You have requested to uninstall the gem:}, lines.shift
|
610
|
+
lines.shift
|
611
|
+
lines.shift
|
612
|
+
|
613
|
+
assert_match %r{s-1 depends on q \(= 1\)}, lines.shift
|
614
|
+
assert_match %r{Successfully uninstalled q-1}, lines.last
|
525
615
|
end
|
526
616
|
|
527
617
|
def test_uninstall_no_permission
|
@@ -536,10 +626,49 @@ create_makefile '#{@spec.name}'
|
|
536
626
|
end
|
537
627
|
|
538
628
|
FileUtils.stub :rm_r, stub_rm_r do
|
539
|
-
|
629
|
+
assert_raise Gem::UninstallError do
|
540
630
|
uninstaller.uninstall
|
541
631
|
end
|
542
632
|
end
|
543
633
|
end
|
544
634
|
|
635
|
+
def test_uninstall_keeps_plugins_up_to_date
|
636
|
+
write_file File.join(@tempdir, "lib", "rubygems_plugin.rb") do |io|
|
637
|
+
io.write "puts __FILE__"
|
638
|
+
end
|
639
|
+
|
640
|
+
plugin_path = File.join Gem.plugindir, "a_plugin.rb"
|
641
|
+
|
642
|
+
@spec.version = "1"
|
643
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
644
|
+
|
645
|
+
refute File.exist?(plugin_path), "version without plugin installed, but plugin written"
|
646
|
+
|
647
|
+
@spec.files += %w[lib/rubygems_plugin.rb]
|
648
|
+
@spec.version = "2"
|
649
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
650
|
+
|
651
|
+
assert File.exist?(plugin_path), "version with plugin installed, but plugin not written"
|
652
|
+
assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), "written plugin has incorrect content"
|
653
|
+
|
654
|
+
@spec.version = "3"
|
655
|
+
Gem::Installer.at(Gem::Package.build(@spec), :force => true).install
|
656
|
+
|
657
|
+
assert File.exist?(plugin_path), "version with plugin installed, but plugin removed"
|
658
|
+
assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), "old version installed, but plugin updated"
|
659
|
+
|
660
|
+
Gem::Uninstaller.new("a", :version => "1", :executables => true).uninstall
|
661
|
+
|
662
|
+
assert File.exist?(plugin_path), "plugin removed when old version uninstalled"
|
663
|
+
assert_match %r{\Arequire.*a-3/lib/rubygems_plugin\.rb}, File.read(plugin_path), "old version uninstalled, but plugin updated"
|
664
|
+
|
665
|
+
Gem::Uninstaller.new("a", version: "3", :executables => true).uninstall
|
666
|
+
|
667
|
+
assert File.exist?(plugin_path), "plugin removed when old version uninstalled and another version with plugin still present"
|
668
|
+
assert_match %r{\Arequire.*a-2/lib/rubygems_plugin\.rb}, File.read(plugin_path), "latest version uninstalled, but plugin not updated to previous version"
|
669
|
+
|
670
|
+
Gem::Uninstaller.new("a", version: "2", :executables => true).uninstall
|
671
|
+
|
672
|
+
refute File.exist?(plugin_path), "last version uninstalled, but plugin still present"
|
673
|
+
end
|
545
674
|
end
|