rubygems-update 3.3.26 → 3.4.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1178 -1088
- data/CONTRIBUTING.md +30 -7
- data/Manifest.txt +35 -32
- data/POLICIES.md +10 -8
- data/README.md +2 -2
- data/bin/gem +1 -4
- data/bin/update_rubygems +1 -1
- data/bundler/CHANGELOG.md +122 -1
- data/bundler/README.md +2 -2
- data/bundler/UPGRADING.md +1 -1
- data/bundler/bundler.gemspec +2 -2
- data/bundler/exe/bundle +1 -4
- 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 +5 -1
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +1 -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/install.rb +2 -3
- 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 +1 -3
- data/bundler/lib/bundler/cli/viz.rb +1 -1
- data/bundler/lib/bundler/cli.rb +44 -2
- 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/definition.rb +87 -51
- data/bundler/lib/bundler/dependency.rb +12 -11
- data/bundler/lib/bundler/digest.rb +1 -1
- data/bundler/lib/bundler/dsl.rb +3 -3
- data/bundler/lib/bundler/env.rb +1 -1
- data/bundler/lib/bundler/environment_preserver.rb +1 -0
- data/bundler/lib/bundler/errors.rb +1 -11
- data/bundler/lib/bundler/fetcher/compact_index.rb +9 -11
- data/bundler/lib/bundler/fetcher/dependency.rb +1 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
- data/bundler/lib/bundler/fetcher.rb +2 -6
- data/bundler/lib/bundler/force_platform.rb +18 -0
- data/bundler/lib/bundler/friendly_errors.rb +0 -3
- data/bundler/lib/bundler/gem_version_promoter.rb +52 -86
- data/bundler/lib/bundler/graph.rb +3 -3
- data/bundler/lib/bundler/index.rb +5 -13
- data/bundler/lib/bundler/injector.rb +1 -1
- data/bundler/lib/bundler/inline.rb +8 -10
- data/bundler/lib/bundler/installer/parallel_installer.rb +0 -31
- data/bundler/lib/bundler/installer/standalone.rb +11 -7
- data/bundler/lib/bundler/installer.rb +9 -23
- data/bundler/lib/bundler/lazy_specification.rb +37 -33
- data/bundler/lib/bundler/lockfile_parser.rb +5 -5
- data/bundler/lib/bundler/man/bundle-add.1 +1 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +2 -2
- data/bundler/lib/bundler/man/bundle-config.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-console.1 +1 -1
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +5 -5
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +5 -5
- 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 +1 -1
- data/bundler/lib/bundler/man/bundle-info.1 +1 -1
- data/bundler/lib/bundler/man/bundle-init.1 +1 -1
- data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
- data/bundler/lib/bundler/man/bundle-install.1 +1 -30
- data/bundler/lib/bundler/man/bundle-install.1.ronn +0 -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 +1 -1
- data/bundler/lib/bundler/man/bundle-platform.1 +2 -2
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
- 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 +1 -1
- data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
- data/bundler/lib/bundler/man/bundle.1 +1 -1
- data/bundler/lib/bundler/man/gemfile.5 +1 -1
- data/bundler/lib/bundler/mirror.rb +5 -7
- data/bundler/lib/bundler/plugin/index.rb +4 -4
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
- data/bundler/lib/bundler/resolver/base.rb +42 -15
- 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 +26 -36
- data/bundler/lib/bundler/resolver.rb +314 -278
- data/bundler/lib/bundler/rubygems_ext.rb +11 -6
- data/bundler/lib/bundler/rubygems_gem_installer.rb +4 -2
- data/bundler/lib/bundler/rubygems_integration.rb +9 -13
- data/bundler/lib/bundler/runtime.rb +1 -5
- data/bundler/lib/bundler/settings.rb +0 -6
- data/bundler/lib/bundler/shared_helpers.rb +1 -0
- data/bundler/lib/bundler/source/git/git_proxy.rb +193 -67
- data/bundler/lib/bundler/source/git.rb +15 -17
- data/bundler/lib/bundler/source/metadata.rb +0 -1
- data/bundler/lib/bundler/source/path/installer.rb +1 -22
- data/bundler/lib/bundler/source/path.rb +5 -5
- data/bundler/lib/bundler/source/rubygems.rb +14 -68
- data/bundler/lib/bundler/source_list.rb +8 -2
- data/bundler/lib/bundler/spec_set.rb +7 -9
- data/bundler/lib/bundler/templates/Executable +1 -1
- data/bundler/lib/bundler/templates/Executable.bundler +4 -9
- 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 +2 -1
- 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-rust.rb.tt +6 -0
- 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 +8 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +8 -2
- data/bundler/lib/bundler/ui/shell.rb +35 -12
- data/bundler/lib/bundler/ui/silent.rb +21 -5
- 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 +1350 -408
- 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 +151 -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 +53 -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 +128 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +409 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +240 -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 +13 -7
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +10 -5
- 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 +20 -64
- data/lib/rubygems/command.rb +5 -1
- data/lib/rubygems/command_manager.rb +19 -6
- data/lib/rubygems/commands/build_command.rb +3 -0
- data/lib/rubygems/commands/fetch_command.rb +1 -1
- data/lib/rubygems/commands/install_command.rb +7 -3
- data/lib/rubygems/commands/owner_command.rb +1 -1
- data/lib/rubygems/commands/rdoc_command.rb +3 -2
- data/lib/rubygems/commands/setup_command.rb +2 -2
- data/lib/rubygems/commands/unpack_command.rb +1 -1
- data/lib/rubygems/commands/update_command.rb +1 -7
- data/lib/rubygems/config_file.rb +33 -0
- data/lib/rubygems/core_ext/kernel_gem.rb +0 -5
- data/lib/rubygems/core_ext/kernel_require.rb +116 -113
- data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
- data/lib/rubygems/defaults.rb +15 -1
- data/lib/rubygems/dependency.rb +4 -1
- data/lib/rubygems/dependency_installer.rb +24 -24
- data/lib/rubygems/exceptions.rb +1 -3
- data/lib/rubygems/ext/builder.rb +4 -5
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
- data/lib/rubygems/ext/cargo_builder.rb +144 -109
- data/lib/rubygems/ext/ext_conf_builder.rb +2 -0
- data/lib/rubygems/indexer.rb +1 -1
- data/lib/rubygems/installer.rb +5 -5
- data/lib/rubygems/optparse/lib/optparse.rb +20 -15
- data/lib/rubygems/package/tar_header.rb +11 -11
- data/lib/rubygems/platform.rb +1 -3
- data/lib/rubygems/request_set/gem_dependency_api.rb +104 -104
- data/lib/rubygems/requirement.rb +7 -7
- data/lib/rubygems/resolver/installer_set.rb +1 -1
- 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/security/policies.rb +40 -40
- data/lib/rubygems/security/trust_dir.rb +1 -1
- data/lib/rubygems/security.rb +3 -16
- data/lib/rubygems/source.rb +2 -2
- data/lib/rubygems/specification.rb +37 -49
- data/lib/rubygems/specification_policy.rb +14 -0
- data/lib/rubygems/stub_specification.rb +2 -2
- data/lib/rubygems/text.rb +1 -1
- data/lib/rubygems/tsort/lib/tsort.rb +308 -310
- data/lib/rubygems/update_suggestion.rb +69 -0
- data/lib/rubygems/util.rb +1 -5
- data/lib/rubygems/validator.rb +1 -1
- data/lib/rubygems.rb +29 -9
- data/rubygems-update.gemspec +2 -2
- data/test/rubygems/bundler_test_gem.rb +419 -0
- data/test/rubygems/helper.rb +7 -3
- data/test/rubygems/test_bundled_ca.rb +1 -1
- data/test/rubygems/test_exit.rb +6 -0
- data/test/rubygems/test_gem.rb +4 -421
- data/test/rubygems/test_gem_bundler_version_finder.rb +2 -1
- data/test/rubygems/test_gem_command_manager.rb +41 -1
- data/test/rubygems/test_gem_commands_build_command.rb +10 -0
- data/test/rubygems/test_gem_commands_install_command.rb +19 -0
- data/test/rubygems/test_gem_commands_setup_command.rb +1 -8
- data/test/rubygems/test_gem_commands_update_command.rb +6 -6
- data/test/rubygems/test_gem_config_file.rb +1 -1
- data/test/rubygems/test_gem_dependency.rb +2 -0
- data/test/rubygems/test_gem_ext_builder.rb +3 -3
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +2 -4
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.lock → ext/custom_name_lib/Cargo.lock} +22 -32
- 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 +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +22 -32
- 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/src/lib.rs +12 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +30 -42
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +16 -16
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +5 -20
- data/test/rubygems/test_gem_indexer.rb +39 -20
- data/test/rubygems/test_gem_installer.rb +69 -3
- data/test/rubygems/test_gem_package_tar_header.rb +13 -13
- data/test/rubygems/test_gem_platform.rb +59 -60
- data/test/rubygems/test_gem_remote_fetcher.rb +4 -4
- data/test/rubygems/test_gem_request_set.rb +2 -2
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +4 -4
- data/test/rubygems/test_gem_requirement.rb +1 -1
- data/test/rubygems/test_gem_resolver_api_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_api_specification.rb +19 -19
- data/test/rubygems/test_gem_resolver_git_specification.rb +1 -1
- data/test/rubygems/test_gem_security_policy.rb +10 -10
- data/test/rubygems/test_gem_security_trust_dir.rb +2 -2
- data/test/rubygems/test_gem_specification.rb +50 -37
- data/test/rubygems/test_gem_uninstaller.rb +1 -1
- data/test/rubygems/test_gem_update_suggestion.rb +208 -0
- data/test/rubygems/test_kernel.rb +10 -8
- data/test/rubygems/test_require.rb +69 -55
- metadata +39 -36
- 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
- /data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +0 -0
data/test/rubygems/test_gem.rb
CHANGED
@@ -616,27 +616,6 @@ class TestGem < Gem::TestCase
|
|
616
616
|
assert_equal %w[https://rubygems.org/], Gem.default_sources
|
617
617
|
end
|
618
618
|
|
619
|
-
def test_self_use_gemdeps
|
620
|
-
with_local_bundler_at(Gem.dir) do
|
621
|
-
with_rubygems_gemdeps("-") do
|
622
|
-
FileUtils.mkdir_p "detect/a/b"
|
623
|
-
FileUtils.mkdir_p "detect/a/Isolate"
|
624
|
-
|
625
|
-
FileUtils.touch "detect/Isolate"
|
626
|
-
|
627
|
-
begin
|
628
|
-
Dir.chdir "detect/a/b"
|
629
|
-
|
630
|
-
Gem.use_gemdeps
|
631
|
-
|
632
|
-
assert_equal add_bundler_full_name([]), loaded_spec_names
|
633
|
-
ensure
|
634
|
-
Dir.chdir @tempdir
|
635
|
-
end
|
636
|
-
end
|
637
|
-
end
|
638
|
-
end
|
639
|
-
|
640
619
|
def test_self_dir
|
641
620
|
assert_equal @gemhome, Gem.dir
|
642
621
|
end
|
@@ -776,43 +755,6 @@ class TestGem < Gem::TestCase
|
|
776
755
|
assert_equal cwd, $LOAD_PATH.shift
|
777
756
|
end
|
778
757
|
|
779
|
-
def test_self_find_files_with_gemfile
|
780
|
-
with_local_bundler_at(Gem.dir) do
|
781
|
-
cwd = File.expand_path("test/rubygems", PROJECT_DIR)
|
782
|
-
actual_load_path = $LOAD_PATH.unshift(cwd).dup
|
783
|
-
|
784
|
-
discover_path = File.join "lib", "sff", "discover.rb"
|
785
|
-
|
786
|
-
foo1, _ = %w[1 2].map do |version|
|
787
|
-
spec = quick_gem "sff", version do |s|
|
788
|
-
s.files << discover_path
|
789
|
-
end
|
790
|
-
|
791
|
-
write_file(File.join "gems", spec.full_name, discover_path) do |fp|
|
792
|
-
fp.puts "# #{spec.full_name}"
|
793
|
-
end
|
794
|
-
|
795
|
-
spec
|
796
|
-
end
|
797
|
-
Gem.refresh
|
798
|
-
|
799
|
-
write_file(File.join Dir.pwd, "Gemfile") do |fp|
|
800
|
-
fp.puts "source 'https://rubygems.org'"
|
801
|
-
fp.puts "gem '#{foo1.name}', '#{foo1.version}'"
|
802
|
-
end
|
803
|
-
Gem.use_gemdeps(File.join Dir.pwd, "Gemfile")
|
804
|
-
|
805
|
-
expected = [
|
806
|
-
File.expand_path("test/rubygems/sff/discover.rb", PROJECT_DIR),
|
807
|
-
File.join(foo1.full_gem_path, discover_path),
|
808
|
-
].sort
|
809
|
-
|
810
|
-
assert_equal expected, Gem.find_files("sff/discover").sort
|
811
|
-
assert_equal expected, Gem.find_files("sff/**.rb").sort, "[ruby-core:31730]"
|
812
|
-
assert_equal cwd, actual_load_path.shift
|
813
|
-
end
|
814
|
-
end
|
815
|
-
|
816
758
|
def test_self_find_latest_files
|
817
759
|
cwd = File.expand_path("test/rubygems", PROJECT_DIR)
|
818
760
|
$LOAD_PATH.unshift cwd
|
@@ -1358,8 +1300,8 @@ class TestGem < Gem::TestCase
|
|
1358
1300
|
|
1359
1301
|
def test_setting_paths_does_not_warn_about_unknown_keys
|
1360
1302
|
stdout, stderr = capture_output do
|
1361
|
-
Gem.paths = { "foo"
|
1362
|
-
"bar"
|
1303
|
+
Gem.paths = { "foo" => [],
|
1304
|
+
"bar" => Object.new,
|
1363
1305
|
"GEM_HOME" => Gem.paths.home,
|
1364
1306
|
"GEM_PATH" => "foo" }
|
1365
1307
|
end
|
@@ -1640,168 +1582,6 @@ class TestGem < Gem::TestCase
|
|
1640
1582
|
"Wrong spec selected"
|
1641
1583
|
end
|
1642
1584
|
|
1643
|
-
def test_auto_activation_of_specific_gemdeps_file
|
1644
|
-
with_local_bundler_at(Gem.dir) do
|
1645
|
-
a = util_spec "a", "1", nil, "lib/a.rb"
|
1646
|
-
b = util_spec "b", "1", nil, "lib/b.rb"
|
1647
|
-
c = util_spec "c", "1", nil, "lib/c.rb"
|
1648
|
-
|
1649
|
-
install_specs a, b, c
|
1650
|
-
|
1651
|
-
path = File.join @tempdir, "gem.deps.rb"
|
1652
|
-
|
1653
|
-
File.open path, "w" do |f|
|
1654
|
-
f.puts "gem 'a'"
|
1655
|
-
f.puts "gem 'b'"
|
1656
|
-
f.puts "gem 'c'"
|
1657
|
-
end
|
1658
|
-
|
1659
|
-
with_rubygems_gemdeps(path) do
|
1660
|
-
Gem.use_gemdeps
|
1661
|
-
|
1662
|
-
assert_equal add_bundler_full_name(%W[a-1 b-1 c-1]), loaded_spec_names
|
1663
|
-
end
|
1664
|
-
end
|
1665
|
-
end
|
1666
|
-
|
1667
|
-
def test_auto_activation_of_used_gemdeps_file
|
1668
|
-
with_local_bundler_at(Gem.dir) do
|
1669
|
-
a = util_spec "a", "1", nil, "lib/a.rb"
|
1670
|
-
b = util_spec "b", "1", nil, "lib/b.rb"
|
1671
|
-
c = util_spec "c", "1", nil, "lib/c.rb"
|
1672
|
-
|
1673
|
-
install_specs a, b, c
|
1674
|
-
|
1675
|
-
path = File.join @tempdir, "gem.deps.rb"
|
1676
|
-
|
1677
|
-
File.open path, "w" do |f|
|
1678
|
-
f.puts "gem 'a'"
|
1679
|
-
f.puts "gem 'b'"
|
1680
|
-
f.puts "gem 'c'"
|
1681
|
-
end
|
1682
|
-
|
1683
|
-
with_rubygems_gemdeps("-") do
|
1684
|
-
expected_specs = [a, b, util_spec("bundler", Bundler::VERSION), c].compact.map(&:full_name)
|
1685
|
-
|
1686
|
-
Gem.use_gemdeps
|
1687
|
-
|
1688
|
-
assert_equal expected_specs, loaded_spec_names
|
1689
|
-
end
|
1690
|
-
end
|
1691
|
-
end
|
1692
|
-
|
1693
|
-
def add_bundler_full_name(names)
|
1694
|
-
names << "bundler-#{Bundler::VERSION}".freeze
|
1695
|
-
names.sort!
|
1696
|
-
names
|
1697
|
-
end
|
1698
|
-
|
1699
|
-
def test_looks_for_gemdeps_files_automatically_from_binstubs
|
1700
|
-
path = File.join(@tempdir, "gd-tmp")
|
1701
|
-
|
1702
|
-
with_local_bundler_at(path) do
|
1703
|
-
a = util_spec "a", "1" do |s|
|
1704
|
-
s.executables = %w[foo]
|
1705
|
-
s.bindir = "exe"
|
1706
|
-
end
|
1707
|
-
|
1708
|
-
write_file File.join(@tempdir, "exe", "foo") do |fp|
|
1709
|
-
fp.puts "puts Gem.loaded_specs.values.map(&:full_name).sort"
|
1710
|
-
end
|
1711
|
-
|
1712
|
-
b = util_spec "b", "1", nil, "lib/b.rb"
|
1713
|
-
c = util_spec "c", "1", nil, "lib/c.rb"
|
1714
|
-
|
1715
|
-
install_specs a, b, c
|
1716
|
-
|
1717
|
-
install_gem a, :install_dir => path
|
1718
|
-
install_gem b, :install_dir => path
|
1719
|
-
install_gem c, :install_dir => path
|
1720
|
-
|
1721
|
-
ENV["GEM_PATH"] = path
|
1722
|
-
|
1723
|
-
with_rubygems_gemdeps("-") do
|
1724
|
-
new_PATH = [File.join(path, "bin"), ENV["PATH"]].join(File::PATH_SEPARATOR)
|
1725
|
-
new_RUBYOPT = "-I#{rubygems_path} -I#{bundler_path}"
|
1726
|
-
|
1727
|
-
path = File.join @tempdir, "gem.deps.rb"
|
1728
|
-
|
1729
|
-
File.open path, "w" do |f|
|
1730
|
-
f.puts "gem 'a'"
|
1731
|
-
end
|
1732
|
-
out0 = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
1733
|
-
IO.popen("foo", &:read).split(/\n/)
|
1734
|
-
end
|
1735
|
-
|
1736
|
-
File.open path, "a" do |f|
|
1737
|
-
f.puts "gem 'b'"
|
1738
|
-
f.puts "gem 'c'"
|
1739
|
-
end
|
1740
|
-
out = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
1741
|
-
IO.popen("foo", &:read).split(/\n/)
|
1742
|
-
end
|
1743
|
-
|
1744
|
-
assert_equal ["b-1", "c-1"], out - out0
|
1745
|
-
end
|
1746
|
-
end
|
1747
|
-
end
|
1748
|
-
|
1749
|
-
def test_looks_for_gemdeps_files_automatically_from_binstubs_in_parent_dir
|
1750
|
-
path = File.join(@tempdir, "gd-tmp")
|
1751
|
-
|
1752
|
-
with_local_bundler_at(path) do
|
1753
|
-
pend "IO.popen has issues on JRuby when passed :chdir" if Gem.java_platform?
|
1754
|
-
|
1755
|
-
a = util_spec "a", "1" do |s|
|
1756
|
-
s.executables = %w[foo]
|
1757
|
-
s.bindir = "exe"
|
1758
|
-
end
|
1759
|
-
|
1760
|
-
write_file File.join(@tempdir, "exe", "foo") do |fp|
|
1761
|
-
fp.puts "puts Gem.loaded_specs.values.map(&:full_name).sort"
|
1762
|
-
end
|
1763
|
-
|
1764
|
-
b = util_spec "b", "1", nil, "lib/b.rb"
|
1765
|
-
c = util_spec "c", "1", nil, "lib/c.rb"
|
1766
|
-
|
1767
|
-
install_specs a, b, c
|
1768
|
-
|
1769
|
-
install_gem a, :install_dir => path
|
1770
|
-
install_gem b, :install_dir => path
|
1771
|
-
install_gem c, :install_dir => path
|
1772
|
-
|
1773
|
-
ENV["GEM_PATH"] = path
|
1774
|
-
|
1775
|
-
with_rubygems_gemdeps("-") do
|
1776
|
-
Dir.mkdir "sub1"
|
1777
|
-
|
1778
|
-
new_PATH = [File.join(path, "bin"), ENV["PATH"]].join(File::PATH_SEPARATOR)
|
1779
|
-
new_RUBYOPT = "-I#{rubygems_path} -I#{bundler_path}"
|
1780
|
-
|
1781
|
-
path = File.join @tempdir, "gem.deps.rb"
|
1782
|
-
|
1783
|
-
File.open path, "w" do |f|
|
1784
|
-
f.puts "gem 'a'"
|
1785
|
-
end
|
1786
|
-
out0 = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
1787
|
-
IO.popen("foo", :chdir => "sub1", &:read).split(/\n/)
|
1788
|
-
end
|
1789
|
-
|
1790
|
-
File.open path, "a" do |f|
|
1791
|
-
f.puts "gem 'b'"
|
1792
|
-
f.puts "gem 'c'"
|
1793
|
-
end
|
1794
|
-
out = with_path_and_rubyopt(new_PATH, new_RUBYOPT) do
|
1795
|
-
IO.popen("foo", :chdir => "sub1", &:read).split(/\n/)
|
1796
|
-
end
|
1797
|
-
|
1798
|
-
Dir.rmdir "sub1"
|
1799
|
-
|
1800
|
-
assert_equal ["b-1", "c-1"], out - out0
|
1801
|
-
end
|
1802
|
-
end
|
1803
|
-
end
|
1804
|
-
|
1805
1585
|
def test_register_default_spec
|
1806
1586
|
Gem.clear_default_specs
|
1807
1587
|
|
@@ -1842,162 +1622,6 @@ class TestGem < Gem::TestCase
|
|
1842
1622
|
assert_equal old_style, Gem.find_unresolved_default_spec("foo.rb")
|
1843
1623
|
end
|
1844
1624
|
|
1845
|
-
def test_use_gemdeps
|
1846
|
-
with_local_bundler_at(Gem.dir) do
|
1847
|
-
gem_deps_file = "gem.deps.rb".tap(&Gem::UNTAINT)
|
1848
|
-
spec = util_spec "a", 1
|
1849
|
-
install_specs spec
|
1850
|
-
|
1851
|
-
spec = Gem::Specification.find {|s| s == spec }
|
1852
|
-
refute spec.activated?
|
1853
|
-
|
1854
|
-
File.open gem_deps_file, "w" do |io|
|
1855
|
-
io.write 'gem "a"'
|
1856
|
-
end
|
1857
|
-
|
1858
|
-
assert_nil Gem.gemdeps
|
1859
|
-
|
1860
|
-
Gem.use_gemdeps gem_deps_file
|
1861
|
-
|
1862
|
-
assert_equal add_bundler_full_name(%W[a-1]), loaded_spec_names
|
1863
|
-
refute_nil Gem.gemdeps
|
1864
|
-
end
|
1865
|
-
end
|
1866
|
-
|
1867
|
-
def test_use_gemdeps_ENV
|
1868
|
-
with_local_bundler_at(Gem.dir) do
|
1869
|
-
with_rubygems_gemdeps(nil) do
|
1870
|
-
spec = util_spec "a", 1
|
1871
|
-
|
1872
|
-
refute spec.activated?
|
1873
|
-
|
1874
|
-
File.open "gem.deps.rb", "w" do |io|
|
1875
|
-
io.write 'gem "a"'
|
1876
|
-
end
|
1877
|
-
|
1878
|
-
Gem.use_gemdeps
|
1879
|
-
|
1880
|
-
refute spec.activated?
|
1881
|
-
end
|
1882
|
-
end
|
1883
|
-
end
|
1884
|
-
|
1885
|
-
def test_use_gemdeps_argument_missing
|
1886
|
-
with_local_bundler_at(Gem.dir) do
|
1887
|
-
e = assert_raise ArgumentError do
|
1888
|
-
Gem.use_gemdeps "gem.deps.rb"
|
1889
|
-
end
|
1890
|
-
|
1891
|
-
assert_equal "Unable to find gem dependencies file at gem.deps.rb",
|
1892
|
-
e.message
|
1893
|
-
end
|
1894
|
-
end
|
1895
|
-
|
1896
|
-
def test_use_gemdeps_argument_missing_match_ENV
|
1897
|
-
with_local_bundler_at(Gem.dir) do
|
1898
|
-
with_rubygems_gemdeps("gem.deps.rb") do
|
1899
|
-
e = assert_raise ArgumentError do
|
1900
|
-
Gem.use_gemdeps "gem.deps.rb"
|
1901
|
-
end
|
1902
|
-
|
1903
|
-
assert_equal "Unable to find gem dependencies file at gem.deps.rb",
|
1904
|
-
e.message
|
1905
|
-
end
|
1906
|
-
end
|
1907
|
-
end
|
1908
|
-
|
1909
|
-
def test_use_gemdeps_automatic
|
1910
|
-
with_local_bundler_at(Gem.dir) do
|
1911
|
-
with_rubygems_gemdeps("-") do
|
1912
|
-
spec = util_spec "a", 1
|
1913
|
-
install_specs spec
|
1914
|
-
spec = Gem::Specification.find {|s| s == spec }
|
1915
|
-
|
1916
|
-
refute spec.activated?
|
1917
|
-
|
1918
|
-
File.open "Gemfile", "w" do |io|
|
1919
|
-
io.write 'gem "a"'
|
1920
|
-
end
|
1921
|
-
|
1922
|
-
Gem.use_gemdeps
|
1923
|
-
|
1924
|
-
assert_equal add_bundler_full_name(%W[a-1]), loaded_spec_names
|
1925
|
-
end
|
1926
|
-
end
|
1927
|
-
end
|
1928
|
-
|
1929
|
-
def test_use_gemdeps_automatic_missing
|
1930
|
-
with_local_bundler_at(Gem.dir) do
|
1931
|
-
with_rubygems_gemdeps("-") do
|
1932
|
-
Gem.use_gemdeps
|
1933
|
-
|
1934
|
-
assert true # count
|
1935
|
-
end
|
1936
|
-
end
|
1937
|
-
end
|
1938
|
-
|
1939
|
-
def test_use_gemdeps_disabled
|
1940
|
-
with_local_bundler_at(Gem.dir) do
|
1941
|
-
with_rubygems_gemdeps("") do
|
1942
|
-
spec = util_spec "a", 1
|
1943
|
-
|
1944
|
-
refute spec.activated?
|
1945
|
-
|
1946
|
-
File.open "gem.deps.rb", "w" do |io|
|
1947
|
-
io.write 'gem "a"'
|
1948
|
-
end
|
1949
|
-
|
1950
|
-
Gem.use_gemdeps
|
1951
|
-
|
1952
|
-
refute spec.activated?
|
1953
|
-
end
|
1954
|
-
end
|
1955
|
-
end
|
1956
|
-
|
1957
|
-
def test_use_gemdeps_missing_gem
|
1958
|
-
with_local_bundler_at(Gem.dir) do
|
1959
|
-
with_rubygems_gemdeps("x") do
|
1960
|
-
File.open "x", "w" do |io|
|
1961
|
-
io.write 'gem "a"'
|
1962
|
-
end
|
1963
|
-
|
1964
|
-
expected = <<-EXPECTED
|
1965
|
-
Could not find gem 'a' in locally installed gems.
|
1966
|
-
You may need to `bundle install` to install missing gems
|
1967
|
-
|
1968
|
-
EXPECTED
|
1969
|
-
|
1970
|
-
Gem::Deprecate.skip_during do
|
1971
|
-
actual_stdout, actual_stderr = capture_output do
|
1972
|
-
Gem.use_gemdeps
|
1973
|
-
end
|
1974
|
-
assert_empty actual_stdout
|
1975
|
-
assert_equal(expected, actual_stderr)
|
1976
|
-
end
|
1977
|
-
end
|
1978
|
-
end
|
1979
|
-
end
|
1980
|
-
|
1981
|
-
def test_use_gemdeps_specific
|
1982
|
-
with_local_bundler_at(Gem.dir) do
|
1983
|
-
with_rubygems_gemdeps("x") do
|
1984
|
-
spec = util_spec "a", 1
|
1985
|
-
install_specs spec
|
1986
|
-
|
1987
|
-
spec = Gem::Specification.find {|s| s == spec }
|
1988
|
-
refute spec.activated?
|
1989
|
-
|
1990
|
-
File.open "x", "w" do |io|
|
1991
|
-
io.write 'gem "a"'
|
1992
|
-
end
|
1993
|
-
|
1994
|
-
Gem.use_gemdeps
|
1995
|
-
|
1996
|
-
assert_equal add_bundler_full_name(%W[a-1]), loaded_spec_names
|
1997
|
-
end
|
1998
|
-
end
|
1999
|
-
end
|
2000
|
-
|
2001
1625
|
def test_operating_system_defaults
|
2002
1626
|
operating_system_defaults = Gem.operating_system_defaults
|
2003
1627
|
|
@@ -2061,13 +1685,8 @@ You may need to `bundle install` to install missing gems
|
|
2061
1685
|
end
|
2062
1686
|
|
2063
1687
|
def redefine_method(base, method, new_result)
|
2064
|
-
|
2065
|
-
|
2066
|
-
base.define_method(method) { new_result }
|
2067
|
-
else
|
2068
|
-
base.send(:alias_method, method, method)
|
2069
|
-
base.send(:define_method, method) { new_result }
|
2070
|
-
end
|
1688
|
+
base.alias_method(method, method)
|
1689
|
+
base.define_method(method) { new_result }
|
2071
1690
|
end
|
2072
1691
|
|
2073
1692
|
def with_plugin(path)
|
@@ -2115,40 +1734,4 @@ You may need to `bundle install` to install missing gems
|
|
2115
1734
|
def util_cache_dir
|
2116
1735
|
File.join Gem.dir, "cache"
|
2117
1736
|
end
|
2118
|
-
|
2119
|
-
def with_path_and_rubyopt(path_value, rubyopt_value)
|
2120
|
-
path, ENV["PATH"] = ENV["PATH"], path_value
|
2121
|
-
rubyopt, ENV["RUBYOPT"] = ENV["RUBYOPT"], rubyopt_value
|
2122
|
-
|
2123
|
-
yield
|
2124
|
-
ensure
|
2125
|
-
ENV["PATH"] = path
|
2126
|
-
ENV["RUBYOPT"] = rubyopt
|
2127
|
-
end
|
2128
|
-
|
2129
|
-
def with_rubygems_gemdeps(value)
|
2130
|
-
rubygems_gemdeps, ENV["RUBYGEMS_GEMDEPS"] = ENV["RUBYGEMS_GEMDEPS"], value
|
2131
|
-
|
2132
|
-
yield
|
2133
|
-
ensure
|
2134
|
-
ENV["RUBYGEMS_GEMDEPS"] = rubygems_gemdeps
|
2135
|
-
end
|
2136
|
-
|
2137
|
-
def with_local_bundler_at(path)
|
2138
|
-
require "bundler"
|
2139
|
-
|
2140
|
-
# If bundler gemspec exists, pretend it's installed
|
2141
|
-
bundler_gemspec = File.expand_path("../../bundler/bundler.gemspec", __dir__)
|
2142
|
-
if File.exist?(bundler_gemspec)
|
2143
|
-
target_gemspec_location = "#{path}/specifications/bundler-#{Bundler::VERSION}.gemspec"
|
2144
|
-
|
2145
|
-
FileUtils.mkdir_p File.dirname(target_gemspec_location)
|
2146
|
-
|
2147
|
-
File.write target_gemspec_location, Gem::Specification.load(bundler_gemspec).to_ruby_for_cache
|
2148
|
-
end
|
2149
|
-
|
2150
|
-
yield
|
2151
|
-
ensure
|
2152
|
-
Bundler.reset!
|
2153
|
-
end
|
2154
1737
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require_relative "helper"
|
3
|
+
require "rubygems/bundler_version_finder"
|
3
4
|
|
4
5
|
class TestGemBundlerVersionFinder < Gem::TestCase
|
5
6
|
def setup
|
@@ -78,7 +79,7 @@ class TestGemBundlerVersionFinder < Gem::TestCase
|
|
78
79
|
|
79
80
|
def test_deleted_directory
|
80
81
|
pend "Cannot perform this test on windows" if win_platform?
|
81
|
-
pend "Cannot perform this test on Solaris" if
|
82
|
+
pend "Cannot perform this test on Solaris" if RUBY_PLATFORM.include?("solaris")
|
82
83
|
require "tmpdir"
|
83
84
|
|
84
85
|
orig_dir = Dir.pwd
|
@@ -76,7 +76,7 @@ class TestGemCommandManager < Gem::TestCase
|
|
76
76
|
|
77
77
|
message = "Unknown command pish".dup
|
78
78
|
|
79
|
-
if
|
79
|
+
if defined?(DidYouMean::SPELL_CHECKERS) && defined?(DidYouMean::Correctable)
|
80
80
|
message << "\nDid you mean? \"push\""
|
81
81
|
end
|
82
82
|
|
@@ -126,6 +126,46 @@ class TestGemCommandManager < Gem::TestCase
|
|
126
126
|
@command_manager.unregister_command :crash
|
127
127
|
end
|
128
128
|
|
129
|
+
def test_process_args_with_c_flag
|
130
|
+
custom_start_point = File.join @tempdir, "nice_folder"
|
131
|
+
FileUtils.mkdir_p custom_start_point
|
132
|
+
|
133
|
+
execution_path = nil
|
134
|
+
use_ui @ui do
|
135
|
+
@command_manager[:install].when_invoked do
|
136
|
+
execution_path = Dir.pwd
|
137
|
+
true
|
138
|
+
end
|
139
|
+
@command_manager.process_args %W[-C #{custom_start_point} install net-scp-4.0.0.gem --local]
|
140
|
+
end
|
141
|
+
|
142
|
+
assert_equal custom_start_point, execution_path
|
143
|
+
end
|
144
|
+
|
145
|
+
def test_process_args_with_c_flag_without_path
|
146
|
+
use_ui @ui do
|
147
|
+
assert_raise Gem::MockGemUi::TermError do
|
148
|
+
@command_manager.process_args %w[-C install net-scp-4.0.0.gem --local]
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
assert_match(/install isn't a directory./i, @ui.error)
|
153
|
+
end
|
154
|
+
|
155
|
+
def test_process_args_with_c_flag_path_not_found
|
156
|
+
custom_start_point = File.join @tempdir, "nice_folder"
|
157
|
+
FileUtils.mkdir_p custom_start_point
|
158
|
+
custom_start_point.tr!("_", "-")
|
159
|
+
|
160
|
+
use_ui @ui do
|
161
|
+
assert_raise Gem::MockGemUi::TermError do
|
162
|
+
@command_manager.process_args %W[-C #{custom_start_point} install net-scp-4.0.0.gem --local]
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
assert_match(/#{custom_start_point} isn't a directory./i, @ui.error)
|
167
|
+
end
|
168
|
+
|
129
169
|
def test_process_args_bad_arg
|
130
170
|
use_ui @ui do
|
131
171
|
assert_raise Gem::MockGemUi::TermError do
|
@@ -41,6 +41,16 @@ class TestGemCommandsBuildCommand < Gem::TestCase
|
|
41
41
|
assert_includes Gem.platforms, Gem::Platform.local
|
42
42
|
end
|
43
43
|
|
44
|
+
def test_handle_deprecated_options
|
45
|
+
use_ui @ui do
|
46
|
+
@cmd.handle_options %w[-C ./test/dir]
|
47
|
+
end
|
48
|
+
|
49
|
+
assert_equal "WARNING: The \"-C\" option has been deprecated and will be removed in Rubygems 4.0. " \
|
50
|
+
"-C is a global flag now. Use `gem -C PATH build GEMSPEC_FILE [options]` instead\n",
|
51
|
+
@ui.error
|
52
|
+
end
|
53
|
+
|
44
54
|
def test_options_filename
|
45
55
|
gemspec_file = File.join(@tempdir, @gem.spec_name)
|
46
56
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require_relative "helper"
|
3
|
+
require_relative "test_gem_update_suggestion"
|
3
4
|
require "rubygems/commands/install_command"
|
4
5
|
require "rubygems/request_set"
|
5
6
|
require "rubygems/rdoc"
|
@@ -1550,4 +1551,22 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1550
1551
|
assert_equal " a-3", out.shift
|
1551
1552
|
assert_empty out
|
1552
1553
|
end
|
1554
|
+
|
1555
|
+
def test_suggest_update_if_enabled
|
1556
|
+
TestUpdateSuggestion.with_eglible_environment(cmd: @cmd) do
|
1557
|
+
spec_fetcher do |fetcher|
|
1558
|
+
fetcher.gem "a", 2
|
1559
|
+
end
|
1560
|
+
|
1561
|
+
@cmd.options[:args] = %w[a]
|
1562
|
+
|
1563
|
+
use_ui @ui do
|
1564
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1565
|
+
@cmd.execute
|
1566
|
+
end
|
1567
|
+
end
|
1568
|
+
|
1569
|
+
assert_includes @ui.output, "A new release of RubyGems is available: 1.2.3 → 2.0.0!"
|
1570
|
+
end
|
1571
|
+
end
|
1553
1572
|
end
|
@@ -15,6 +15,7 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
15
15
|
super
|
16
16
|
|
17
17
|
@cmd = Gem::Commands::SetupCommand.new
|
18
|
+
@cmd.options[:document] = []
|
18
19
|
|
19
20
|
filelist = %w[
|
20
21
|
bin/gem
|
@@ -66,7 +67,6 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
66
67
|
io.puts "I changed it!"
|
67
68
|
end
|
68
69
|
|
69
|
-
@cmd.options[:document] = []
|
70
70
|
@cmd.execute
|
71
71
|
|
72
72
|
assert_match %r{\A#!}, File.read(gem_bin_path)
|
@@ -78,7 +78,6 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
78
78
|
io.puts "I changed it!"
|
79
79
|
end
|
80
80
|
|
81
|
-
@cmd.options[:document] = []
|
82
81
|
@cmd.options[:regenerate_binstubs] = false
|
83
82
|
@cmd.execute
|
84
83
|
|
@@ -91,7 +90,6 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
91
90
|
io.puts "I changed it!"
|
92
91
|
end
|
93
92
|
|
94
|
-
@cmd.options[:document] = []
|
95
93
|
@cmd.execute
|
96
94
|
|
97
95
|
assert_match %r{\Arequire}, File.read(gem_plugin_path)
|
@@ -103,7 +101,6 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
103
101
|
io.puts "I changed it!"
|
104
102
|
end
|
105
103
|
|
106
|
-
@cmd.options[:document] = []
|
107
104
|
@cmd.options[:regenerate_plugins] = false
|
108
105
|
@cmd.execute
|
109
106
|
|
@@ -116,15 +113,12 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
116
113
|
# Simulate gem installed with an older rubygems without a plugins layout
|
117
114
|
FileUtils.rm_rf Gem.plugindir
|
118
115
|
|
119
|
-
@cmd.options[:document] = []
|
120
116
|
@cmd.execute
|
121
117
|
|
122
118
|
assert_match %r{\Arequire}, File.read(gem_plugin_path)
|
123
119
|
end
|
124
120
|
|
125
121
|
def test_execute_informs_about_installed_executables
|
126
|
-
@cmd.options[:document] = []
|
127
|
-
|
128
122
|
use_ui @ui do
|
129
123
|
@cmd.execute
|
130
124
|
end
|
@@ -143,7 +137,6 @@ class TestGemCommandsSetupCommand < Gem::TestCase
|
|
143
137
|
io.puts "I changed it!"
|
144
138
|
end
|
145
139
|
|
146
|
-
@cmd.options[:document] = []
|
147
140
|
@cmd.options[:env_shebang] = true
|
148
141
|
@cmd.execute
|
149
142
|
|
@@ -669,10 +669,10 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
669
669
|
@cmd.handle_options %w[--system]
|
670
670
|
|
671
671
|
expected = {
|
672
|
-
:args
|
672
|
+
:args => [],
|
673
673
|
:document => %w[ri],
|
674
|
-
:force
|
675
|
-
:system
|
674
|
+
:force => false,
|
675
|
+
:system => true,
|
676
676
|
}
|
677
677
|
|
678
678
|
assert_equal expected, @cmd.options
|
@@ -688,10 +688,10 @@ class TestGemCommandsUpdateCommand < Gem::TestCase
|
|
688
688
|
@cmd.handle_options %w[--system 1.3.7]
|
689
689
|
|
690
690
|
expected = {
|
691
|
-
:args
|
691
|
+
:args => [],
|
692
692
|
:document => %w[ri],
|
693
|
-
:force
|
694
|
-
:system
|
693
|
+
:force => false,
|
694
|
+
:system => "1.3.7",
|
695
695
|
}
|
696
696
|
|
697
697
|
assert_equal expected, @cmd.options
|
@@ -330,7 +330,7 @@ if you believe they were disclosed to a third party.
|
|
330
330
|
util_config_file
|
331
331
|
|
332
332
|
assert_equal({ :rubygems => "701229f217cdf23b1344c7b4b54ca97",
|
333
|
-
|
333
|
+
:other => "a5fdbb6ba150cbb83aad2bb2fede64c" }, @cfg.api_keys)
|
334
334
|
end
|
335
335
|
|
336
336
|
def test_load_api_keys_bad_permission
|
@@ -358,6 +358,8 @@ class TestGemDependency < Gem::TestCase
|
|
358
358
|
|
359
359
|
assert_equal [b, b_1], dep.to_specs
|
360
360
|
|
361
|
+
require "rubygems/bundler_version_finder"
|
362
|
+
|
361
363
|
Gem::BundlerVersionFinder.stub(:bundler_version, Gem::Version.new("1")) do
|
362
364
|
assert_equal [b_1, b], dep.to_specs
|
363
365
|
end
|