rubygems-update 3.1.0 → 3.2.0
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/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/History.txt +435 -179
- data/Manifest.txt +44 -77
- data/POLICIES.md +2 -9
- data/README.md +5 -5
- data/Rakefile +50 -83
- data/bin/update_rubygems +2 -2
- data/bundler/CHANGELOG.md +1590 -1400
- data/bundler/README.md +6 -8
- data/bundler/UPGRADING.md +18 -32
- data/bundler/bundler.gemspec +3 -3
- data/bundler/exe/bundle +3 -0
- data/bundler/lib/bundler.rb +25 -7
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +56 -20
- 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 +1 -7
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +14 -0
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +1 -1
- data/bundler/lib/bundler/cli/exec.rb +7 -16
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +75 -11
- data/bundler/lib/bundler/cli/info.rb +8 -4
- 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 +12 -18
- data/bundler/lib/bundler/cli/issue.rb +2 -2
- data/bundler/lib/bundler/cli/list.rb +1 -1
- data/bundler/lib/bundler/cli/outdated.rb +2 -4
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +1 -1
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +2 -0
- data/bundler/lib/bundler/compact_index_client.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/updater.rb +5 -5
- data/bundler/lib/bundler/definition.rb +47 -61
- data/bundler/lib/bundler/dep_proxy.rb +1 -1
- data/bundler/lib/bundler/dependency.rb +0 -9
- data/bundler/lib/bundler/dsl.rb +5 -9
- data/bundler/lib/bundler/endpoint_specification.rb +1 -1
- data/bundler/lib/bundler/env.rb +1 -1
- data/bundler/lib/bundler/environment_preserver.rb +26 -2
- data/bundler/lib/bundler/errors.rb +1 -0
- data/bundler/lib/bundler/feature_flag.rb +0 -3
- data/bundler/lib/bundler/fetcher.rb +4 -3
- data/bundler/lib/bundler/fetcher/base.rb +1 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
- data/bundler/lib/bundler/fetcher/index.rb +3 -4
- data/bundler/lib/bundler/friendly_errors.rb +22 -13
- data/bundler/lib/bundler/gem_helper.rb +33 -19
- data/bundler/lib/bundler/gem_helpers.rb +6 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +6 -2
- data/bundler/lib/bundler/injector.rb +22 -4
- data/bundler/lib/bundler/inline.rb +2 -2
- data/bundler/lib/bundler/installer.rb +35 -32
- data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
- data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
- data/bundler/lib/bundler/installer/standalone.rb +2 -2
- data/bundler/lib/bundler/lazy_specification.rb +20 -9
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +1 -1
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- 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-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
- data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- 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-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.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-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.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
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin.rb +30 -5
- data/bundler/lib/bundler/plugin/api/source.rb +1 -1
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +10 -1
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/bundler/lib/bundler/plugin/source_list.rb +1 -1
- data/bundler/lib/bundler/psyched_yaml.rb +0 -15
- data/bundler/lib/bundler/remote_specification.rb +5 -2
- data/bundler/lib/bundler/resolver.rb +32 -10
- data/bundler/lib/bundler/resolver/spec_group.rb +27 -6
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +53 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
- data/bundler/lib/bundler/rubygems_integration.rb +35 -25
- data/bundler/lib/bundler/runtime.rb +4 -14
- data/bundler/lib/bundler/settings.rb +49 -46
- data/bundler/lib/bundler/setup.rb +5 -0
- data/bundler/lib/bundler/shared_helpers.rb +2 -2
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source.rb +1 -1
- data/bundler/lib/bundler/source/git.rb +1 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +57 -60
- data/bundler/lib/bundler/source/path.rb +7 -3
- data/bundler/lib/bundler/source/path/installer.rb +8 -10
- data/bundler/lib/bundler/source/rubygems.rb +13 -16
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +2 -2
- data/bundler/lib/bundler/spec_set.rb +2 -1
- data/bundler/lib/bundler/stub_specification.rb +17 -5
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +7 -2
- data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -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 +13 -5
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -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/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -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/ui/shell.rb +5 -5
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +38 -40
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +72 -208
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- 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/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/man/bundle-add.1 +1 -1
- data/bundler/man/bundle-binstubs.1 +5 -3
- data/bundler/man/bundle-cache.1 +1 -1
- data/bundler/man/bundle-check.1 +1 -1
- data/bundler/man/bundle-clean.1 +1 -1
- data/bundler/man/bundle-config.1 +16 -25
- data/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/man/bundle-exec.1 +1 -1
- data/bundler/man/bundle-gem.1 +25 -3
- data/bundler/man/bundle-info.1 +1 -1
- data/bundler/man/bundle-init.1 +1 -1
- data/bundler/man/bundle-inject.1 +1 -1
- data/bundler/man/bundle-install.1 +30 -3
- data/bundler/man/bundle-list.1 +1 -1
- data/bundler/man/bundle-lock.1 +1 -1
- data/bundler/man/bundle-open.1 +1 -1
- data/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/man/bundle-platform.1 +1 -1
- data/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/man/bundle-remove.1 +1 -1
- data/bundler/man/bundle-show.1 +1 -1
- data/bundler/man/bundle-update.1 +1 -1
- data/bundler/man/bundle-viz.1 +1 -1
- data/bundler/man/bundle.1 +1 -1
- data/bundler/man/gemfile.5 +4 -4
- data/lib/rubygems.rb +138 -187
- data/lib/rubygems/available_set.rb +4 -6
- data/lib/rubygems/basic_specification.rb +12 -10
- data/lib/rubygems/bundler_version_finder.rb +14 -9
- data/lib/rubygems/command.rb +17 -17
- data/lib/rubygems/command_manager.rb +5 -6
- data/lib/rubygems/commands/build_command.rb +40 -20
- data/lib/rubygems/commands/cert_command.rb +2 -10
- data/lib/rubygems/commands/check_command.rb +0 -2
- data/lib/rubygems/commands/cleanup_command.rb +11 -7
- data/lib/rubygems/commands/contents_command.rb +4 -6
- data/lib/rubygems/commands/dependency_command.rb +6 -8
- data/lib/rubygems/commands/environment_command.rb +1 -3
- data/lib/rubygems/commands/fetch_command.rb +2 -4
- data/lib/rubygems/commands/generate_index_command.rb +0 -2
- data/lib/rubygems/commands/help_command.rb +4 -4
- data/lib/rubygems/commands/info_command.rb +8 -5
- data/lib/rubygems/commands/install_command.rb +3 -5
- data/lib/rubygems/commands/list_command.rb +8 -7
- data/lib/rubygems/commands/lock_command.rb +1 -3
- data/lib/rubygems/commands/mirror_command.rb +0 -2
- data/lib/rubygems/commands/open_command.rb +0 -4
- data/lib/rubygems/commands/outdated_command.rb +0 -2
- data/lib/rubygems/commands/owner_command.rb +9 -3
- data/lib/rubygems/commands/pristine_command.rb +11 -5
- data/lib/rubygems/commands/push_command.rb +10 -46
- data/lib/rubygems/commands/query_command.rb +14 -344
- data/lib/rubygems/commands/rdoc_command.rb +0 -2
- 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 +158 -70
- data/lib/rubygems/commands/signin_command.rb +0 -2
- data/lib/rubygems/commands/signout_command.rb +0 -2
- data/lib/rubygems/commands/sources_command.rb +9 -7
- data/lib/rubygems/commands/specification_command.rb +8 -4
- data/lib/rubygems/commands/stale_command.rb +1 -3
- data/lib/rubygems/commands/uninstall_command.rb +2 -4
- data/lib/rubygems/commands/unpack_command.rb +1 -3
- data/lib/rubygems/commands/update_command.rb +59 -14
- data/lib/rubygems/commands/which_command.rb +0 -2
- data/lib/rubygems/commands/yank_command.rb +4 -6
- data/lib/rubygems/config_file.rb +11 -4
- data/lib/rubygems/core_ext/kernel_require.rb +29 -36
- data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
- data/lib/rubygems/defaults.rb +101 -7
- data/lib/rubygems/dependency.rb +3 -8
- data/lib/rubygems/dependency_installer.rb +5 -78
- data/lib/rubygems/dependency_list.rb +7 -9
- data/lib/rubygems/deprecate.rb +46 -1
- data/lib/rubygems/doctor.rb +4 -4
- data/lib/rubygems/errors.rb +3 -14
- data/lib/rubygems/exceptions.rb +2 -33
- data/lib/rubygems/ext.rb +6 -6
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +16 -35
- data/lib/rubygems/ext/cmake_builder.rb +5 -7
- data/lib/rubygems/ext/configure_builder.rb +4 -6
- data/lib/rubygems/ext/ext_conf_builder.rb +21 -19
- data/lib/rubygems/ext/rake_builder.rb +3 -5
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +91 -15
- data/lib/rubygems/indexer.rb +1 -22
- data/lib/rubygems/install_update_options.rb +7 -7
- data/lib/rubygems/installer.rb +59 -57
- data/lib/rubygems/installer_test_case.rb +25 -11
- data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/mock_gem_ui.rb +0 -6
- data/lib/rubygems/name_tuple.rb +3 -7
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/package.rb +14 -25
- 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 +0 -3
- 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 +2 -12
- data/lib/rubygems/package_task.rb +1 -7
- data/lib/rubygems/path_support.rb +1 -3
- data/lib/rubygems/platform.rb +21 -12
- data/lib/rubygems/psych_tree.rb +0 -2
- data/lib/rubygems/query_utils.rb +353 -0
- data/lib/rubygems/rdoc.rb +0 -12
- data/lib/rubygems/remote_fetcher.rb +10 -27
- data/lib/rubygems/request.rb +4 -11
- data/lib/rubygems/request/connection_pools.rb +1 -5
- data/lib/rubygems/request/http_pool.rb +0 -2
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request_set.rb +5 -7
- data/lib/rubygems/request_set/gem_dependency_api.rb +6 -8
- data/lib/rubygems/request_set/lockfile.rb +8 -12
- data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
- data/lib/rubygems/requirement.rb +20 -21
- data/lib/rubygems/resolver.rb +8 -11
- data/lib/rubygems/resolver/activation_request.rb +9 -3
- data/lib/rubygems/resolver/api_set.rb +4 -6
- data/lib/rubygems/resolver/api_specification.rb +21 -8
- data/lib/rubygems/resolver/best_set.rb +0 -2
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +2 -4
- 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 +11 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +4 -7
- data/lib/rubygems/resolver/local_specification.rb +0 -2
- data/lib/rubygems/resolver/lock_set.rb +2 -4
- data/lib/rubygems/resolver/lock_specification.rb +0 -2
- 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 +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
- 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 +43 -10
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -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 -2
- data/lib/rubygems/resolver/set.rb +0 -2
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +0 -2
- data/lib/rubygems/resolver/specification.rb +1 -3
- data/lib/rubygems/resolver/stats.rb +0 -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 +2 -8
- 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 +5 -7
- data/lib/rubygems/security/trust_dir.rb +1 -3
- data/lib/rubygems/server.rb +10 -12
- data/lib/rubygems/source.rb +13 -7
- 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 -7
- data/lib/rubygems/spec_fetcher.rb +19 -18
- data/lib/rubygems/specification.rb +113 -126
- data/lib/rubygems/specification_policy.rb +88 -30
- data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +1 -5
- data/lib/rubygems/syck_hack.rb +0 -2
- data/lib/rubygems/test_case.rb +135 -118
- data/lib/rubygems/test_utilities.rb +6 -14
- data/lib/rubygems/uninstaller.rb +35 -16
- data/lib/rubygems/uri_formatter.rb +2 -3
- data/lib/rubygems/uri_parser.rb +0 -2
- data/lib/rubygems/user_interaction.rb +1 -26
- data/lib/rubygems/util.rb +15 -3
- data/lib/rubygems/util/licenses.rb +4 -6
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/validator.rb +1 -3
- data/lib/rubygems/version.rb +5 -7
- data/lib/rubygems/version_option.rb +6 -0
- data/rubygems-update.gemspec +2 -2
- data/setup.rb +2 -7
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- 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 +40 -7
- data/test/rubygems/test_gem.rb +153 -106
- data/test/rubygems/test_gem_available_set.rb +3 -5
- data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
- data/test/rubygems/test_gem_command.rb +24 -7
- data/test/rubygems/test_gem_command_manager.rb +36 -5
- data/test/rubygems/test_gem_commands_build_command.rb +250 -15
- data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
- data/test/rubygems/test_gem_commands_check_command.rb +0 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
- data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
- data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
- data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
- data/test/rubygems/test_gem_commands_help_command.rb +15 -4
- data/test/rubygems/test_gem_commands_info_command.rb +6 -8
- data/test/rubygems/test_gem_commands_install_command.rb +32 -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 -3
- data/test/rubygems/test_gem_commands_open_command.rb +4 -6
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
- data/test/rubygems/test_gem_commands_owner_command.rb +59 -5
- data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
- data/test/rubygems/test_gem_commands_push_command.rb +38 -9
- data/test/rubygems/test_gem_commands_query_command.rb +12 -12
- data/test/rubygems/test_gem_commands_search_command.rb +0 -2
- data/test/rubygems/test_gem_commands_server_command.rb +0 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +211 -124
- data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
- data/test/rubygems/test_gem_commands_sources_command.rb +99 -3
- 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 +2 -3
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
- data/test/rubygems/test_gem_commands_update_command.rb +116 -7
- data/test/rubygems/test_gem_commands_which_command.rb +3 -5
- data/test/rubygems/test_gem_commands_yank_command.rb +44 -8
- data/test/rubygems/test_gem_config_file.rb +7 -12
- data/test/rubygems/test_gem_dependency.rb +0 -2
- data/test/rubygems/test_gem_dependency_installer.rb +90 -193
- data/test/rubygems/test_gem_dependency_list.rb +10 -12
- 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 +26 -47
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
- data/test/rubygems/test_gem_ext_configure_builder.rb +4 -20
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
- data/test/rubygems/test_gem_ext_rake_builder.rb +14 -24
- data/test/rubygems/test_gem_gem_runner.rb +44 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
- data/test/rubygems/test_gem_indexer.rb +9 -15
- data/test/rubygems/test_gem_install_update_options.rb +14 -4
- data/test/rubygems/test_gem_installer.rb +265 -81
- 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 +41 -39
- data/test/rubygems/test_gem_package_old.rb +4 -6
- 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 +0 -2
- data/test/rubygems/test_gem_package_tar_writer.rb +9 -6
- data/test/rubygems/test_gem_package_task.rb +46 -13
- data/test/rubygems/test_gem_path_support.rb +0 -2
- data/test/rubygems/test_gem_platform.rb +63 -6
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +168 -211
- data/test/rubygems/test_gem_request.rb +13 -17
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
- data/test/rubygems/test_gem_request_set.rb +72 -22
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
- data/test/rubygems/test_gem_request_set_lockfile.rb +4 -6
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
- data/test/rubygems/test_gem_requirement.rb +10 -4
- data/test/rubygems/test_gem_resolver.rb +6 -8
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_api_set.rb +11 -13
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
- 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 +0 -2
- data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
- 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 -4
- 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 +22 -24
- data/test/rubygems/test_gem_security_policy.rb +7 -12
- data/test/rubygems/test_gem_security_signer.rb +10 -12
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
- data/test/rubygems/test_gem_server.rb +10 -14
- data/test/rubygems/test_gem_silent_ui.rb +0 -2
- data/test/rubygems/test_gem_source.rb +17 -16
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
- data/test/rubygems/test_gem_source_git.rb +12 -13
- data/test/rubygems/test_gem_source_installed.rb +7 -9
- data/test/rubygems/test_gem_source_list.rb +1 -2
- data/test/rubygems/test_gem_source_local.rb +8 -10
- data/test/rubygems/test_gem_source_lock.rb +10 -12
- data/test/rubygems/test_gem_source_specific_file.rb +7 -9
- 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 +182 -131
- data/test/rubygems/test_gem_stream_ui.rb +3 -3
- data/test/rubygems/test_gem_stub_specification.rb +4 -7
- data/test/rubygems/test_gem_text.rb +1 -3
- data/test/rubygems/test_gem_uninstaller.rb +134 -12
- 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 +7 -7
- data/test/rubygems/test_gem_validator.rb +1 -3
- data/test/rubygems/test_gem_version.rb +1 -3
- data/test/rubygems/test_gem_version_option.rb +1 -3
- data/test/rubygems/test_kernel.rb +25 -10
- data/test/rubygems/test_project_sanity.rb +7 -2
- data/test/rubygems/test_remote_fetch_error.rb +0 -2
- data/test/rubygems/test_require.rb +291 -56
- metadata +66 -100
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- 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 -44
- 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/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- 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/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 -139
- data/util/update_changelog.rb +0 -67
@@ -29,7 +29,6 @@ require 'rubygems/remote_fetcher'
|
|
29
29
|
# See RubyGems' tests for more examples of FakeFetcher.
|
30
30
|
|
31
31
|
class Gem::FakeFetcher
|
32
|
-
|
33
32
|
attr_reader :data
|
34
33
|
attr_reader :last_request
|
35
34
|
attr_accessor :paths
|
@@ -40,7 +39,7 @@ class Gem::FakeFetcher
|
|
40
39
|
end
|
41
40
|
|
42
41
|
def find_data(path, nargs = 3)
|
43
|
-
return
|
42
|
+
return Gem.read_binary path.path if URI === path and 'file' == path.scheme
|
44
43
|
|
45
44
|
if URI === path and "URI::#{path.scheme.upcase}" != path.class.name
|
46
45
|
raise ArgumentError,
|
@@ -49,7 +48,7 @@ class Gem::FakeFetcher
|
|
49
48
|
|
50
49
|
path = path.to_s
|
51
50
|
@paths << path
|
52
|
-
raise ArgumentError, 'need full URI' unless path
|
51
|
+
raise ArgumentError, 'need full URI' unless path.start_with?("https://", "http://")
|
53
52
|
|
54
53
|
unless @data.key? path
|
55
54
|
raise Gem::RemoteFetcher::FetchError.new("no data for #{path}", path)
|
@@ -67,7 +66,7 @@ class Gem::FakeFetcher
|
|
67
66
|
if data.respond_to?(:call)
|
68
67
|
data.call
|
69
68
|
else
|
70
|
-
if path.to_s
|
69
|
+
if path.to_s.end_with?(".gz") and not data.nil? and not data.empty?
|
71
70
|
data = Gem::Util.gunzip data
|
72
71
|
end
|
73
72
|
data
|
@@ -76,7 +75,7 @@ class Gem::FakeFetcher
|
|
76
75
|
|
77
76
|
def cache_update_path(uri, path = nil, update = true)
|
78
77
|
if data = fetch_path(uri)
|
79
|
-
open(path, 'wb') {
|
78
|
+
open(path, 'wb') {|io| io.write data } if path and update
|
80
79
|
data
|
81
80
|
else
|
82
81
|
Gem.read_binary(path) if path
|
@@ -121,7 +120,7 @@ class Gem::FakeFetcher
|
|
121
120
|
path = path.to_s
|
122
121
|
@paths << path
|
123
122
|
|
124
|
-
raise ArgumentError, 'need full URI' unless path =~ %r
|
123
|
+
raise ArgumentError, 'need full URI' unless path =~ %r{^http://}
|
125
124
|
|
126
125
|
unless @data.key? path
|
127
126
|
raise Gem::RemoteFetcher::FetchError.new("no data for #{path}", path)
|
@@ -134,7 +133,7 @@ class Gem::FakeFetcher
|
|
134
133
|
|
135
134
|
def download(spec, source_uri, install_dir = Gem.dir)
|
136
135
|
name = File.basename spec.cache_file
|
137
|
-
path = if Dir.pwd == install_dir
|
136
|
+
path = if Dir.pwd == install_dir # see fetch_command
|
138
137
|
install_dir
|
139
138
|
else
|
140
139
|
File.join install_dir, "cache"
|
@@ -162,16 +161,13 @@ class Gem::FakeFetcher
|
|
162
161
|
|
163
162
|
download spec, source.uri.to_s
|
164
163
|
end
|
165
|
-
|
166
164
|
end
|
167
165
|
|
168
166
|
# :stopdoc:
|
169
167
|
class Gem::RemoteFetcher
|
170
|
-
|
171
168
|
def self.fetcher=(fetcher)
|
172
169
|
@fetcher = fetcher
|
173
170
|
end
|
174
|
-
|
175
171
|
end
|
176
172
|
# :startdoc:
|
177
173
|
|
@@ -191,7 +187,6 @@ end
|
|
191
187
|
# After the gems are created they are removed from Gem.dir.
|
192
188
|
|
193
189
|
class Gem::TestCase::SpecFetcherSetup
|
194
|
-
|
195
190
|
##
|
196
191
|
# Executes a SpecFetcher setup block. Yields an instance then creates the
|
197
192
|
# gems and specifications defined in the instance.
|
@@ -346,7 +341,6 @@ class Gem::TestCase::SpecFetcherSetup
|
|
346
341
|
io.write spec.to_ruby_for_cache
|
347
342
|
end
|
348
343
|
end
|
349
|
-
|
350
344
|
end
|
351
345
|
|
352
346
|
##
|
@@ -358,7 +352,6 @@ end
|
|
358
352
|
# This class was added to flush out problems in Rubinius' IO implementation.
|
359
353
|
|
360
354
|
class TempIO < Tempfile
|
361
|
-
|
362
355
|
##
|
363
356
|
# Creates a new TempIO that will be initialized to contain +string+.
|
364
357
|
|
@@ -376,5 +369,4 @@ class TempIO < Tempfile
|
|
376
369
|
flush
|
377
370
|
Gem.read_binary path
|
378
371
|
end
|
379
|
-
|
380
372
|
end
|
data/lib/rubygems/uninstaller.rb
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
|
8
8
|
require 'fileutils'
|
9
9
|
require 'rubygems'
|
10
|
+
require 'rubygems/installer_uninstaller_utils'
|
10
11
|
require 'rubygems/dependency_list'
|
11
12
|
require 'rubygems/rdoc'
|
12
13
|
require 'rubygems/user_interaction'
|
@@ -20,9 +21,10 @@ require 'rubygems/user_interaction'
|
|
20
21
|
# file. See Gem.pre_uninstall and Gem.post_uninstall for details.
|
21
22
|
|
22
23
|
class Gem::Uninstaller
|
23
|
-
|
24
24
|
include Gem::UserInteraction
|
25
25
|
|
26
|
+
include Gem::InstallerUninstallerUtils
|
27
|
+
|
26
28
|
##
|
27
29
|
# The directory a gem's executables will be installed into
|
28
30
|
|
@@ -47,6 +49,7 @@ class Gem::Uninstaller
|
|
47
49
|
@gem = gem
|
48
50
|
@version = options[:version] || Gem::Requirement.default
|
49
51
|
@gem_home = File.realpath(options[:install_dir] || Gem.dir)
|
52
|
+
@plugins_dir = Gem.plugindir(@gem_home)
|
50
53
|
@force_executables = options[:executables]
|
51
54
|
@force_all = options[:all]
|
52
55
|
@force_ignore = options[:ignore]
|
@@ -110,10 +113,10 @@ class Gem::Uninstaller
|
|
110
113
|
if list.empty?
|
111
114
|
return unless other_repo_specs.any?
|
112
115
|
|
113
|
-
other_repos = other_repo_specs.map {
|
116
|
+
other_repos = other_repo_specs.map {|spec| spec.base_dir }.uniq
|
114
117
|
|
115
118
|
message = ["#{@gem} is not installed in GEM_HOME, try:"]
|
116
|
-
message.concat other_repos.map {
|
119
|
+
message.concat other_repos.map {|repo|
|
117
120
|
"\tgem uninstall -i #{repo} #{@gem}"
|
118
121
|
}
|
119
122
|
|
@@ -122,7 +125,7 @@ class Gem::Uninstaller
|
|
122
125
|
remove_all list
|
123
126
|
|
124
127
|
elsif list.size > 1
|
125
|
-
gem_names = list.map {
|
128
|
+
gem_names = list.map {|gem| gem.full_name }
|
126
129
|
gem_names << "All versions"
|
127
130
|
|
128
131
|
say
|
@@ -158,8 +161,11 @@ class Gem::Uninstaller
|
|
158
161
|
end
|
159
162
|
|
160
163
|
remove_executables @spec
|
164
|
+
remove_plugins @spec
|
161
165
|
remove @spec
|
162
166
|
|
167
|
+
regenerate_plugins
|
168
|
+
|
163
169
|
Gem.post_uninstall_hooks.each do |hook|
|
164
170
|
hook.call self
|
165
171
|
end
|
@@ -168,11 +174,10 @@ class Gem::Uninstaller
|
|
168
174
|
end
|
169
175
|
|
170
176
|
##
|
171
|
-
# Removes installed executables and batch files (windows only) for
|
172
|
-
# +gemspec+.
|
177
|
+
# Removes installed executables and batch files (windows only) for +spec+.
|
173
178
|
|
174
179
|
def remove_executables(spec)
|
175
|
-
return if spec.
|
180
|
+
return if spec.executables.empty?
|
176
181
|
|
177
182
|
executables = spec.executables.clone
|
178
183
|
|
@@ -191,7 +196,7 @@ class Gem::Uninstaller
|
|
191
196
|
|
192
197
|
return if executables.empty?
|
193
198
|
|
194
|
-
executables = executables.map {
|
199
|
+
executables = executables.map {|exec| formatted_program_filename exec }
|
195
200
|
|
196
201
|
remove = if @force_executables.nil?
|
197
202
|
ask_yes_no("Remove executables:\n" +
|
@@ -226,15 +231,11 @@ class Gem::Uninstaller
|
|
226
231
|
# NOTE: removes uninstalled gems from +list+.
|
227
232
|
|
228
233
|
def remove_all(list)
|
229
|
-
list.each {
|
234
|
+
list.each {|spec| uninstall_gem spec }
|
230
235
|
end
|
231
236
|
|
232
237
|
##
|
233
238
|
# spec:: the spec of the gem to be uninstalled
|
234
|
-
# list:: the list of all such gems
|
235
|
-
#
|
236
|
-
# Warning: this method modifies the +list+ parameter. Once it has
|
237
|
-
# uninstalled a gem, it is removed from that list.
|
238
239
|
|
239
240
|
def remove(spec)
|
240
241
|
unless path_ok?(@gem_home, spec) or
|
@@ -274,6 +275,25 @@ class Gem::Uninstaller
|
|
274
275
|
Gem::Specification.reset
|
275
276
|
end
|
276
277
|
|
278
|
+
##
|
279
|
+
# Remove any plugin wrappers for +spec+.
|
280
|
+
|
281
|
+
def remove_plugins(spec) # :nodoc:
|
282
|
+
return if spec.plugins.empty?
|
283
|
+
|
284
|
+
remove_plugins_for(spec, @plugins_dir)
|
285
|
+
end
|
286
|
+
|
287
|
+
##
|
288
|
+
# Regenerates plugin wrappers after removal.
|
289
|
+
|
290
|
+
def regenerate_plugins
|
291
|
+
latest = Gem::Specification.latest_spec_for(@spec.name)
|
292
|
+
return if latest.nil?
|
293
|
+
|
294
|
+
regenerate_plugins_for(latest, @plugins_dir)
|
295
|
+
end
|
296
|
+
|
277
297
|
##
|
278
298
|
# Is +spec+ in +gem_dir+?
|
279
299
|
|
@@ -317,8 +337,8 @@ class Gem::Uninstaller
|
|
317
337
|
s.name == spec.name && s.full_name != spec.full_name
|
318
338
|
end
|
319
339
|
|
320
|
-
spec.dependent_gems.each do |dep_spec, dep, satlist|
|
321
|
-
unless siblings.any? {
|
340
|
+
spec.dependent_gems(@check_dev).each do |dep_spec, dep, satlist|
|
341
|
+
unless siblings.any? {|s| s.satisfies_requirement? dep }
|
322
342
|
msg << "#{dep_spec.name}-#{dep_spec.version} depends on #{dep}"
|
323
343
|
end
|
324
344
|
end
|
@@ -353,5 +373,4 @@ class Gem::Uninstaller
|
|
353
373
|
|
354
374
|
raise e
|
355
375
|
end
|
356
|
-
|
357
376
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'cgi'
|
3
2
|
|
4
3
|
##
|
5
4
|
# The UriFormatter handles URIs from user-input and escaping.
|
@@ -9,7 +8,6 @@ require 'cgi'
|
|
9
8
|
# p uf.normalize #=> 'http://example.com'
|
10
9
|
|
11
10
|
class Gem::UriFormatter
|
12
|
-
|
13
11
|
##
|
14
12
|
# The URI to be formatted.
|
15
13
|
|
@@ -19,6 +17,8 @@ class Gem::UriFormatter
|
|
19
17
|
# Creates a new URI formatter for +uri+.
|
20
18
|
|
21
19
|
def initialize(uri)
|
20
|
+
require 'cgi'
|
21
|
+
|
22
22
|
@uri = uri
|
23
23
|
end
|
24
24
|
|
@@ -44,5 +44,4 @@ class Gem::UriFormatter
|
|
44
44
|
return unless @uri
|
45
45
|
CGI.unescape @uri
|
46
46
|
end
|
47
|
-
|
48
47
|
end
|
data/lib/rubygems/uri_parser.rb
CHANGED
@@ -5,7 +5,6 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
require 'rubygems/util'
|
9
8
|
require 'rubygems/deprecate'
|
10
9
|
require 'rubygems/text'
|
11
10
|
|
@@ -173,7 +172,6 @@ end
|
|
173
172
|
# Gem::StreamUI implements a simple stream based user interface.
|
174
173
|
|
175
174
|
class Gem::StreamUI
|
176
|
-
|
177
175
|
extend Gem::Deprecate
|
178
176
|
|
179
177
|
##
|
@@ -323,7 +321,7 @@ class Gem::StreamUI
|
|
323
321
|
|
324
322
|
def _gets_noecho
|
325
323
|
require_io_console
|
326
|
-
@ins.noecho {@ins.gets}
|
324
|
+
@ins.noecho { @ins.gets }
|
327
325
|
end
|
328
326
|
|
329
327
|
##
|
@@ -358,14 +356,6 @@ class Gem::StreamUI
|
|
358
356
|
ask(question) if question
|
359
357
|
end
|
360
358
|
|
361
|
-
##
|
362
|
-
# Display a debug message on the same location as error messages.
|
363
|
-
|
364
|
-
def debug(statement)
|
365
|
-
@errs.puts statement
|
366
|
-
end
|
367
|
-
deprecate :debug, :none, 2018, 12
|
368
|
-
|
369
359
|
##
|
370
360
|
# Terminate the application with exit code +status+, running any exit
|
371
361
|
# handlers that might have been defined.
|
@@ -396,7 +386,6 @@ class Gem::StreamUI
|
|
396
386
|
# An absolutely silent progress reporter.
|
397
387
|
|
398
388
|
class SilentProgressReporter
|
399
|
-
|
400
389
|
##
|
401
390
|
# The count of items is never updated for the silent progress reporter.
|
402
391
|
|
@@ -421,14 +410,12 @@ class Gem::StreamUI
|
|
421
410
|
|
422
411
|
def done
|
423
412
|
end
|
424
|
-
|
425
413
|
end
|
426
414
|
|
427
415
|
##
|
428
416
|
# A basic dotted progress reporter.
|
429
417
|
|
430
418
|
class SimpleProgressReporter
|
431
|
-
|
432
419
|
include Gem::DefaultUserInteraction
|
433
420
|
|
434
421
|
##
|
@@ -466,14 +453,12 @@ class Gem::StreamUI
|
|
466
453
|
def done
|
467
454
|
@out.puts "\n#{@terminal_message}"
|
468
455
|
end
|
469
|
-
|
470
456
|
end
|
471
457
|
|
472
458
|
##
|
473
459
|
# A progress reporter that prints out messages about the current progress.
|
474
460
|
|
475
461
|
class VerboseProgressReporter
|
476
|
-
|
477
462
|
include Gem::DefaultUserInteraction
|
478
463
|
|
479
464
|
##
|
@@ -510,7 +495,6 @@ class Gem::StreamUI
|
|
510
495
|
def done
|
511
496
|
@out.puts @terminal_message
|
512
497
|
end
|
513
|
-
|
514
498
|
end
|
515
499
|
|
516
500
|
##
|
@@ -528,7 +512,6 @@ class Gem::StreamUI
|
|
528
512
|
# An absolutely silent download reporter.
|
529
513
|
|
530
514
|
class SilentDownloadReporter
|
531
|
-
|
532
515
|
##
|
533
516
|
# The silent download reporter ignores all arguments
|
534
517
|
|
@@ -554,14 +537,12 @@ class Gem::StreamUI
|
|
554
537
|
|
555
538
|
def done
|
556
539
|
end
|
557
|
-
|
558
540
|
end
|
559
541
|
|
560
542
|
##
|
561
543
|
# A progress reporter that behaves nicely with threaded downloading.
|
562
544
|
|
563
545
|
class ThreadedDownloadReporter
|
564
|
-
|
565
546
|
MUTEX = Mutex.new
|
566
547
|
|
567
548
|
##
|
@@ -610,9 +591,7 @@ class Gem::StreamUI
|
|
610
591
|
@out.puts message
|
611
592
|
end
|
612
593
|
end
|
613
|
-
|
614
594
|
end
|
615
|
-
|
616
595
|
end
|
617
596
|
|
618
597
|
##
|
@@ -620,7 +599,6 @@ end
|
|
620
599
|
# STDOUT, and STDERR.
|
621
600
|
|
622
601
|
class Gem::ConsoleUI < Gem::StreamUI
|
623
|
-
|
624
602
|
##
|
625
603
|
# The Console UI has no arguments as it defaults to reading input from
|
626
604
|
# stdin, output to stdout and warnings or errors to stderr.
|
@@ -628,14 +606,12 @@ class Gem::ConsoleUI < Gem::StreamUI
|
|
628
606
|
def initialize
|
629
607
|
super STDIN, STDOUT, STDERR, true
|
630
608
|
end
|
631
|
-
|
632
609
|
end
|
633
610
|
|
634
611
|
##
|
635
612
|
# SilentUI is a UI choice that is absolutely silent.
|
636
613
|
|
637
614
|
class Gem::SilentUI < Gem::StreamUI
|
638
|
-
|
639
615
|
##
|
640
616
|
# The SilentUI has no arguments as it does not use any stream.
|
641
617
|
|
@@ -661,5 +637,4 @@ class Gem::SilentUI < Gem::StreamUI
|
|
661
637
|
def progress_reporter(*args) # :nodoc:
|
662
638
|
SilentProgressReporter.new(@outs, *args)
|
663
639
|
end
|
664
|
-
|
665
640
|
end
|
data/lib/rubygems/util.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require 'rubygems/deprecate'
|
3
|
+
|
2
4
|
##
|
3
5
|
# This module contains various utility methods as module methods.
|
4
6
|
|
5
7
|
module Gem::Util
|
6
8
|
|
7
|
-
@silent_mutex = nil
|
8
|
-
|
9
9
|
##
|
10
10
|
# Zlib::GzipReader wrapper that unzips +data+.
|
11
11
|
|
@@ -14,7 +14,13 @@ module Gem::Util
|
|
14
14
|
require 'stringio'
|
15
15
|
data = StringIO.new(data, 'r')
|
16
16
|
|
17
|
-
|
17
|
+
gzip_reader = begin
|
18
|
+
Zlib::GzipReader.new(data)
|
19
|
+
rescue Zlib::GzipFile::Error => e
|
20
|
+
raise e.class, e.inspect, e.backtrace
|
21
|
+
end
|
22
|
+
|
23
|
+
unzipped = gzip_reader.read
|
18
24
|
unzipped.force_encoding Encoding::BINARY
|
19
25
|
unzipped
|
20
26
|
end
|
@@ -64,6 +70,12 @@ module Gem::Util
|
|
64
70
|
system(*(cmds << opt))
|
65
71
|
end
|
66
72
|
|
73
|
+
class << self
|
74
|
+
extend Gem::Deprecate
|
75
|
+
|
76
|
+
rubygems_deprecate :silent_system
|
77
|
+
end
|
78
|
+
|
67
79
|
##
|
68
80
|
# Enumerates the parents of +directory+.
|
69
81
|
|