rubygems-update 3.3.18 → 3.4.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1429 -1064
- data/CONTRIBUTING.md +31 -8
- data/Manifest.txt +61 -36
- data/POLICIES.md +55 -20
- data/README.md +19 -6
- data/bundler/CHANGELOG.md +457 -1
- data/bundler/README.md +3 -6
- data/bundler/UPGRADING.md +11 -4
- data/bundler/bundler.gemspec +8 -10
- data/bundler/exe/bundle +5 -16
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +2 -0
- data/bundler/lib/bundler/cli/console.rb +2 -2
- data/bundler/lib/bundler/cli/doctor.rb +4 -6
- data/bundler/lib/bundler/cli/gem.rb +62 -40
- data/bundler/lib/bundler/cli/info.rb +1 -1
- data/bundler/lib/bundler/cli/init.rb +6 -2
- data/bundler/lib/bundler/cli/install.rb +8 -6
- data/bundler/lib/bundler/cli/lock.rb +8 -5
- data/bundler/lib/bundler/cli/open.rb +6 -4
- data/bundler/lib/bundler/cli/outdated.rb +14 -7
- data/bundler/lib/bundler/cli/platform.rb +7 -5
- data/bundler/lib/bundler/cli/viz.rb +1 -1
- data/bundler/lib/bundler/cli.rb +53 -7
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +16 -5
- data/bundler/lib/bundler/definition.rb +262 -133
- data/bundler/lib/bundler/dependency.rb +20 -86
- data/bundler/lib/bundler/digest.rb +1 -1
- data/bundler/lib/bundler/dsl.rb +6 -7
- data/bundler/lib/bundler/endpoint_specification.rb +2 -13
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/environment_preserver.rb +3 -2
- data/bundler/lib/bundler/errors.rb +1 -11
- data/bundler/lib/bundler/feature_flag.rb +0 -2
- data/bundler/lib/bundler/fetcher/compact_index.rb +11 -13
- data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
- data/bundler/lib/bundler/fetcher/downloader.rb +4 -5
- data/bundler/lib/bundler/fetcher/index.rb +1 -2
- data/bundler/lib/bundler/fetcher.rb +21 -15
- data/bundler/lib/bundler/force_platform.rb +18 -0
- data/bundler/lib/bundler/friendly_errors.rb +1 -4
- data/bundler/lib/bundler/gem_helper.rb +3 -4
- data/bundler/lib/bundler/gem_helpers.rb +7 -2
- data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
- data/bundler/lib/bundler/graph.rb +3 -3
- data/bundler/lib/bundler/index.rb +13 -47
- data/bundler/lib/bundler/injector.rb +5 -4
- data/bundler/lib/bundler/inline.rb +9 -11
- data/bundler/lib/bundler/installer/parallel_installer.rb +4 -34
- data/bundler/lib/bundler/installer/standalone.rb +13 -9
- data/bundler/lib/bundler/installer.rb +17 -29
- data/bundler/lib/bundler/lazy_specification.rb +54 -53
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +17 -16
- data/bundler/lib/bundler/man/bundle-add.1 +6 -2
- data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +9 -3
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +9 -2
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
- data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +26 -10
- data/bundler/lib/bundler/man/bundle-config.1.ronn +17 -10
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
- data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +3 -3
- data/bundler/lib/bundler/man/bundle-info.1.ronn +3 -3
- data/bundler/lib/bundler/man/bundle-init.1 +5 -1
- data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
- data/bundler/lib/bundler/man/bundle-install.1 +5 -30
- data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -29
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
- data/bundler/lib/bundler/man/bundle-open.1 +22 -2
- data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +13 -9
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +12 -9
- data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +1 -1
- data/bundler/lib/bundler/man/bundle-update.1 +1 -1
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle.1 +15 -10
- data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
- data/bundler/lib/bundler/man/gemfile.5 +55 -55
- data/bundler/lib/bundler/man/gemfile.5.ronn +57 -53
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +5 -7
- data/bundler/lib/bundler/plugin/index.rb +5 -5
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
- data/bundler/lib/bundler/plugin/installer.rb +5 -2
- data/bundler/lib/bundler/plugin.rb +3 -1
- data/bundler/lib/bundler/remote_specification.rb +7 -12
- data/bundler/lib/bundler/resolver/base.rb +107 -0
- data/bundler/lib/bundler/resolver/candidate.rb +94 -0
- data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
- data/bundler/lib/bundler/resolver/package.rb +72 -0
- data/bundler/lib/bundler/resolver/root.rb +25 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +42 -71
- data/bundler/lib/bundler/resolver.rb +335 -328
- data/bundler/lib/bundler/ruby_dsl.rb +7 -1
- data/bundler/lib/bundler/ruby_version.rb +8 -8
- data/bundler/lib/bundler/rubygems_ext.rb +100 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +23 -14
- data/bundler/lib/bundler/rubygems_integration.rb +11 -15
- data/bundler/lib/bundler/runtime.rb +2 -6
- data/bundler/lib/bundler/safe_marshal.rb +31 -0
- data/bundler/lib/bundler/settings.rb +5 -11
- data/bundler/lib/bundler/setup.rb +4 -1
- data/bundler/lib/bundler/shared_helpers.rb +3 -3
- data/bundler/lib/bundler/source/git/git_proxy.rb +237 -74
- data/bundler/lib/bundler/source/git.rb +55 -30
- data/bundler/lib/bundler/source/metadata.rb +1 -2
- data/bundler/lib/bundler/source/path/installer.rb +1 -22
- data/bundler/lib/bundler/source/path.rb +6 -6
- data/bundler/lib/bundler/source/rubygems.rb +26 -81
- data/bundler/lib/bundler/source.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +8 -2
- data/bundler/lib/bundler/spec_set.rb +60 -37
- data/bundler/lib/bundler/templates/Executable +1 -1
- data/bundler/lib/bundler/templates/Executable.bundler +5 -10
- data/bundler/lib/bundler/templates/Executable.standalone +2 -0
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -1
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +0 -4
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +9 -2
- data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
- data/bundler/lib/bundler/ui/shell.rb +35 -12
- data/bundler/lib/bundler/ui/silent.rb +21 -5
- data/bundler/lib/bundler/uri_normalizer.rb +23 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1351 -409
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
- data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +15 -9
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -6
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
- data/bundler/lib/bundler/vendored_persistent.rb +1 -33
- data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
- data/bundler/lib/bundler/version.rb +5 -1
- data/bundler/lib/bundler/worker.rb +5 -7
- data/bundler/lib/bundler.rb +25 -77
- data/{bin → exe}/gem +4 -5
- data/{bin → exe}/update_rubygems +12 -10
- data/lib/rubygems/available_set.rb +4 -3
- data/lib/rubygems/basic_specification.rb +5 -4
- data/lib/rubygems/bundler_version_finder.rb +2 -2
- data/lib/rubygems/command.rb +41 -32
- data/lib/rubygems/command_manager.rb +30 -15
- data/lib/rubygems/commands/build_command.rb +12 -8
- data/lib/rubygems/commands/cert_command.rb +34 -33
- data/lib/rubygems/commands/check_command.rb +21 -20
- data/lib/rubygems/commands/cleanup_command.rb +18 -17
- data/lib/rubygems/commands/contents_command.rb +14 -13
- data/lib/rubygems/commands/dependency_command.rb +17 -16
- data/lib/rubygems/commands/environment_command.rb +6 -5
- data/lib/rubygems/commands/exec_command.rb +249 -0
- data/lib/rubygems/commands/fetch_command.rb +10 -9
- data/lib/rubygems/commands/generate_index_command.rb +18 -17
- data/lib/rubygems/commands/help_command.rb +7 -6
- data/lib/rubygems/commands/info_command.rb +3 -3
- data/lib/rubygems/commands/install_command.rb +28 -23
- data/lib/rubygems/commands/list_command.rb +4 -3
- data/lib/rubygems/commands/lock_command.rb +5 -4
- data/lib/rubygems/commands/mirror_command.rb +4 -3
- data/lib/rubygems/commands/open_command.rb +10 -9
- data/lib/rubygems/commands/outdated_command.rb +6 -5
- data/lib/rubygems/commands/owner_command.rb +17 -14
- data/lib/rubygems/commands/pristine_command.rb +46 -36
- data/lib/rubygems/commands/push_command.rb +9 -8
- data/lib/rubygems/commands/query_command.rb +9 -8
- data/lib/rubygems/commands/rdoc_command.rb +21 -19
- data/lib/rubygems/commands/search_command.rb +4 -3
- data/lib/rubygems/commands/server_command.rb +4 -3
- data/lib/rubygems/commands/setup_command.rb +97 -106
- data/lib/rubygems/commands/signin_command.rb +10 -9
- data/lib/rubygems/commands/signout_command.rb +8 -7
- data/lib/rubygems/commands/sources_command.rb +22 -21
- data/lib/rubygems/commands/specification_command.rb +14 -13
- data/lib/rubygems/commands/stale_command.rb +3 -2
- data/lib/rubygems/commands/uninstall_command.rb +44 -40
- data/lib/rubygems/commands/unpack_command.rb +14 -13
- data/lib/rubygems/commands/update_command.rb +42 -63
- data/lib/rubygems/commands/which_command.rb +8 -7
- data/lib/rubygems/commands/yank_command.rb +12 -11
- data/lib/rubygems/config_file.rb +55 -21
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
- data/lib/rubygems/core_ext/kernel_require.rb +109 -115
- data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
- data/lib/rubygems/core_ext/tcpsocket_init.rb +3 -1
- data/lib/rubygems/defaults.rb +33 -18
- data/lib/rubygems/dependency.rb +15 -11
- data/lib/rubygems/dependency_installer.rb +38 -37
- data/lib/rubygems/dependency_list.rb +7 -6
- data/lib/rubygems/deprecate.rb +3 -2
- data/lib/rubygems/doctor.rb +19 -18
- data/lib/rubygems/errors.rb +3 -2
- data/lib/rubygems/exceptions.rb +16 -8
- data/lib/rubygems/ext/build_error.rb +2 -1
- data/lib/rubygems/ext/builder.rb +37 -21
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
- data/lib/rubygems/ext/cargo_builder.rb +150 -111
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +2 -1
- data/lib/rubygems/ext/ext_conf_builder.rb +11 -9
- data/lib/rubygems/ext/rake_builder.rb +7 -5
- data/lib/rubygems/ext.rb +8 -7
- data/lib/rubygems/gem_runner.rb +6 -5
- data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
- data/lib/rubygems/gemcutter_utilities.rb +90 -34
- data/lib/rubygems/indexer.rb +29 -28
- data/lib/rubygems/install_default_message.rb +3 -2
- data/lib/rubygems/install_message.rb +3 -2
- data/lib/rubygems/install_update_options.rb +56 -55
- data/lib/rubygems/installer.rb +54 -46
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
- data/lib/rubygems/local_remote_options.rb +19 -20
- data/lib/rubygems/mock_gem_ui.rb +3 -2
- data/lib/rubygems/name_tuple.rb +5 -4
- data/lib/rubygems/optparse/lib/optparse.rb +20 -15
- data/lib/rubygems/optparse.rb +1 -1
- data/lib/rubygems/package/digest_io.rb +1 -0
- data/lib/rubygems/package/file_source.rb +3 -2
- data/lib/rubygems/package/io_source.rb +1 -0
- data/lib/rubygems/package/old.rb +9 -8
- data/lib/rubygems/package/source.rb +1 -0
- data/lib/rubygems/package/tar_header.rb +63 -62
- data/lib/rubygems/package/tar_reader/entry.rb +91 -9
- data/lib/rubygems/package/tar_reader.rb +2 -29
- data/lib/rubygems/package/tar_writer.rb +8 -7
- data/lib/rubygems/package.rb +64 -48
- data/lib/rubygems/package_task.rb +5 -4
- data/lib/rubygems/path_support.rb +1 -0
- data/lib/rubygems/platform.rb +79 -53
- data/lib/rubygems/psych_tree.rb +2 -1
- data/lib/rubygems/query_utils.rb +35 -35
- data/lib/rubygems/rdoc.rb +3 -2
- data/lib/rubygems/remote_fetcher.rb +23 -22
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +2 -1
- data/lib/rubygems/request/https_pool.rb +1 -0
- data/lib/rubygems/request.rb +23 -22
- data/lib/rubygems/request_set/gem_dependency_api.rb +123 -123
- data/lib/rubygems/request_set/lockfile/parser.rb +28 -27
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -3
- data/lib/rubygems/request_set/lockfile.rb +6 -5
- data/lib/rubygems/request_set.rb +20 -19
- data/lib/rubygems/requirement.rb +15 -14
- data/lib/rubygems/resolver/activation_request.rb +4 -3
- data/lib/rubygems/resolver/api_set.rb +5 -4
- data/lib/rubygems/resolver/api_specification.rb +7 -6
- data/lib/rubygems/resolver/best_set.rb +6 -5
- data/lib/rubygems/resolver/composed_set.rb +1 -0
- data/lib/rubygems/resolver/conflict.rb +11 -10
- data/lib/rubygems/resolver/current_set.rb +1 -0
- data/lib/rubygems/resolver/dependency_request.rb +3 -2
- data/lib/rubygems/resolver/git_set.rb +3 -2
- data/lib/rubygems/resolver/git_specification.rb +7 -6
- data/lib/rubygems/resolver/index_set.rb +4 -3
- data/lib/rubygems/resolver/index_specification.rb +7 -5
- data/lib/rubygems/resolver/installed_specification.rb +5 -4
- data/lib/rubygems/resolver/installer_set.rb +15 -17
- data/lib/rubygems/resolver/local_specification.rb +3 -2
- data/lib/rubygems/resolver/lock_set.rb +5 -4
- data/lib/rubygems/resolver/lock_specification.rb +5 -4
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/lib/rubygems/resolver/molinillo.rb +2 -1
- data/lib/rubygems/resolver/requirement_list.rb +1 -0
- data/lib/rubygems/resolver/set.rb +1 -0
- data/lib/rubygems/resolver/source_set.rb +2 -0
- data/lib/rubygems/resolver/spec_specification.rb +1 -0
- data/lib/rubygems/resolver/specification.rb +2 -1
- data/lib/rubygems/resolver/stats.rb +2 -1
- data/lib/rubygems/resolver/vendor_set.rb +2 -1
- data/lib/rubygems/resolver/vendor_specification.rb +4 -3
- data/lib/rubygems/resolver.rb +41 -40
- data/lib/rubygems/s3_uri_signer.rb +10 -8
- data/lib/rubygems/safe_yaml.rb +4 -2
- data/lib/rubygems/security/policies.rb +48 -47
- data/lib/rubygems/security/policy.rb +19 -18
- data/lib/rubygems/security/signer.rb +6 -5
- data/lib/rubygems/security/trust_dir.rb +5 -4
- data/lib/rubygems/security.rb +30 -42
- data/lib/rubygems/security_option.rb +6 -5
- data/lib/rubygems/shellwords.rb +3 -0
- data/lib/rubygems/source/git.rb +22 -22
- data/lib/rubygems/source/installed.rb +2 -1
- data/lib/rubygems/source/local.rb +3 -2
- data/lib/rubygems/source/lock.rb +1 -0
- data/lib/rubygems/source/specific_file.rb +2 -1
- data/lib/rubygems/source/vendor.rb +1 -0
- data/lib/rubygems/source.rb +16 -16
- data/lib/rubygems/spec_fetcher.rb +10 -9
- data/lib/rubygems/specification.rb +121 -114
- data/lib/rubygems/specification_policy.rb +36 -15
- data/lib/rubygems/stub_specification.rb +11 -9
- data/lib/rubygems/text.rb +2 -2
- data/lib/rubygems/tsort/lib/tsort.rb +308 -310
- data/lib/rubygems/tsort.rb +1 -1
- data/lib/rubygems/uninstaller.rb +19 -18
- data/lib/rubygems/update_suggestion.rb +69 -0
- data/lib/rubygems/uri.rb +4 -4
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +37 -21
- data/lib/rubygems/util/licenses.rb +4 -3
- data/lib/rubygems/util/list.rb +1 -0
- data/lib/rubygems/util.rb +12 -15
- data/lib/rubygems/validator.rb +7 -6
- data/lib/rubygems/version.rb +17 -11
- data/lib/rubygems/version_option.rb +4 -3
- data/lib/rubygems.rb +89 -68
- data/rubygems-update.gemspec +10 -8
- data/setup.rb +10 -9
- data/test/rubygems/alternate_cert.pem +14 -14
- data/test/rubygems/alternate_cert_32.pem +15 -15
- data/test/rubygems/alternate_key.pem +25 -25
- data/test/rubygems/bad_rake.rb +1 -0
- data/test/rubygems/bundler_test_gem.rb +421 -0
- data/test/rubygems/child_cert.pem +15 -16
- data/test/rubygems/child_cert_32.pem +15 -16
- data/test/rubygems/child_key.pem +25 -25
- data/test/rubygems/encrypted_private_key.pem +26 -26
- data/test/rubygems/expired_cert.pem +15 -15
- data/test/rubygems/fake_certlib/openssl.rb +1 -0
- data/test/rubygems/future_cert.pem +15 -15
- data/test/rubygems/future_cert_32.pem +15 -15
- data/test/rubygems/good_rake.rb +1 -0
- data/test/rubygems/grandchild_cert.pem +15 -16
- data/test/rubygems/grandchild_cert_32.pem +15 -16
- data/test/rubygems/grandchild_key.pem +25 -25
- data/test/rubygems/helper.rb +172 -151
- data/test/rubygems/installer_test_case.rb +14 -13
- data/test/rubygems/invalid_issuer_cert.pem +16 -16
- data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
- data/test/rubygems/invalid_key.pem +25 -25
- data/test/rubygems/invalid_signer_cert.pem +15 -15
- data/test/rubygems/invalid_signer_cert_32.pem +15 -15
- data/test/rubygems/invalidchild_cert.pem +15 -16
- data/test/rubygems/invalidchild_cert_32.pem +15 -16
- data/test/rubygems/invalidchild_key.pem +25 -25
- data/test/rubygems/multifactor_auth_utilities.rb +111 -0
- data/test/rubygems/package/tar_test_case.rb +53 -17
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +2 -1
- data/test/rubygems/plugin/load/rubygems_plugin.rb +1 -0
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +2 -1
- data/test/rubygems/private_key.pem +25 -25
- data/test/rubygems/public_cert.pem +16 -16
- data/test/rubygems/public_cert_32.pem +15 -15
- data/test/rubygems/public_key.pem +7 -7
- data/test/rubygems/rubygems/commands/crash_command.rb +1 -0
- data/test/rubygems/rubygems_plugin.rb +3 -2
- data/test/rubygems/simple_gem.rb +2 -1
- data/test/rubygems/specifications/bar-0.0.2.gemspec +2 -0
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +6 -4
- data/test/rubygems/test_bundled_ca.rb +13 -12
- data/test/rubygems/test_config.rb +5 -4
- data/test/rubygems/test_deprecate.rb +5 -4
- data/test/rubygems/test_exit.rb +9 -3
- data/test/rubygems/test_gem.rb +339 -677
- data/test/rubygems/test_gem_available_set.rb +22 -21
- data/test/rubygems/test_gem_bundler_version_finder.rb +6 -4
- data/test/rubygems/test_gem_command.rb +45 -44
- data/test/rubygems/test_gem_command_manager.rb +96 -30
- data/test/rubygems/test_gem_commands_build_command.rb +74 -63
- data/test/rubygems/test_gem_commands_cert_command.rb +98 -99
- data/test/rubygems/test_gem_commands_check_command.rb +5 -4
- data/test/rubygems/test_gem_commands_cleanup_command.rb +41 -40
- data/test/rubygems/test_gem_commands_contents_command.rb +28 -27
- data/test/rubygems/test_gem_commands_dependency_command.rb +37 -36
- data/test/rubygems/test_gem_commands_environment_command.rb +17 -16
- data/test/rubygems/test_gem_commands_exec_command.rb +853 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +38 -37
- data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -7
- data/test/rubygems/test_gem_commands_help_command.rb +14 -13
- data/test/rubygems/test_gem_commands_info_command.rb +29 -2
- data/test/rubygems/test_gem_commands_install_command.rb +152 -132
- data/test/rubygems/test_gem_commands_list_command.rb +5 -4
- data/test/rubygems/test_gem_commands_lock_command.rb +11 -10
- data/test/rubygems/test_gem_commands_mirror.rb +3 -2
- data/test/rubygems/test_gem_commands_open_command.rb +5 -4
- data/test/rubygems/test_gem_commands_outdated_command.rb +10 -9
- data/test/rubygems/test_gem_commands_owner_command.rb +227 -50
- data/test/rubygems/test_gem_commands_pristine_command.rb +142 -93
- data/test/rubygems/test_gem_commands_push_command.rb +189 -64
- data/test/rubygems/test_gem_commands_query_command.rb +74 -73
- data/test/rubygems/test_gem_commands_search_command.rb +3 -2
- data/test/rubygems/test_gem_commands_server_command.rb +3 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +123 -96
- data/test/rubygems/test_gem_commands_signin_command.rb +71 -31
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +29 -29
- data/test/rubygems/test_gem_commands_specification_command.rb +33 -32
- data/test/rubygems/test_gem_commands_stale_command.rb +5 -4
- data/test/rubygems/test_gem_commands_uninstall_command.rb +99 -81
- data/test/rubygems/test_gem_commands_unpack_command.rb +32 -31
- data/test/rubygems/test_gem_commands_update_command.rb +96 -95
- data/test/rubygems/test_gem_commands_which_command.rb +7 -6
- data/test/rubygems/test_gem_commands_yank_command.rb +162 -43
- data/test/rubygems/test_gem_config_file.rb +94 -81
- data/test/rubygems/test_gem_dependency.rb +76 -73
- data/test/rubygems/test_gem_dependency_installer.rb +200 -165
- data/test/rubygems/test_gem_dependency_list.rb +48 -47
- data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -4
- data/test/rubygems/test_gem_doctor.rb +27 -26
- data/test/rubygems/test_gem_ext_builder.rb +60 -61
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +4 -4
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.lock → ext/custom_name_lib/Cargo.lock} +23 -33
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.toml → ext/custom_name_lib/Cargo.toml} +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{src → ext/custom_name_lib/src}/lib.rs +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +3 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +37 -33
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +2 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +48 -59
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +20 -19
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +21 -36
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -15
- data/test/rubygems/test_gem_ext_configure_builder.rb +14 -13
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
- data/test/rubygems/test_gem_ext_rake_builder.rb +16 -15
- data/test/rubygems/test_gem_gem_runner.rb +15 -9
- data/test/rubygems/test_gem_gemcutter_utilities.rb +170 -84
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +5 -4
- data/test/rubygems/test_gem_indexer.rb +87 -67
- data/test/rubygems/test_gem_install_update_options.rb +17 -16
- data/test/rubygems/test_gem_installer.rb +422 -304
- data/test/rubygems/test_gem_local_remote_options.rb +11 -10
- data/test/rubygems/test_gem_name_tuple.rb +5 -4
- data/test/rubygems/test_gem_package.rb +243 -231
- data/test/rubygems/test_gem_package_old.rb +14 -13
- data/test/rubygems/test_gem_package_tar_header.rb +48 -47
- data/test/rubygems/test_gem_package_tar_reader.rb +56 -8
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +162 -16
- data/test/rubygems/test_gem_package_tar_writer.rb +77 -76
- data/test/rubygems/test_gem_package_task.rb +19 -18
- data/test/rubygems/test_gem_path_support.rb +15 -14
- data/test/rubygems/test_gem_platform.rb +333 -227
- data/test/rubygems/test_gem_rdoc.rb +15 -14
- data/test/rubygems/test_gem_remote_fetcher.rb +155 -154
- data/test/rubygems/test_gem_request.rb +64 -58
- data/test/rubygems/test_gem_request_connection_pools.rb +30 -29
- data/test/rubygems/test_gem_request_set.rb +101 -100
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +210 -211
- data/test/rubygems/test_gem_request_set_lockfile.rb +87 -86
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -57
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +63 -62
- data/test/rubygems/test_gem_requirement.rb +48 -41
- data/test/rubygems/test_gem_resolver.rb +167 -99
- data/test/rubygems/test_gem_resolver_activation_request.rb +7 -6
- data/test/rubygems/test_gem_resolver_api_set.rb +34 -33
- data/test/rubygems/test_gem_resolver_api_specification.rb +48 -47
- data/test/rubygems/test_gem_resolver_best_set.rb +23 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +2 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +13 -12
- data/test/rubygems/test_gem_resolver_dependency_request.rb +16 -15
- data/test/rubygems/test_gem_resolver_git_set.rb +22 -21
- data/test/rubygems/test_gem_resolver_git_specification.rb +22 -21
- data/test/rubygems/test_gem_resolver_index_set.rb +13 -12
- data/test/rubygems/test_gem_resolver_index_specification.rb +17 -16
- data/test/rubygems/test_gem_resolver_installed_specification.rb +6 -5
- data/test/rubygems/test_gem_resolver_installer_set.rb +79 -34
- data/test/rubygems/test_gem_resolver_local_specification.rb +8 -7
- data/test/rubygems/test_gem_resolver_lock_set.rb +13 -12
- data/test/rubygems/test_gem_resolver_lock_specification.rb +18 -17
- data/test/rubygems/test_gem_resolver_requirement_list.rb +2 -1
- data/test/rubygems/test_gem_resolver_specification.rb +9 -8
- data/test/rubygems/test_gem_resolver_vendor_set.rb +7 -6
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +11 -10
- data/test/rubygems/test_gem_security.rb +69 -68
- data/test/rubygems/test_gem_security_policy.rb +72 -72
- data/test/rubygems/test_gem_security_signer.rb +35 -34
- data/test/rubygems/test_gem_security_trust_dir.rb +7 -6
- data/test/rubygems/test_gem_silent_ui.rb +39 -32
- data/test/rubygems/test_gem_source.rb +45 -44
- data/test/rubygems/test_gem_source_fetch_problem.rb +10 -9
- data/test/rubygems/test_gem_source_git.rb +69 -62
- data/test/rubygems/test_gem_source_installed.rb +17 -16
- data/test/rubygems/test_gem_source_list.rb +6 -5
- data/test/rubygems/test_gem_source_local.rb +15 -14
- data/test/rubygems/test_gem_source_lock.rb +32 -31
- data/test/rubygems/test_gem_source_specific_file.rb +18 -17
- data/test/rubygems/test_gem_source_subpath_problem.rb +8 -7
- data/test/rubygems/test_gem_source_vendor.rb +14 -13
- data/test/rubygems/test_gem_spec_fetcher.rb +73 -72
- data/test/rubygems/test_gem_specification.rb +533 -469
- data/test/rubygems/test_gem_stream_ui.rb +53 -22
- data/test/rubygems/test_gem_stub_specification.rb +33 -32
- data/test/rubygems/test_gem_text.rb +2 -1
- data/test/rubygems/test_gem_uninstaller.rb +118 -117
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +4 -3
- data/test/rubygems/test_gem_update_suggestion.rb +209 -0
- data/test/rubygems/test_gem_uri.rb +6 -4
- data/test/rubygems/test_gem_uri_formatter.rb +15 -14
- data/test/rubygems/test_gem_util.rb +24 -23
- data/test/rubygems/test_gem_validator.rb +8 -8
- data/test/rubygems/test_gem_version.rb +24 -16
- data/test/rubygems/test_gem_version_option.rb +16 -15
- data/test/rubygems/test_kernel.rb +43 -48
- data/test/rubygems/test_project_sanity.rb +32 -3
- data/test/rubygems/test_remote_fetch_error.rb +8 -7
- data/test/rubygems/test_require.rb +118 -103
- data/test/rubygems/test_rubygems.rb +10 -8
- data/test/rubygems/test_webauthn_listener.rb +143 -0
- data/test/rubygems/test_webauthn_listener_response.rb +93 -0
- data/test/rubygems/test_webauthn_poller.rb +124 -0
- data/test/rubygems/utilities.rb +98 -34
- data/test/rubygems/wrong_key_cert.pem +15 -15
- data/test/rubygems/wrong_key_cert_32.pem +15 -15
- data/test/test_changelog_generator.rb +1 -1
- metadata +99 -46
- data/bundler/lib/bundler/dep_proxy.rb +0 -55
- data/bundler/lib/bundler/templates/gems.rb +0 -5
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
- data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
- data/bundler/lib/bundler/version_ranges.rb +0 -122
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
2
|
+
|
3
|
+
require_relative "../command"
|
3
4
|
|
4
5
|
##
|
5
6
|
# Installs RubyGems itself. This command is ordinarily only available from a
|
@@ -12,47 +13,47 @@ class Gem::Commands::SetupCommand < Gem::Command
|
|
12
13
|
ENV_PATHS = %w[/usr/bin/env /bin/env].freeze
|
13
14
|
|
14
15
|
def initialize
|
15
|
-
super
|
16
|
+
super "setup", "Install RubyGems",
|
16
17
|
:format_executable => false, :document => %w[ri],
|
17
18
|
:force => true,
|
18
|
-
:site_or_vendor =>
|
19
|
-
:destdir =>
|
19
|
+
:site_or_vendor => "sitelibdir",
|
20
|
+
:destdir => "", :prefix => "", :previous_version => "",
|
20
21
|
:regenerate_binstubs => true,
|
21
22
|
:regenerate_plugins => true
|
22
23
|
|
23
|
-
add_option
|
24
|
-
|
25
|
-
|
24
|
+
add_option "--previous-version=VERSION",
|
25
|
+
"Previous version of RubyGems",
|
26
|
+
"Used for changelog processing" do |version, options|
|
26
27
|
options[:previous_version] = version
|
27
28
|
end
|
28
29
|
|
29
|
-
add_option
|
30
|
-
|
31
|
-
|
30
|
+
add_option "--prefix=PREFIX",
|
31
|
+
"Prefix path for installing RubyGems",
|
32
|
+
"Will not affect gem repository location" do |prefix, options|
|
32
33
|
options[:prefix] = File.expand_path prefix
|
33
34
|
end
|
34
35
|
|
35
|
-
add_option
|
36
|
-
|
37
|
-
|
36
|
+
add_option "--destdir=DESTDIR",
|
37
|
+
"Root directory to install RubyGems into",
|
38
|
+
"Mainly used for packaging RubyGems" do |destdir, options|
|
38
39
|
options[:destdir] = File.expand_path destdir
|
39
40
|
end
|
40
41
|
|
41
|
-
add_option
|
42
|
-
|
43
|
-
options[:site_or_vendor] = vendor ?
|
42
|
+
add_option "--[no-]vendor",
|
43
|
+
"Install into vendorlibdir not sitelibdir" do |vendor, options|
|
44
|
+
options[:site_or_vendor] = vendor ? "vendorlibdir" : "sitelibdir"
|
44
45
|
end
|
45
46
|
|
46
|
-
add_option
|
47
|
-
|
48
|
-
|
47
|
+
add_option "--[no-]format-executable",
|
48
|
+
"Makes `gem` match ruby",
|
49
|
+
"If Ruby is ruby18, gem will be gem18" do |value, options|
|
49
50
|
options[:format_executable] = value
|
50
51
|
end
|
51
52
|
|
52
|
-
add_option
|
53
|
-
|
54
|
-
|
55
|
-
|
53
|
+
add_option "--[no-]document [TYPES]", Array,
|
54
|
+
"Generate documentation for RubyGems",
|
55
|
+
"List the documentation types you wish to",
|
56
|
+
"generate. For example: rdoc,ri" do |value, options|
|
56
57
|
options[:document] = case value
|
57
58
|
when nil then %w[rdoc ri]
|
58
59
|
when false then []
|
@@ -60,46 +61,46 @@ class Gem::Commands::SetupCommand < Gem::Command
|
|
60
61
|
end
|
61
62
|
end
|
62
63
|
|
63
|
-
add_option
|
64
|
-
|
64
|
+
add_option "--[no-]rdoc",
|
65
|
+
"Generate RDoc documentation for RubyGems" do |value, options|
|
65
66
|
if value
|
66
|
-
options[:document] <<
|
67
|
+
options[:document] << "rdoc"
|
67
68
|
else
|
68
|
-
options[:document].delete
|
69
|
+
options[:document].delete "rdoc"
|
69
70
|
end
|
70
71
|
|
71
72
|
options[:document].uniq!
|
72
73
|
end
|
73
74
|
|
74
|
-
add_option
|
75
|
-
|
75
|
+
add_option "--[no-]ri",
|
76
|
+
"Generate RI documentation for RubyGems" do |value, options|
|
76
77
|
if value
|
77
|
-
options[:document] <<
|
78
|
+
options[:document] << "ri"
|
78
79
|
else
|
79
|
-
options[:document].delete
|
80
|
+
options[:document].delete "ri"
|
80
81
|
end
|
81
82
|
|
82
83
|
options[:document].uniq!
|
83
84
|
end
|
84
85
|
|
85
|
-
add_option
|
86
|
-
|
86
|
+
add_option "--[no-]regenerate-binstubs",
|
87
|
+
"Regenerate gem binstubs" do |value, options|
|
87
88
|
options[:regenerate_binstubs] = value
|
88
89
|
end
|
89
90
|
|
90
|
-
add_option
|
91
|
-
|
91
|
+
add_option "--[no-]regenerate-plugins",
|
92
|
+
"Regenerate gem plugins" do |value, options|
|
92
93
|
options[:regenerate_plugins] = value
|
93
94
|
end
|
94
95
|
|
95
|
-
add_option
|
96
|
-
|
96
|
+
add_option "-f", "--[no-]force",
|
97
|
+
"Forcefully overwrite binstubs" do |value, options|
|
97
98
|
options[:force] = value
|
98
99
|
end
|
99
100
|
|
100
|
-
add_option(
|
101
|
-
|
102
|
-
|
101
|
+
add_option("-E", "--[no-]env-shebang",
|
102
|
+
"Rewrite executables with a shebang",
|
103
|
+
"of /usr/bin/env") do |value, options|
|
103
104
|
options[:env_shebang] = value
|
104
105
|
end
|
105
106
|
|
@@ -107,7 +108,7 @@ class Gem::Commands::SetupCommand < Gem::Command
|
|
107
108
|
end
|
108
109
|
|
109
110
|
def check_ruby_version
|
110
|
-
required_version = Gem::Requirement.new
|
111
|
+
required_version = Gem::Requirement.new ">= 2.6.0"
|
111
112
|
|
112
113
|
unless required_version.satisfied_by? Gem.ruby_version
|
113
114
|
alert_error "Expected Ruby version #{required_version}, is #{Gem.ruby_version}"
|
@@ -149,7 +150,7 @@ By default, this RubyGems will install gem as:
|
|
149
150
|
|
150
151
|
check_ruby_version
|
151
152
|
|
152
|
-
require
|
153
|
+
require "fileutils"
|
153
154
|
if Gem.configuration.really_verbose
|
154
155
|
extend FileUtils::Verbose
|
155
156
|
else
|
@@ -194,7 +195,7 @@ By default, this RubyGems will install gem as:
|
|
194
195
|
end
|
195
196
|
|
196
197
|
if options[:previous_version].empty?
|
197
|
-
options[:previous_version] = Gem::VERSION.sub(/[0-9]+$/,
|
198
|
+
options[:previous_version] = Gem::VERSION.sub(/[0-9]+$/, "0")
|
198
199
|
end
|
199
200
|
|
200
201
|
options[:previous_version] = Gem::Version.new(options[:previous_version])
|
@@ -216,7 +217,7 @@ By default, this RubyGems will install gem as:
|
|
216
217
|
end
|
217
218
|
|
218
219
|
if documentation_success
|
219
|
-
if options[:document].include?
|
220
|
+
if options[:document].include? "rdoc"
|
220
221
|
say "Rdoc documentation was installed. You may now invoke:"
|
221
222
|
say " gem server"
|
222
223
|
say "and then peruse beautifully formatted documentation for your gems"
|
@@ -227,7 +228,7 @@ By default, this RubyGems will install gem as:
|
|
227
228
|
say
|
228
229
|
end
|
229
230
|
|
230
|
-
if options[:document].include?
|
231
|
+
if options[:document].include? "ri"
|
231
232
|
say "Ruby Interactive (ri) documentation was installed. ri is kind of like man "
|
232
233
|
say "pages for Ruby libraries. You may access it like this:"
|
233
234
|
say " ri Classname"
|
@@ -244,14 +245,14 @@ By default, this RubyGems will install gem as:
|
|
244
245
|
def install_executables(bin_dir)
|
245
246
|
prog_mode = options[:prog_mode] || 0755
|
246
247
|
|
247
|
-
executables = {
|
248
|
+
executables = { "gem" => "exe" }
|
248
249
|
executables.each do |tool, path|
|
249
250
|
say "Installing #{tool} executable" if @verbose
|
250
251
|
|
251
252
|
Dir.chdir path do
|
252
253
|
bin_file = "gem"
|
253
254
|
|
254
|
-
require
|
255
|
+
require "tmpdir"
|
255
256
|
|
256
257
|
dest_file = target_bin_path(bin_dir, bin_file)
|
257
258
|
bin_tmp_file = File.join Dir.tmpdir, "#{bin_file}.#{$$}"
|
@@ -260,7 +261,7 @@ By default, this RubyGems will install gem as:
|
|
260
261
|
bin = File.readlines bin_file
|
261
262
|
bin[0] = shebang
|
262
263
|
|
263
|
-
File.open bin_tmp_file,
|
264
|
+
File.open bin_tmp_file, "w" do |fp|
|
264
265
|
fp.puts bin.join
|
265
266
|
end
|
266
267
|
|
@@ -275,7 +276,7 @@ By default, this RubyGems will install gem as:
|
|
275
276
|
begin
|
276
277
|
bin_cmd_file = File.join Dir.tmpdir, "#{bin_file}.bat"
|
277
278
|
|
278
|
-
File.open bin_cmd_file,
|
279
|
+
File.open bin_cmd_file, "w" do |file|
|
279
280
|
file.puts <<-TEXT
|
280
281
|
@ECHO OFF
|
281
282
|
IF NOT "%~f0" == "~f0" GOTO :WinNT
|
@@ -296,7 +297,7 @@ By default, this RubyGems will install gem as:
|
|
296
297
|
|
297
298
|
def shebang
|
298
299
|
if options[:env_shebang]
|
299
|
-
ruby_name = RbConfig::CONFIG[
|
300
|
+
ruby_name = RbConfig::CONFIG["ruby_install_name"]
|
300
301
|
@env_path ||= ENV_PATHS.find {|env_path| File.executable? env_path }
|
301
302
|
"#!#{@env_path} #{ruby_name}\n"
|
302
303
|
else
|
@@ -305,8 +306,8 @@ By default, this RubyGems will install gem as:
|
|
305
306
|
end
|
306
307
|
|
307
308
|
def install_lib(lib_dir)
|
308
|
-
libs = {
|
309
|
-
libs[
|
309
|
+
libs = { "RubyGems" => "lib" }
|
310
|
+
libs["Bundler"] = "bundler/lib"
|
310
311
|
libs.each do |tool, path|
|
311
312
|
say "Installing #{tool}" if @verbose
|
312
313
|
|
@@ -319,7 +320,7 @@ By default, this RubyGems will install gem as:
|
|
319
320
|
end
|
320
321
|
|
321
322
|
def install_rdoc
|
322
|
-
gem_doc_dir = File.join Gem.dir,
|
323
|
+
gem_doc_dir = File.join Gem.dir, "doc"
|
323
324
|
rubygems_name = "rubygems-#{Gem::VERSION}"
|
324
325
|
rubygems_doc_dir = File.join gem_doc_dir, rubygems_name
|
325
326
|
|
@@ -329,23 +330,23 @@ By default, this RubyGems will install gem as:
|
|
329
330
|
# ignore
|
330
331
|
end
|
331
332
|
|
332
|
-
if File.writable?
|
333
|
-
(
|
334
|
-
File.writable?
|
333
|
+
if File.writable?(gem_doc_dir) &&
|
334
|
+
(!File.exist?(rubygems_doc_dir) ||
|
335
|
+
File.writable?(rubygems_doc_dir))
|
335
336
|
say "Removing old RubyGems RDoc and ri" if @verbose
|
336
|
-
Dir[File.join(Gem.dir,
|
337
|
+
Dir[File.join(Gem.dir, "doc", "rubygems-[0-9]*")].each do |dir|
|
337
338
|
rm_rf dir
|
338
339
|
end
|
339
340
|
|
340
|
-
require_relative
|
341
|
+
require_relative "../rdoc"
|
341
342
|
|
342
|
-
fake_spec = Gem::Specification.new
|
343
|
+
fake_spec = Gem::Specification.new "rubygems", Gem::VERSION
|
343
344
|
def fake_spec.full_gem_path
|
344
|
-
File.expand_path
|
345
|
+
File.expand_path "../../..", __dir__
|
345
346
|
end
|
346
347
|
|
347
|
-
generate_ri = options[:document].include?
|
348
|
-
generate_rdoc = options[:document].include?
|
348
|
+
generate_ri = options[:document].include? "ri"
|
349
|
+
generate_rdoc = options[:document].include? "rdoc"
|
349
350
|
|
350
351
|
rdoc = Gem::RDoc.new fake_spec, generate_rdoc, generate_ri
|
351
352
|
rdoc.generate
|
@@ -360,34 +361,24 @@ By default, this RubyGems will install gem as:
|
|
360
361
|
end
|
361
362
|
|
362
363
|
def install_default_bundler_gem(bin_dir)
|
363
|
-
specs_dir = File.join(default_dir, "specifications", "default")
|
364
|
-
mkdir_p specs_dir, :mode => 0755
|
365
|
-
|
366
|
-
bundler_spec = Dir.chdir("bundler") { Gem::Specification.load("bundler.gemspec") }
|
367
|
-
|
368
364
|
current_default_spec = Gem::Specification.default_stubs.find {|s| s.name == "bundler" }
|
369
|
-
if current_default_spec
|
370
|
-
File.delete(current_default_spec.loaded_from)
|
365
|
+
specs_dir = if current_default_spec && default_dir == Gem.default_dir
|
371
366
|
Gem::Specification.remove_spec current_default_spec
|
367
|
+
loaded_from = current_default_spec.loaded_from
|
368
|
+
File.delete(loaded_from)
|
369
|
+
File.dirname(loaded_from)
|
370
|
+
else
|
371
|
+
target_specs_dir = File.join(default_dir, "specifications", "default")
|
372
|
+
mkdir_p target_specs_dir, :mode => 0755
|
373
|
+
target_specs_dir
|
372
374
|
end
|
373
375
|
|
376
|
+
bundler_spec = Dir.chdir("bundler") { Gem::Specification.load("bundler.gemspec") }
|
374
377
|
default_spec_path = File.join(specs_dir, "#{bundler_spec.full_name}.gemspec")
|
375
378
|
Gem.write_binary(default_spec_path, bundler_spec.to_ruby)
|
376
379
|
|
377
380
|
bundler_spec = Gem::Specification.load(default_spec_path)
|
378
381
|
|
379
|
-
# The base_dir value for a specification is inferred by walking up from the
|
380
|
-
# folder where the spec was `loaded_from`. In the case of default gems, we
|
381
|
-
# walk up two levels, because they live at `specifications/default/`, whereas
|
382
|
-
# in the case of regular gems we walk up just one level because they live at
|
383
|
-
# `specifications/`. However, in this case, the gem we are installing is
|
384
|
-
# misdetected as a regular gem, when it's a default gem in reality. This is
|
385
|
-
# because when there's a `:destdir`, the `loaded_from` path has changed and
|
386
|
-
# doesn't match `Gem.default_specifications_dir` which is the criteria to
|
387
|
-
# tag a gem as a default gem. So, in that case, write the correct
|
388
|
-
# `@base_dir` directly.
|
389
|
-
bundler_spec.instance_variable_set(:@base_dir, File.dirname(File.dirname(specs_dir)))
|
390
|
-
|
391
382
|
# Remove gemspec that was same version of vendored bundler.
|
392
383
|
normal_gemspec = File.join(default_dir, "specifications", "bundler-#{bundler_spec.version}.gemspec")
|
393
384
|
if File.file? normal_gemspec
|
@@ -407,7 +398,7 @@ By default, this RubyGems will install gem as:
|
|
407
398
|
cp File.join("bundler", bundler_spec.bindir, e), File.join(bundler_bin_dir, e)
|
408
399
|
end
|
409
400
|
|
410
|
-
require_relative
|
401
|
+
require_relative "../installer"
|
411
402
|
|
412
403
|
Dir.chdir("bundler") do
|
413
404
|
built_gem = Gem::Package.build(bundler_spec)
|
@@ -449,10 +440,10 @@ By default, this RubyGems will install gem as:
|
|
449
440
|
prefix = options[:prefix]
|
450
441
|
|
451
442
|
if prefix.empty?
|
452
|
-
man_dir = RbConfig::CONFIG[
|
443
|
+
man_dir = RbConfig::CONFIG["mandir"]
|
453
444
|
return unless man_dir
|
454
445
|
else
|
455
|
-
man_dir = File.join prefix,
|
446
|
+
man_dir = File.join prefix, "man"
|
456
447
|
end
|
457
448
|
|
458
449
|
prepend_destdir_if_present(man_dir)
|
@@ -464,10 +455,10 @@ By default, this RubyGems will install gem as:
|
|
464
455
|
|
465
456
|
if prefix.empty?
|
466
457
|
lib_dir = RbConfig::CONFIG[site_or_vendor]
|
467
|
-
bin_dir = RbConfig::CONFIG[
|
458
|
+
bin_dir = RbConfig::CONFIG["bindir"]
|
468
459
|
else
|
469
|
-
lib_dir = File.join prefix,
|
470
|
-
bin_dir = File.join prefix,
|
460
|
+
lib_dir = File.join prefix, "lib"
|
461
|
+
bin_dir = File.join prefix, "bin"
|
471
462
|
end
|
472
463
|
|
473
464
|
[prepend_destdir_if_present(lib_dir), prepend_destdir_if_present(bin_dir)]
|
@@ -475,19 +466,19 @@ By default, this RubyGems will install gem as:
|
|
475
466
|
|
476
467
|
def files_in(dir)
|
477
468
|
Dir.chdir dir do
|
478
|
-
Dir.glob(File.join(
|
469
|
+
Dir.glob(File.join("**", "*"), File::FNM_DOTMATCH).
|
479
470
|
select {|f| !File.directory?(f) }
|
480
471
|
end
|
481
472
|
end
|
482
473
|
|
483
474
|
def remove_old_bin_files(bin_dir)
|
484
475
|
old_bin_files = {
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
476
|
+
"gem_mirror" => "gem mirror",
|
477
|
+
"gem_server" => "gem server",
|
478
|
+
"gemlock" => "gem lock",
|
479
|
+
"gemri" => "ri",
|
480
|
+
"gemwhich" => "gem which",
|
481
|
+
"index_gem_repository.rb" => "gem generate_index",
|
491
482
|
}
|
492
483
|
|
493
484
|
old_bin_files.each do |old_bin_file, new_name|
|
@@ -496,7 +487,7 @@ By default, this RubyGems will install gem as:
|
|
496
487
|
|
497
488
|
deprecation_message = "`#{old_bin_file}` has been deprecated. Use `#{new_name}` instead."
|
498
489
|
|
499
|
-
File.open old_bin_path,
|
490
|
+
File.open old_bin_path, "w" do |fp|
|
500
491
|
fp.write <<-EOF
|
501
492
|
#!#{Gem.ruby}
|
502
493
|
|
@@ -506,15 +497,15 @@ abort "#{deprecation_message}"
|
|
506
497
|
|
507
498
|
next unless Gem.win_platform?
|
508
499
|
|
509
|
-
File.open "#{old_bin_path}.bat",
|
500
|
+
File.open "#{old_bin_path}.bat", "w" do |fp|
|
510
501
|
fp.puts %(@ECHO.#{deprecation_message})
|
511
502
|
end
|
512
503
|
end
|
513
504
|
end
|
514
505
|
|
515
506
|
def remove_old_lib_files(lib_dir)
|
516
|
-
lib_dirs = { File.join(lib_dir,
|
517
|
-
lib_dirs[File.join(lib_dir,
|
507
|
+
lib_dirs = { File.join(lib_dir, "rubygems") => "lib/rubygems" }
|
508
|
+
lib_dirs[File.join(lib_dir, "bundler")] = "bundler/lib/bundler"
|
518
509
|
lib_dirs.each do |old_lib_dir, new_lib_dir|
|
519
510
|
lib_files = files_in(new_lib_dir)
|
520
511
|
|
@@ -522,11 +513,11 @@ abort "#{deprecation_message}"
|
|
522
513
|
|
523
514
|
to_remove = old_lib_files - lib_files
|
524
515
|
|
525
|
-
gauntlet_rubygems = File.join(lib_dir,
|
516
|
+
gauntlet_rubygems = File.join(lib_dir, "gauntlet_rubygems.rb")
|
526
517
|
to_remove << gauntlet_rubygems if File.exist? gauntlet_rubygems
|
527
518
|
|
528
519
|
to_remove.delete_if do |file|
|
529
|
-
file.start_with?
|
520
|
+
file.start_with? "defaults"
|
530
521
|
end
|
531
522
|
|
532
523
|
remove_file_list(to_remove, old_lib_dir)
|
@@ -552,7 +543,7 @@ abort "#{deprecation_message}"
|
|
552
543
|
end
|
553
544
|
|
554
545
|
def show_release_notes
|
555
|
-
release_notes = File.join Dir.pwd,
|
546
|
+
release_notes = File.join Dir.pwd, "CHANGELOG.md"
|
556
547
|
|
557
548
|
release_notes =
|
558
549
|
if File.exist? release_notes
|
@@ -569,7 +560,7 @@ abort "#{deprecation_message}"
|
|
569
560
|
|
570
561
|
history_string = ""
|
571
562
|
|
572
|
-
until versions.length == 0
|
563
|
+
until versions.length == 0 ||
|
573
564
|
versions.shift <= options[:previous_version] do
|
574
565
|
history_string += version_lines.shift + text.shift
|
575
566
|
end
|
@@ -583,10 +574,10 @@ abort "#{deprecation_message}"
|
|
583
574
|
end
|
584
575
|
|
585
576
|
def uninstall_old_gemcutter
|
586
|
-
require_relative
|
577
|
+
require_relative "../uninstaller"
|
587
578
|
|
588
|
-
ui = Gem::Uninstaller.new(
|
589
|
-
|
579
|
+
ui = Gem::Uninstaller.new("gemcutter", :all => true, :ignore => true,
|
580
|
+
:version => "< 0.4")
|
590
581
|
ui.uninstall
|
591
582
|
rescue Gem::InstallError
|
592
583
|
end
|
@@ -635,7 +626,7 @@ abort "#{deprecation_message}"
|
|
635
626
|
destdir = options[:destdir]
|
636
627
|
return path if destdir.empty?
|
637
628
|
|
638
|
-
File.join(options[:destdir], path.gsub(/^[a-zA-Z]:/,
|
629
|
+
File.join(options[:destdir], path.gsub(/^[a-zA-Z]:/, ""))
|
639
630
|
end
|
640
631
|
|
641
632
|
def install_file_list(files, dest_dir)
|
@@ -1,15 +1,16 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative
|
2
|
+
|
3
|
+
require_relative "../command"
|
4
|
+
require_relative "../gemcutter_utilities"
|
4
5
|
|
5
6
|
class Gem::Commands::SigninCommand < Gem::Command
|
6
7
|
include Gem::GemcutterUtilities
|
7
8
|
|
8
9
|
def initialize
|
9
|
-
super
|
10
|
-
|
10
|
+
super "signin", "Sign in to any gemcutter-compatible host. "\
|
11
|
+
"It defaults to https://rubygems.org"
|
11
12
|
|
12
|
-
add_option(
|
13
|
+
add_option("--host HOST", "Push to another gemcutter-compatible host") do |value, options|
|
13
14
|
options[:host] = value
|
14
15
|
end
|
15
16
|
|
@@ -17,10 +18,10 @@ class Gem::Commands::SigninCommand < Gem::Command
|
|
17
18
|
end
|
18
19
|
|
19
20
|
def description # :nodoc:
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
"The signin command executes host sign in for a push server (the default is"\
|
22
|
+
" https://rubygems.org). The host can be provided with the host flag or can"\
|
23
|
+
" be inferred from the provided gem. Host resolution matches the resolution"\
|
24
|
+
" strategy for the push command."
|
24
25
|
end
|
25
26
|
|
26
27
|
def usage # :nodoc:
|
@@ -1,14 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
2
|
+
|
3
|
+
require_relative "../command"
|
3
4
|
|
4
5
|
class Gem::Commands::SignoutCommand < Gem::Command
|
5
6
|
def initialize
|
6
|
-
super
|
7
|
+
super "signout", "Sign out from all the current sessions."
|
7
8
|
end
|
8
9
|
|
9
10
|
def description # :nodoc:
|
10
|
-
|
11
|
-
|
11
|
+
"The `signout` command is used to sign out from all current sessions,"\
|
12
|
+
" allowing you to sign in using a different set of credentials."
|
12
13
|
end
|
13
14
|
|
14
15
|
def usage # :nodoc:
|
@@ -19,13 +20,13 @@ class Gem::Commands::SignoutCommand < Gem::Command
|
|
19
20
|
credentials_path = Gem.configuration.credentials_path
|
20
21
|
|
21
22
|
if !File.exist?(credentials_path)
|
22
|
-
alert_error
|
23
|
+
alert_error "You are not currently signed in."
|
23
24
|
elsif !File.writable?(credentials_path)
|
24
25
|
alert_error "File '#{Gem.configuration.credentials_path}' is read-only."\
|
25
|
-
|
26
|
+
" Please make sure it is writable."
|
26
27
|
else
|
27
28
|
Gem.configuration.unset_api_key!
|
28
|
-
say
|
29
|
+
say "You have successfully signed out from all sessions."
|
29
30
|
end
|
30
31
|
end
|
31
32
|
end
|
@@ -1,40 +1,41 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative
|
4
|
-
require_relative
|
5
|
-
require_relative
|
2
|
+
|
3
|
+
require_relative "../command"
|
4
|
+
require_relative "../remote_fetcher"
|
5
|
+
require_relative "../spec_fetcher"
|
6
|
+
require_relative "../local_remote_options"
|
6
7
|
|
7
8
|
class Gem::Commands::SourcesCommand < Gem::Command
|
8
9
|
include Gem::LocalRemoteOptions
|
9
10
|
|
10
11
|
def initialize
|
11
|
-
require
|
12
|
+
require "fileutils"
|
12
13
|
|
13
|
-
super
|
14
|
-
|
14
|
+
super "sources",
|
15
|
+
"Manage the sources and cache file RubyGems uses to search for gems"
|
15
16
|
|
16
|
-
add_option
|
17
|
+
add_option "-a", "--add SOURCE_URI", "Add source" do |value, options|
|
17
18
|
options[:add] = value
|
18
19
|
end
|
19
20
|
|
20
|
-
add_option
|
21
|
+
add_option "-l", "--list", "List sources" do |value, options|
|
21
22
|
options[:list] = value
|
22
23
|
end
|
23
24
|
|
24
|
-
add_option
|
25
|
+
add_option "-r", "--remove SOURCE_URI", "Remove source" do |value, options|
|
25
26
|
options[:remove] = value
|
26
27
|
end
|
27
28
|
|
28
|
-
add_option
|
29
|
-
|
29
|
+
add_option "-c", "--clear-all",
|
30
|
+
"Remove all sources (clear the cache)" do |value, options|
|
30
31
|
options[:clear_all] = value
|
31
32
|
end
|
32
33
|
|
33
|
-
add_option
|
34
|
+
add_option "-u", "--update", "Update source cache" do |value, options|
|
34
35
|
options[:update] = value
|
35
36
|
end
|
36
37
|
|
37
|
-
add_option
|
38
|
+
add_option "-f", "--[no-]force", "Do not show any confirmation prompts and behave as if 'yes' was always answered" do |value, options|
|
38
39
|
options[:force] = value
|
39
40
|
end
|
40
41
|
|
@@ -82,8 +83,8 @@ Do you want to add this source?
|
|
82
83
|
def check_rubygems_https(source_uri) # :nodoc:
|
83
84
|
uri = URI source_uri
|
84
85
|
|
85
|
-
if uri.scheme
|
86
|
-
uri.host.downcase ==
|
86
|
+
if uri.scheme && uri.scheme.downcase == "http" &&
|
87
|
+
uri.host.downcase == "rubygems.org"
|
87
88
|
question = <<-QUESTION.chomp
|
88
89
|
https://rubygems.org is recommended for security over #{uri}
|
89
90
|
|
@@ -112,7 +113,7 @@ Do you want to add this insecure source?
|
|
112
113
|
end
|
113
114
|
|
114
115
|
def defaults_str # :nodoc:
|
115
|
-
|
116
|
+
"--list"
|
116
117
|
end
|
117
118
|
|
118
119
|
def description # :nodoc:
|
@@ -138,8 +139,8 @@ do not recognize you should remove them.
|
|
138
139
|
RubyGems has been configured to serve gems via the following URLs through
|
139
140
|
its history:
|
140
141
|
|
141
|
-
* http://gems.rubyforge.org (RubyGems 1.3.
|
142
|
-
*
|
142
|
+
* http://gems.rubyforge.org (RubyGems 1.3.5 and earlier)
|
143
|
+
* http://rubygems.org (RubyGems 1.3.6 through 1.8.30, and 2.0.0)
|
143
144
|
* https://rubygems.org (RubyGems 2.0.1 and newer)
|
144
145
|
|
145
146
|
Since all of these sources point to the same set of gems you only need one
|
@@ -215,9 +216,9 @@ To remove a source use the --remove argument:
|
|
215
216
|
def remove_cache_file(desc, path) # :nodoc:
|
216
217
|
FileUtils.rm_rf path
|
217
218
|
|
218
|
-
if
|
219
|
+
if !File.exist?(path)
|
219
220
|
say "*** Removed #{desc} source cache ***"
|
220
|
-
elsif
|
221
|
+
elsif !File.writable?(path)
|
221
222
|
say "*** Unable to remove #{desc} source cache (write protected) ***"
|
222
223
|
else
|
223
224
|
say "*** Unable to remove #{desc} source cache ***"
|