rubygems-update 3.1.2 → 3.2.6
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} +756 -489
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/Manifest.txt +75 -104
- data/POLICIES.md +6 -12
- data/README.md +5 -5
- data/Rakefile +64 -92
- data/bin/update_rubygems +1 -1
- data/bundler/CHANGELOG.md +1636 -1422
- data/bundler/README.md +6 -8
- data/bundler/UPGRADING.md +18 -32
- data/bundler/bundler.gemspec +4 -4
- data/bundler/exe/bundle +3 -0
- data/bundler/lib/bundler.rb +32 -8
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +55 -21
- 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 +4 -4
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +86 -11
- data/bundler/lib/bundler/cli/info.rb +15 -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 +16 -13
- data/bundler/lib/bundler/cli/issue.rb +2 -2
- data/bundler/lib/bundler/cli/list.rb +12 -10
- data/bundler/lib/bundler/cli/outdated.rb +87 -66
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +3 -1
- data/bundler/lib/bundler/compact_index_client.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +6 -14
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +5 -13
- data/bundler/lib/bundler/definition.rb +66 -82
- data/bundler/lib/bundler/dep_proxy.rb +16 -9
- data/bundler/lib/bundler/dependency.rb +3 -10
- 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 +36 -25
- data/bundler/lib/bundler/gem_version_promoter.rb +4 -4
- 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 +35 -11
- 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 → lib/bundler/man}/bundle-add.1 +1 -1
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- 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 +1 -1
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +16 -25
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-exec.1 +1 -1
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-gem.1 +25 -3
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-init.1 +1 -1
- data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-inject.1 +1 -1
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-install.1 +30 -3
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- 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/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-open.1 +1 -1
- data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-platform.1 +1 -1
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-update.1 +1 -1
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1 +1 -1
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/bundle.1 +1 -1
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5 +4 -4
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- data/bundler/{man → lib/bundler/man}/index.txt +0 -0
- 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 +43 -19
- data/bundler/lib/bundler/resolver/spec_group.rb +39 -24
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +69 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
- data/bundler/lib/bundler/rubygems_integration.rb +26 -61
- data/bundler/lib/bundler/runtime.rb +4 -14
- data/bundler/lib/bundler/settings.rb +49 -46
- 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 +23 -21
- data/bundler/lib/bundler/source/git/git_proxy.rb +82 -80
- data/bundler/lib/bundler/source/path.rb +7 -3
- data/bundler/lib/bundler/source/path/installer.rb +10 -10
- data/bundler/lib/bundler/source/rubygems.rb +23 -17
- 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 +8 -10
- data/bundler/lib/bundler/stub_specification.rb +17 -7
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +9 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +19 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +15 -7
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/{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 +48 -46
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +79 -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/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 -4
- data/lib/rubygems/commands/pristine_command.rb +11 -5
- data/lib/rubygems/commands/push_command.rb +10 -47
- 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 +101 -74
- 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 -7
- 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 +6 -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 +21 -39
- 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 +21 -19
- data/lib/rubygems/ext/rake_builder.rb +4 -6
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +102 -21
- data/lib/rubygems/indexer.rb +1 -22
- data/lib/rubygems/install_update_options.rb +7 -7
- data/lib/rubygems/installer.rb +59 -80
- 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 -16
- 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 +14 -29
- 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 +7 -20
- 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 +21 -22
- data/lib/rubygems/resolver.rb +14 -12
- data/lib/rubygems/resolver/activation_request.rb +9 -3
- data/lib/rubygems/resolver/api_set.rb +31 -24
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_specification.rb +24 -10
- data/lib/rubygems/resolver/best_set.rb +2 -4
- 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 +29 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +60 -13
- 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 +14 -2
- data/lib/rubygems/resolver/specification.rb +13 -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 +16 -13
- data/lib/rubygems/source.rb +23 -12
- 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 +4 -7
- data/lib/rubygems/spec_fetcher.rb +19 -18
- data/lib/rubygems/specification.rb +122 -131
- 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 +120 -134
- data/lib/rubygems/test_utilities.rb +12 -19
- 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 +3 -3
- data/setup.rb +2 -7
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- 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 +156 -99
- 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 +163 -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 +77 -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 +160 -135
- 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 +116 -239
- 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 +50 -47
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -25
- data/test/rubygems/test_gem_ext_configure_builder.rb +6 -22
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
- data/test/rubygems/test_gem_ext_rake_builder.rb +39 -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 +258 -115
- 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 +71 -6
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +169 -212
- 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 +43 -3
- 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 +60 -59
- data/test/rubygems/test_gem_resolver_api_specification.rb +3 -5
- data/test/rubygems/test_gem_resolver_best_set.rb +27 -6
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_conflict.rb +1 -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 +19 -18
- 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 +188 -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
- data/test/test_changelog_generator.rb +17 -0
- metadata +79 -133
- 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 -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/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
|
@@ -39,8 +38,8 @@ class Gem::FakeFetcher
|
|
39
38
|
@paths = []
|
40
39
|
end
|
41
40
|
|
42
|
-
def find_data(path
|
43
|
-
return
|
41
|
+
def find_data(path)
|
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,16 +48,17 @@ 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)
|
56
55
|
end
|
57
56
|
|
58
|
-
data
|
59
|
-
|
60
|
-
|
61
|
-
|
57
|
+
if @data[path].kind_of?(Array) && @data[path].first.kind_of?(Array)
|
58
|
+
@data[path].shift
|
59
|
+
else
|
60
|
+
@data[path]
|
61
|
+
end
|
62
62
|
end
|
63
63
|
|
64
64
|
def fetch_path(path, mtime = nil, head = false)
|
@@ -67,7 +67,7 @@ class Gem::FakeFetcher
|
|
67
67
|
if data.respond_to?(:call)
|
68
68
|
data.call
|
69
69
|
else
|
70
|
-
if path.to_s
|
70
|
+
if path.to_s.end_with?(".gz") and not data.nil? and not data.empty?
|
71
71
|
data = Gem::Util.gunzip data
|
72
72
|
end
|
73
73
|
data
|
@@ -76,7 +76,7 @@ class Gem::FakeFetcher
|
|
76
76
|
|
77
77
|
def cache_update_path(uri, path = nil, update = true)
|
78
78
|
if data = fetch_path(uri)
|
79
|
-
open(path, 'wb') {
|
79
|
+
open(path, 'wb') {|io| io.write data } if path and update
|
80
80
|
data
|
81
81
|
else
|
82
82
|
Gem.read_binary(path) if path
|
@@ -121,7 +121,7 @@ class Gem::FakeFetcher
|
|
121
121
|
path = path.to_s
|
122
122
|
@paths << path
|
123
123
|
|
124
|
-
raise ArgumentError, 'need full URI' unless path =~ %r
|
124
|
+
raise ArgumentError, 'need full URI' unless path =~ %r{^http://}
|
125
125
|
|
126
126
|
unless @data.key? path
|
127
127
|
raise Gem::RemoteFetcher::FetchError.new("no data for #{path}", path)
|
@@ -134,7 +134,7 @@ class Gem::FakeFetcher
|
|
134
134
|
|
135
135
|
def download(spec, source_uri, install_dir = Gem.dir)
|
136
136
|
name = File.basename spec.cache_file
|
137
|
-
path = if Dir.pwd == install_dir
|
137
|
+
path = if Dir.pwd == install_dir # see fetch_command
|
138
138
|
install_dir
|
139
139
|
else
|
140
140
|
File.join install_dir, "cache"
|
@@ -162,16 +162,13 @@ class Gem::FakeFetcher
|
|
162
162
|
|
163
163
|
download spec, source.uri.to_s
|
164
164
|
end
|
165
|
-
|
166
165
|
end
|
167
166
|
|
168
167
|
# :stopdoc:
|
169
168
|
class Gem::RemoteFetcher
|
170
|
-
|
171
169
|
def self.fetcher=(fetcher)
|
172
170
|
@fetcher = fetcher
|
173
171
|
end
|
174
|
-
|
175
172
|
end
|
176
173
|
# :startdoc:
|
177
174
|
|
@@ -191,7 +188,6 @@ end
|
|
191
188
|
# After the gems are created they are removed from Gem.dir.
|
192
189
|
|
193
190
|
class Gem::TestCase::SpecFetcherSetup
|
194
|
-
|
195
191
|
##
|
196
192
|
# Executes a SpecFetcher setup block. Yields an instance then creates the
|
197
193
|
# gems and specifications defined in the instance.
|
@@ -346,7 +342,6 @@ class Gem::TestCase::SpecFetcherSetup
|
|
346
342
|
io.write spec.to_ruby_for_cache
|
347
343
|
end
|
348
344
|
end
|
349
|
-
|
350
345
|
end
|
351
346
|
|
352
347
|
##
|
@@ -358,7 +353,6 @@ end
|
|
358
353
|
# This class was added to flush out problems in Rubinius' IO implementation.
|
359
354
|
|
360
355
|
class TempIO < Tempfile
|
361
|
-
|
362
356
|
##
|
363
357
|
# Creates a new TempIO that will be initialized to contain +string+.
|
364
358
|
|
@@ -376,5 +370,4 @@ class TempIO < Tempfile
|
|
376
370
|
flush
|
377
371
|
Gem.read_binary path
|
378
372
|
end
|
379
|
-
|
380
373
|
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
|
|