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,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
require_relative "helper"
|
4
|
+
require "rubygems/commands/sources_command"
|
4
5
|
|
5
6
|
class TestGemCommandsSourcesCommand < Gem::TestCase
|
6
7
|
def setup
|
@@ -20,7 +21,7 @@ class TestGemCommandsSourcesCommand < Gem::TestCase
|
|
20
21
|
end
|
21
22
|
|
22
23
|
def test_initialize_proxy
|
23
|
-
assert @cmd.handles?([
|
24
|
+
assert @cmd.handles?(["--http-proxy", "http://proxy.example.com"])
|
24
25
|
end
|
25
26
|
|
26
27
|
def test_execute
|
@@ -37,12 +38,12 @@ class TestGemCommandsSourcesCommand < Gem::TestCase
|
|
37
38
|
EOF
|
38
39
|
|
39
40
|
assert_equal expected, @ui.output
|
40
|
-
assert_equal
|
41
|
+
assert_equal "", @ui.error
|
41
42
|
end
|
42
43
|
|
43
44
|
def test_execute_add
|
44
45
|
spec_fetcher do |fetcher|
|
45
|
-
fetcher.spec
|
46
|
+
fetcher.spec "a", 1
|
46
47
|
end
|
47
48
|
|
48
49
|
specs = Gem::Specification.map do |spec|
|
@@ -70,7 +71,7 @@ class TestGemCommandsSourcesCommand < Gem::TestCase
|
|
70
71
|
EOF
|
71
72
|
|
72
73
|
assert_equal expected, @ui.output
|
73
|
-
assert_equal
|
74
|
+
assert_equal "", @ui.error
|
74
75
|
end
|
75
76
|
|
76
77
|
def test_execute_add_allow_typo_squatting_source
|
@@ -161,7 +162,6 @@ class TestGemCommandsSourcesCommand < Gem::TestCase
|
|
161
162
|
ui = Gem::MockGemUi.new("n")
|
162
163
|
|
163
164
|
use_ui ui do
|
164
|
-
|
165
165
|
assert_raise Gem::MockGemUi::TermError do
|
166
166
|
@cmd.execute
|
167
167
|
end
|
@@ -182,7 +182,7 @@ class TestGemCommandsSourcesCommand < Gem::TestCase
|
|
182
182
|
|
183
183
|
uri = "http://beta-gems.example.com/specs.#{@marshal_version}.gz"
|
184
184
|
@fetcher.data[uri] = proc do
|
185
|
-
raise Gem::RemoteFetcher::FetchError.new(
|
185
|
+
raise Gem::RemoteFetcher::FetchError.new("it died", uri)
|
186
186
|
end
|
187
187
|
|
188
188
|
@cmd.handle_options %w[--add http://beta-gems.example.com]
|
@@ -199,7 +199,7 @@ Error fetching http://beta-gems.example.com:
|
|
199
199
|
EOF
|
200
200
|
|
201
201
|
assert_equal expected, @ui.output
|
202
|
-
assert_equal
|
202
|
+
assert_equal "", @ui.error
|
203
203
|
end
|
204
204
|
|
205
205
|
def test_execute_add_existent_source_invalid_uri
|
@@ -209,7 +209,7 @@ Error fetching http://beta-gems.example.com:
|
|
209
209
|
|
210
210
|
@cmd.handle_options %w[--add https://u:p@example.com]
|
211
211
|
@fetcher.data[uri] = proc do
|
212
|
-
raise Gem::RemoteFetcher::FetchError.new(
|
212
|
+
raise Gem::RemoteFetcher::FetchError.new("it died", uri)
|
213
213
|
end
|
214
214
|
|
215
215
|
use_ui @ui do
|
@@ -224,7 +224,7 @@ Error fetching https://u:REDACTED@example.com:
|
|
224
224
|
EOF
|
225
225
|
|
226
226
|
assert_equal expected, @ui.output
|
227
|
-
assert_equal
|
227
|
+
assert_equal "", @ui.error
|
228
228
|
end
|
229
229
|
|
230
230
|
def test_execute_add_existent_source_invalid_uri_with_error_by_chance_including_the_uri_password
|
@@ -234,7 +234,7 @@ Error fetching https://u:REDACTED@example.com:
|
|
234
234
|
|
235
235
|
@cmd.handle_options %w[--add https://u:secret@example.com]
|
236
236
|
@fetcher.data[uri] = proc do
|
237
|
-
raise Gem::RemoteFetcher::FetchError.new(
|
237
|
+
raise Gem::RemoteFetcher::FetchError.new("it secretly died", uri)
|
238
238
|
end
|
239
239
|
|
240
240
|
use_ui @ui do
|
@@ -249,7 +249,7 @@ Error fetching https://u:REDACTED@example.com:
|
|
249
249
|
EOF
|
250
250
|
|
251
251
|
assert_equal expected, @ui.output
|
252
|
-
assert_equal
|
252
|
+
assert_equal "", @ui.error
|
253
253
|
end
|
254
254
|
|
255
255
|
def test_execute_add_redundant_source
|
@@ -268,7 +268,7 @@ source #{@gem_repo} already present in the cache
|
|
268
268
|
EOF
|
269
269
|
|
270
270
|
assert_equal expected, @ui.output
|
271
|
-
assert_equal
|
271
|
+
assert_equal "", @ui.error
|
272
272
|
end
|
273
273
|
|
274
274
|
def test_execute_add_redundant_source_trailing_slash
|
@@ -288,7 +288,7 @@ source #{@gem_repo} already present in the cache
|
|
288
288
|
EOF
|
289
289
|
|
290
290
|
assert_equal expected, @ui.output
|
291
|
-
assert_equal
|
291
|
+
assert_equal "", @ui.error
|
292
292
|
|
293
293
|
# Re-add pre-existing gem source (w/o slash)
|
294
294
|
repo_without_slash = "http://gems.example.com"
|
@@ -305,7 +305,7 @@ http://gems.example.com added to sources
|
|
305
305
|
EOF
|
306
306
|
|
307
307
|
assert_equal expected, @ui.output
|
308
|
-
assert_equal
|
308
|
+
assert_equal "", @ui.error
|
309
309
|
|
310
310
|
# Re-add original gem source (w/ slash)
|
311
311
|
@cmd.handle_options %W[--add #{repo_with_slash}]
|
@@ -322,14 +322,14 @@ source http://gems.example.com/ already present in the cache
|
|
322
322
|
EOF
|
323
323
|
|
324
324
|
assert_equal expected, @ui.output
|
325
|
-
assert_equal
|
325
|
+
assert_equal "", @ui.error
|
326
326
|
end
|
327
327
|
|
328
328
|
def test_execute_add_http_rubygems_org
|
329
|
-
http_rubygems_org =
|
329
|
+
http_rubygems_org = "http://rubygems.org/"
|
330
330
|
|
331
331
|
spec_fetcher do |fetcher|
|
332
|
-
fetcher.spec
|
332
|
+
fetcher.spec "a", 1
|
333
333
|
end
|
334
334
|
|
335
335
|
specs = Gem::Specification.map do |spec|
|
@@ -394,10 +394,10 @@ source http://gems.example.com/ already present in the cache
|
|
394
394
|
end
|
395
395
|
|
396
396
|
def test_execute_add_https_rubygems_org
|
397
|
-
https_rubygems_org =
|
397
|
+
https_rubygems_org = "https://rubygems.org/"
|
398
398
|
|
399
399
|
spec_fetcher do |fetcher|
|
400
|
-
fetcher.spec
|
400
|
+
fetcher.spec "a", 1
|
401
401
|
end
|
402
402
|
|
403
403
|
specs = Gem::Specification.map do |spec|
|
@@ -447,7 +447,7 @@ beta-gems.example.com is not a URI
|
|
447
447
|
EOF
|
448
448
|
|
449
449
|
assert_equal expected, @ui.output
|
450
|
-
assert_equal
|
450
|
+
assert_equal "", @ui.error
|
451
451
|
end
|
452
452
|
|
453
453
|
def test_execute_clear_all
|
@@ -462,10 +462,10 @@ beta-gems.example.com is not a URI
|
|
462
462
|
EOF
|
463
463
|
|
464
464
|
assert_equal expected, @ui.output
|
465
|
-
assert_equal
|
465
|
+
assert_equal "", @ui.error
|
466
466
|
|
467
467
|
dir = Gem.spec_cache_dir
|
468
|
-
refute File.exist?(dir),
|
468
|
+
refute File.exist?(dir), "cache dir removed"
|
469
469
|
end
|
470
470
|
|
471
471
|
def test_execute_list
|
@@ -482,7 +482,7 @@ beta-gems.example.com is not a URI
|
|
482
482
|
EOF
|
483
483
|
|
484
484
|
assert_equal expected, @ui.output
|
485
|
-
assert_equal
|
485
|
+
assert_equal "", @ui.error
|
486
486
|
end
|
487
487
|
|
488
488
|
def test_execute_remove
|
@@ -495,7 +495,7 @@ beta-gems.example.com is not a URI
|
|
495
495
|
expected = "#{@gem_repo} removed from sources\n"
|
496
496
|
|
497
497
|
assert_equal expected, @ui.output
|
498
|
-
assert_equal
|
498
|
+
assert_equal "", @ui.error
|
499
499
|
end
|
500
500
|
|
501
501
|
def test_execute_remove_no_network
|
@@ -514,14 +514,14 @@ beta-gems.example.com is not a URI
|
|
514
514
|
expected = "#{@gem_repo} removed from sources\n"
|
515
515
|
|
516
516
|
assert_equal expected, @ui.output
|
517
|
-
assert_equal
|
517
|
+
assert_equal "", @ui.error
|
518
518
|
end
|
519
519
|
|
520
520
|
def test_execute_update
|
521
521
|
@cmd.handle_options %w[--update]
|
522
522
|
|
523
523
|
spec_fetcher do |fetcher|
|
524
|
-
fetcher.gem
|
524
|
+
fetcher.gem "a", 1
|
525
525
|
end
|
526
526
|
|
527
527
|
use_ui @ui do
|
@@ -529,6 +529,6 @@ beta-gems.example.com is not a URI
|
|
529
529
|
end
|
530
530
|
|
531
531
|
assert_equal "source cache successfully updated\n", @ui.output
|
532
|
-
assert_equal
|
532
|
+
assert_equal "", @ui.error
|
533
533
|
end
|
534
534
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
require_relative "helper"
|
4
|
+
require "rubygems/commands/specification_command"
|
4
5
|
|
5
6
|
class TestGemCommandsSpecificationCommand < Gem::TestCase
|
6
7
|
def setup
|
@@ -10,7 +11,7 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
10
11
|
end
|
11
12
|
|
12
13
|
def test_execute
|
13
|
-
foo = util_spec
|
14
|
+
foo = util_spec "foo"
|
14
15
|
|
15
16
|
install_specs foo
|
16
17
|
|
@@ -22,12 +23,12 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
22
23
|
|
23
24
|
assert_match %r{Gem::Specification}, @ui.output
|
24
25
|
assert_match %r{name: foo}, @ui.output
|
25
|
-
assert_equal
|
26
|
+
assert_equal "", @ui.error
|
26
27
|
end
|
27
28
|
|
28
29
|
def test_execute_all
|
29
|
-
install_specs util_spec
|
30
|
-
install_specs util_spec
|
30
|
+
install_specs util_spec "foo", "0.0.1"
|
31
|
+
install_specs util_spec "foo", "0.0.2"
|
31
32
|
|
32
33
|
@cmd.options[:args] = %w[foo]
|
33
34
|
@cmd.options[:all] = true
|
@@ -40,12 +41,12 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
40
41
|
assert_match %r{name: foo}, @ui.output
|
41
42
|
assert_match %r{version: 0.0.1}, @ui.output
|
42
43
|
assert_match %r{version: 0.0.2}, @ui.output
|
43
|
-
assert_equal
|
44
|
+
assert_equal "", @ui.error
|
44
45
|
end
|
45
46
|
|
46
47
|
def test_execute_all_conflicts_with_version
|
47
|
-
util_spec
|
48
|
-
util_spec
|
48
|
+
util_spec "foo", "0.0.1"
|
49
|
+
util_spec "foo", "0.0.2"
|
49
50
|
|
50
51
|
@cmd.options[:args] = %w[foo]
|
51
52
|
@cmd.options[:all] = true
|
@@ -57,7 +58,7 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
57
58
|
end
|
58
59
|
end
|
59
60
|
|
60
|
-
assert_equal
|
61
|
+
assert_equal "", @ui.output
|
61
62
|
assert_equal "ERROR: Specify --all or -v, not both\n", @ui.error
|
62
63
|
end
|
63
64
|
|
@@ -70,7 +71,7 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
70
71
|
end
|
71
72
|
end
|
72
73
|
|
73
|
-
assert_equal
|
74
|
+
assert_equal "", @ui.output
|
74
75
|
assert_equal "ERROR: No gem matching 'foo (>= 0)' found\n", @ui.error
|
75
76
|
end
|
76
77
|
|
@@ -84,13 +85,13 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
84
85
|
end
|
85
86
|
end
|
86
87
|
|
87
|
-
assert_equal
|
88
|
+
assert_equal "", @ui.output
|
88
89
|
assert_equal "ERROR: No gem matching 'foo (= 1.3.2)' found\n", @ui.error
|
89
90
|
end
|
90
91
|
|
91
92
|
def test_execute_exact_match
|
92
|
-
install_specs util_spec
|
93
|
-
install_specs util_spec
|
93
|
+
install_specs util_spec "foo"
|
94
|
+
install_specs util_spec "foo_bar"
|
94
95
|
|
95
96
|
@cmd.options[:args] = %w[foo]
|
96
97
|
|
@@ -100,11 +101,11 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
100
101
|
|
101
102
|
assert_match %r{Gem::Specification}, @ui.output
|
102
103
|
assert_match %r{name: foo}, @ui.output
|
103
|
-
assert_equal
|
104
|
+
assert_equal "", @ui.error
|
104
105
|
end
|
105
106
|
|
106
107
|
def test_execute_field
|
107
|
-
foo = util_spec
|
108
|
+
foo = util_spec "foo", "2"
|
108
109
|
|
109
110
|
install_specs foo
|
110
111
|
|
@@ -118,7 +119,7 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
118
119
|
end
|
119
120
|
|
120
121
|
def test_execute_file
|
121
|
-
foo = util_spec
|
122
|
+
foo = util_spec "foo" do |s|
|
122
123
|
s.files = %w[lib/code.rb]
|
123
124
|
end
|
124
125
|
|
@@ -132,11 +133,11 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
132
133
|
|
133
134
|
assert_match %r{Gem::Specification}, @ui.output
|
134
135
|
assert_match %r{name: foo}, @ui.output
|
135
|
-
assert_equal
|
136
|
+
assert_equal "", @ui.error
|
136
137
|
end
|
137
138
|
|
138
139
|
def test_execute_marshal
|
139
|
-
foo = util_spec
|
140
|
+
foo = util_spec "foo", "2"
|
140
141
|
|
141
142
|
install_specs foo
|
142
143
|
|
@@ -148,12 +149,12 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
148
149
|
end
|
149
150
|
|
150
151
|
assert_equal foo, Marshal.load(@ui.output)
|
151
|
-
assert_equal
|
152
|
+
assert_equal "", @ui.error
|
152
153
|
end
|
153
154
|
|
154
155
|
def test_execute_remote
|
155
156
|
spec_fetcher do |fetcher|
|
156
|
-
fetcher.spec
|
157
|
+
fetcher.spec "foo", 1
|
157
158
|
end
|
158
159
|
|
159
160
|
@cmd.options[:args] = %w[foo]
|
@@ -169,8 +170,8 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
169
170
|
|
170
171
|
def test_execute_remote_with_version
|
171
172
|
spec_fetcher do |fetcher|
|
172
|
-
fetcher.spec
|
173
|
-
fetcher.spec
|
173
|
+
fetcher.spec "foo", "1"
|
174
|
+
fetcher.spec "foo", "2"
|
174
175
|
end
|
175
176
|
|
176
177
|
@cmd.options[:args] = %w[foo]
|
@@ -190,9 +191,9 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
190
191
|
original_platforms = Gem.platforms.dup
|
191
192
|
|
192
193
|
spec_fetcher do |fetcher|
|
193
|
-
fetcher.spec
|
194
|
-
fetcher.spec
|
195
|
-
s.platform =
|
194
|
+
fetcher.spec "foo", "1"
|
195
|
+
fetcher.spec "foo", "1" do |s|
|
196
|
+
s.platform = "x86_64-linux"
|
196
197
|
end
|
197
198
|
end
|
198
199
|
|
@@ -216,8 +217,8 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
216
217
|
|
217
218
|
def test_execute_remote_without_prerelease
|
218
219
|
spec_fetcher do |fetcher|
|
219
|
-
fetcher.spec
|
220
|
-
fetcher.spec
|
220
|
+
fetcher.spec "foo", "2.0.0"
|
221
|
+
fetcher.spec "foo", "2.0.1.pre"
|
221
222
|
end
|
222
223
|
|
223
224
|
@cmd.options[:args] = %w[foo]
|
@@ -237,8 +238,8 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
237
238
|
|
238
239
|
def test_execute_remote_with_prerelease
|
239
240
|
spec_fetcher do |fetcher|
|
240
|
-
fetcher.spec
|
241
|
-
fetcher.spec
|
241
|
+
fetcher.spec "foo", "2.0.0"
|
242
|
+
fetcher.spec "foo", "2.0.1.pre"
|
242
243
|
end
|
243
244
|
|
244
245
|
@cmd.options[:args] = %w[foo]
|
@@ -258,7 +259,7 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
258
259
|
end
|
259
260
|
|
260
261
|
def test_execute_ruby
|
261
|
-
foo = util_spec
|
262
|
+
foo = util_spec "foo"
|
262
263
|
|
263
264
|
install_specs foo
|
264
265
|
|
@@ -271,6 +272,6 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
|
|
271
272
|
|
272
273
|
assert_match %r{Gem::Specification.new}, @ui.output
|
273
274
|
assert_match %r{s.name = "foo"}, @ui.output
|
274
|
-
assert_equal
|
275
|
+
assert_equal "", @ui.error
|
275
276
|
end
|
276
277
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
require_relative "helper"
|
4
|
+
require "rubygems/commands/stale_command"
|
4
5
|
|
5
6
|
class TestGemCommandsStaleCommand < Gem::TestCase
|
6
7
|
def setup
|
@@ -11,12 +12,12 @@ class TestGemCommandsStaleCommand < Gem::TestCase
|
|
11
12
|
|
12
13
|
def test_execute_sorts
|
13
14
|
files = %w[lib/foo_bar.rb Rakefile]
|
14
|
-
foo_bar = util_spec
|
15
|
+
foo_bar = util_spec "foo_bar" do |gem|
|
15
16
|
gem.files = files
|
16
17
|
end
|
17
18
|
install_specs foo_bar
|
18
19
|
|
19
|
-
bar_baz = util_spec
|
20
|
+
bar_baz = util_spec "bar_baz" do |gem|
|
20
21
|
gem.files = files
|
21
22
|
end
|
22
23
|
install_specs bar_baz
|