rubygems-update 3.0.3 → 3.4.7
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 +5556 -0
- data/CODE_OF_CONDUCT.md +62 -24
- data/CONTRIBUTING.md +111 -21
- data/MAINTAINERS.txt +1 -6
- data/Manifest.txt +209 -101
- data/POLICIES.md +65 -22
- data/README.md +23 -15
- data/UPGRADING.md +5 -81
- data/bin/gem +2 -16
- data/bin/update_rubygems +5 -5
- data/bundler/CHANGELOG.md +2619 -1256
- data/bundler/LICENSE.md +18 -19
- data/bundler/README.md +11 -12
- data/bundler/UPGRADING.md +222 -0
- data/bundler/bundler.gemspec +13 -33
- data/bundler/exe/bundle +26 -11
- data/bundler/exe/bundler +1 -1
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +5 -13
- data/bundler/lib/bundler/capistrano.rb +4 -4
- data/bundler/lib/bundler/cli/add.rb +28 -16
- data/bundler/lib/bundler/cli/binstubs.rb +11 -3
- data/bundler/lib/bundler/cli/cache.rb +24 -17
- data/bundler/lib/bundler/cli/check.rb +5 -3
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +41 -13
- data/bundler/lib/bundler/cli/config.rb +170 -86
- data/bundler/lib/bundler/cli/console.rb +3 -3
- data/bundler/lib/bundler/cli/doctor.rb +27 -10
- data/bundler/lib/bundler/cli/exec.rb +8 -25
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +261 -48
- data/bundler/lib/bundler/cli/info.rb +52 -8
- data/bundler/lib/bundler/cli/init.rb +7 -3
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +38 -66
- data/bundler/lib/bundler/cli/issue.rb +8 -7
- data/bundler/lib/bundler/cli/list.rb +19 -11
- data/bundler/lib/bundler/cli/lock.rb +11 -4
- data/bundler/lib/bundler/cli/open.rb +14 -9
- data/bundler/lib/bundler/cli/outdated.rb +152 -121
- data/bundler/lib/bundler/cli/platform.rb +2 -2
- data/bundler/lib/bundler/cli/plugin.rb +19 -2
- data/bundler/lib/bundler/cli/pristine.rb +6 -1
- data/bundler/lib/bundler/cli/remove.rb +1 -2
- data/bundler/lib/bundler/cli/show.rb +3 -3
- data/bundler/lib/bundler/cli/update.rb +49 -18
- data/bundler/lib/bundler/cli/viz.rb +1 -1
- data/bundler/lib/bundler/cli.rb +269 -165
- data/bundler/lib/bundler/compact_index_client/cache.rb +7 -24
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +58 -57
- data/bundler/lib/bundler/compact_index_client.rb +28 -18
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +26 -11
- data/bundler/lib/bundler/definition.rb +359 -441
- data/bundler/lib/bundler/dependency.rb +29 -71
- data/bundler/lib/bundler/deployment.rb +1 -1
- data/bundler/lib/bundler/digest.rb +71 -0
- data/bundler/lib/bundler/dsl.rb +84 -116
- data/bundler/lib/bundler/endpoint_specification.rb +20 -14
- data/bundler/lib/bundler/env.rb +10 -15
- data/bundler/lib/bundler/environment_preserver.rb +30 -3
- data/bundler/lib/bundler/errors.rb +31 -14
- data/bundler/lib/bundler/feature_flag.rb +13 -33
- data/bundler/lib/bundler/fetcher/base.rb +7 -9
- data/bundler/lib/bundler/fetcher/compact_index.rb +46 -39
- data/bundler/lib/bundler/fetcher/dependency.rb +2 -2
- data/bundler/lib/bundler/fetcher/downloader.rb +15 -12
- data/bundler/lib/bundler/fetcher/index.rb +4 -30
- data/bundler/lib/bundler/fetcher.rb +39 -41
- data/bundler/lib/bundler/force_platform.rb +18 -0
- data/bundler/lib/bundler/friendly_errors.rb +49 -54
- data/bundler/lib/bundler/gem_helper.rb +79 -43
- data/bundler/lib/bundler/gem_helpers.rb +44 -28
- data/bundler/lib/bundler/gem_tasks.rb +1 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +54 -99
- data/bundler/lib/bundler/graph.rb +5 -5
- data/bundler/lib/bundler/index.rb +14 -52
- data/bundler/lib/bundler/injector.rb +50 -16
- data/bundler/lib/bundler/inline.rb +28 -29
- data/bundler/lib/bundler/installer/gem_installer.rb +22 -23
- data/bundler/lib/bundler/installer/parallel_installer.rb +51 -51
- data/bundler/lib/bundler/installer/standalone.rb +62 -12
- data/bundler/lib/bundler/installer.rb +46 -97
- data/bundler/lib/bundler/lazy_specification.rb +88 -48
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +30 -62
- data/bundler/{man → lib/bundler/man}/bundle-add.1 +29 -5
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +22 -4
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +6 -4
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +3 -5
- data/bundler/lib/bundler/man/bundle-cache.1 +61 -0
- data/bundler/{man/bundle-package.ronn → lib/bundler/man/bundle-cache.1.ronn} +22 -15
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +2 -2
- data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +78 -60
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +96 -85
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-exec.1 +6 -6
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +6 -6
- data/bundler/lib/bundler/man/bundle-gem.1 +105 -0
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +117 -0
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-init.1 +6 -2
- data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +3 -1
- data/bundler/{man → lib/bundler/man}/bundle-inject.1 +5 -2
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +3 -1
- data/bundler/{man → lib/bundler/man}/bundle-install.1 +42 -37
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +42 -38
- data/bundler/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/bundler/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-open.1 +22 -2
- data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +9 -1
- data/bundler/{man → lib/bundler/man}/bundle-outdated.1 +3 -10
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +1 -10
- data/bundler/{man → lib/bundler/man}/bundle-platform.1 +16 -6
- data/bundler/{man/bundle-platform.ronn → 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/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-update.1 +8 -8
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +8 -7
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/{man → lib/bundler/man}/bundle-viz.1 +4 -1
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +2 -0
- data/bundler/{man → lib/bundler/man}/bundle.1 +17 -12
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +14 -9
- data/bundler/lib/bundler/man/gemfile.5 +723 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +112 -95
- data/bundler/lib/bundler/man/index.txt +29 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_platform.rb +1 -2
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +10 -12
- data/bundler/lib/bundler/plugin/api/source.rb +29 -15
- data/bundler/lib/bundler/plugin/api.rb +1 -1
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +31 -8
- data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -9
- data/bundler/lib/bundler/plugin/installer.rb +35 -22
- data/bundler/lib/bundler/plugin/source_list.rb +5 -1
- data/bundler/lib/bundler/plugin.rb +102 -42
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/remote_specification.rb +15 -8
- data/bundler/lib/bundler/resolver/base.rb +77 -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 +49 -73
- data/bundler/lib/bundler/resolver.rb +343 -300
- data/bundler/lib/bundler/retry.rb +4 -4
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +9 -37
- data/bundler/lib/bundler/rubygems_ext.rb +235 -92
- data/bundler/lib/bundler/rubygems_gem_installer.rb +87 -21
- data/bundler/lib/bundler/rubygems_integration.rb +179 -515
- data/bundler/lib/bundler/runtime.rb +25 -40
- data/bundler/lib/bundler/self_manager.rb +168 -0
- data/bundler/lib/bundler/settings.rb +162 -118
- data/bundler/lib/bundler/setup.rb +11 -12
- data/bundler/lib/bundler/shared_helpers.rb +61 -102
- data/bundler/lib/bundler/similarity_detector.rb +3 -3
- data/bundler/lib/bundler/source/git/git_proxy.rb +257 -128
- data/bundler/lib/bundler/source/git.rb +84 -61
- data/bundler/lib/bundler/source/metadata.rb +9 -9
- data/bundler/lib/bundler/source/path/installer.rb +11 -32
- data/bundler/lib/bundler/source/path.rb +28 -17
- data/bundler/lib/bundler/source/rubygems/remote.rb +3 -4
- data/bundler/lib/bundler/source/rubygems.rb +171 -197
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
- data/bundler/lib/bundler/source.rb +30 -10
- data/bundler/lib/bundler/source_list.rb +112 -67
- data/bundler/lib/bundler/source_map.rb +71 -0
- data/bundler/lib/bundler/spec_set.rb +86 -72
- data/bundler/lib/bundler/stub_specification.rb +45 -37
- data/bundler/lib/bundler/templates/Executable +3 -5
- data/bundler/lib/bundler/templates/Executable.bundler +21 -17
- data/bundler/lib/bundler/templates/Executable.standalone +4 -4
- data/bundler/lib/bundler/templates/Gemfile +0 -2
- data/bundler/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +22 -2
- data/bundler/lib/bundler/templates/newgem/README.md.tt +13 -15
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +33 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +25 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +2 -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 +37 -0
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +36 -41
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/test/minitest/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/test_newgem.rb.tt} +3 -1
- data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
- data/bundler/lib/bundler/ui/shell.rb +39 -20
- data/bundler/lib/bundler/ui/silent.rb +21 -5
- data/bundler/lib/bundler/ui.rb +3 -3
- data/bundler/lib/bundler/uri_credentials_filter.rb +10 -4
- data/bundler/lib/bundler/vendor/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +174 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +56 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +128 -0
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1493 -425
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +302 -462
- 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 +155 -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 +243 -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/LICENSE.md +20 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +3 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +7 -17
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +25 -14
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +20 -10
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +34 -15
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +63 -43
- data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +21 -14
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +6 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +83 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +6 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +29 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +7 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +20 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +40 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +1 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +15 -14
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +88 -13
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +10 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +3 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +5 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +18 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +16 -9
- data/bundler/lib/bundler/vendor/tsort/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
- data/bundler/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +729 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +100 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +267 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1587 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +125 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +23 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +261 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +293 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +539 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +119 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +6 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +104 -0
- data/bundler/lib/bundler/vendored_fileutils.rb +1 -6
- data/bundler/lib/bundler/vendored_persistent.rb +2 -39
- data/bundler/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
- data/bundler/lib/bundler/vendored_thor.rb +2 -2
- data/bundler/lib/bundler/vendored_tsort.rb +4 -0
- data/bundler/lib/bundler/vendored_uri.rb +4 -0
- data/bundler/lib/bundler/version.rb +5 -20
- data/bundler/lib/bundler/vlad.rb +2 -2
- data/bundler/lib/bundler/worker.rb +26 -15
- data/bundler/lib/bundler/yaml_serializer.rb +3 -4
- data/bundler/lib/bundler.rb +285 -183
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +7 -8
- data/lib/rubygems/basic_specification.rb +44 -31
- data/lib/rubygems/bundler_version_finder.rb +28 -50
- data/lib/rubygems/command.rb +104 -46
- data/lib/rubygems/command_manager.rb +35 -16
- data/lib/rubygems/commands/build_command.rb +77 -26
- data/lib/rubygems/commands/cert_command.rb +78 -76
- data/lib/rubygems/commands/check_command.rb +20 -22
- data/lib/rubygems/commands/cleanup_command.rb +36 -32
- data/lib/rubygems/commands/contents_command.rb +16 -18
- data/lib/rubygems/commands/dependency_command.rb +39 -50
- data/lib/rubygems/commands/environment_command.rb +11 -13
- data/lib/rubygems/commands/fetch_command.rb +33 -16
- data/lib/rubygems/commands/generate_index_command.rb +18 -17
- data/lib/rubygems/commands/help_command.rb +7 -7
- data/lib/rubygems/commands/info_command.rb +11 -6
- data/lib/rubygems/commands/install_command.rb +45 -79
- data/lib/rubygems/commands/list_command.rb +9 -8
- data/lib/rubygems/commands/lock_command.rb +7 -9
- data/lib/rubygems/commands/mirror_command.rb +3 -4
- data/lib/rubygems/commands/open_command.rb +11 -14
- data/lib/rubygems/commands/outdated_command.rb +5 -6
- data/lib/rubygems/commands/owner_command.rb +29 -22
- data/lib/rubygems/commands/pristine_command.rb +61 -51
- data/lib/rubygems/commands/push_command.rb +26 -63
- data/lib/rubygems/commands/query_command.rb +21 -337
- data/lib/rubygems/commands/rdoc_command.rb +26 -26
- data/lib/rubygems/commands/search_command.rb +8 -8
- data/lib/rubygems/commands/server_command.rb +16 -77
- data/lib/rubygems/commands/setup_command.rb +282 -241
- data/lib/rubygems/commands/signin_command.rb +9 -10
- data/lib/rubygems/commands/signout_command.rb +7 -9
- data/lib/rubygems/commands/sources_command.rb +42 -26
- data/lib/rubygems/commands/specification_command.rb +25 -20
- data/lib/rubygems/commands/stale_command.rb +3 -3
- data/lib/rubygems/commands/uninstall_command.rb +58 -49
- data/lib/rubygems/commands/unpack_command.rb +15 -44
- data/lib/rubygems/commands/update_command.rb +133 -81
- data/lib/rubygems/commands/which_command.rb +8 -11
- data/lib/rubygems/commands/yank_command.rb +22 -19
- data/lib/rubygems/compatibility.rb +7 -5
- data/lib/rubygems/config_file.rb +101 -47
- data/lib/rubygems/core_ext/kernel_gem.rb +8 -12
- data/lib/rubygems/core_ext/kernel_require.rb +124 -83
- data/lib/rubygems/core_ext/kernel_warn.rb +35 -30
- data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
- data/lib/rubygems/defaults.rb +131 -55
- data/lib/rubygems/dependency.rb +44 -27
- data/lib/rubygems/dependency_installer.rb +49 -205
- data/lib/rubygems/dependency_list.rb +24 -25
- data/lib/rubygems/deprecate.rb +106 -12
- data/lib/rubygems/doctor.rb +22 -22
- data/lib/rubygems/errors.rb +8 -14
- data/lib/rubygems/exceptions.rb +35 -33
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +71 -95
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
- data/lib/rubygems/ext/cargo_builder.rb +360 -0
- data/lib/rubygems/ext/cmake_builder.rb +6 -7
- data/lib/rubygems/ext/configure_builder.rb +5 -8
- data/lib/rubygems/ext/ext_conf_builder.rb +45 -65
- data/lib/rubygems/ext/rake_builder.rb +7 -10
- data/lib/rubygems/ext.rb +7 -6
- data/lib/rubygems/gem_runner.rb +15 -26
- data/lib/rubygems/gemcutter_utilities.rb +179 -54
- data/lib/rubygems/indexer.rb +38 -53
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +73 -64
- data/lib/rubygems/installer.rb +230 -173
- data/lib/rubygems/installer_uninstaller_utils.rb +29 -0
- data/lib/rubygems/local_remote_options.rb +22 -24
- data/lib/rubygems/mock_gem_ui.rb +2 -5
- data/lib/rubygems/name_tuple.rb +10 -14
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/optparse/.document +1 -0
- data/lib/rubygems/optparse/COPYING +56 -0
- data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
- data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
- data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
- data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
- data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
- data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
- data/lib/rubygems/optparse/lib/optparse.rb +2308 -0
- data/lib/rubygems/optparse.rb +3 -0
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +2 -4
- data/lib/rubygems/package/io_source.rb +4 -2
- data/lib/rubygems/package/old.rb +9 -11
- data/lib/rubygems/package/tar_header.rb +73 -66
- data/lib/rubygems/package/tar_reader/entry.rb +8 -9
- data/lib/rubygems/package/tar_reader.rb +16 -13
- data/lib/rubygems/package/tar_writer.rb +12 -22
- data/lib/rubygems/package.rb +142 -125
- data/lib/rubygems/package_task.rb +5 -11
- data/lib/rubygems/path_support.rb +3 -8
- data/lib/rubygems/platform.rb +113 -73
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/query_utils.rb +351 -0
- data/lib/rubygems/rdoc.rb +4 -16
- data/lib/rubygems/remote_fetcher.rb +64 -136
- data/lib/rubygems/request/connection_pools.rb +7 -11
- data/lib/rubygems/request/http_pool.rb +2 -3
- data/lib/rubygems/request.rb +31 -32
- data/lib/rubygems/request_set/gem_dependency_api.rb +135 -136
- data/lib/rubygems/request_set/lockfile/parser.rb +28 -28
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -5
- data/lib/rubygems/request_set/lockfile.rb +21 -20
- data/lib/rubygems/request_set.rb +30 -43
- data/lib/rubygems/requirement.rb +42 -64
- data/lib/rubygems/resolver/activation_request.rb +29 -53
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_set.rb +33 -26
- data/lib/rubygems/resolver/api_specification.rb +30 -16
- data/lib/rubygems/resolver/best_set.rb +9 -11
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +12 -19
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +3 -5
- data/lib/rubygems/resolver/git_set.rb +2 -4
- data/lib/rubygems/resolver/git_specification.rb +6 -8
- data/lib/rubygems/resolver/index_set.rb +4 -6
- data/lib/rubygems/resolver/index_specification.rb +38 -7
- data/lib/rubygems/resolver/installed_specification.rb +4 -6
- data/lib/rubygems/resolver/installer_set.rb +69 -27
- data/lib/rubygems/resolver/local_specification.rb +2 -4
- data/lib/rubygems/resolver/lock_set.rb +7 -9
- data/lib/rubygems/resolver/lock_specification.rb +6 -8
- data/lib/rubygems/resolver/molinillo/LICENSE +9 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +8 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +51 -12
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +42 -9
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +82 -8
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +13 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +510 -165
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/requirement_list.rb +0 -1
- data/lib/rubygems/resolver/set.rb +0 -3
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +14 -2
- data/lib/rubygems/resolver/specification.rb +14 -3
- data/lib/rubygems/resolver/vendor_set.rb +1 -3
- data/lib/rubygems/resolver/vendor_specification.rb +3 -5
- data/lib/rubygems/resolver.rb +58 -54
- data/lib/rubygems/s3_uri_signer.rb +175 -0
- data/lib/rubygems/safe_yaml.rb +14 -16
- data/lib/rubygems/security/policies.rb +47 -47
- data/lib/rubygems/security/policy.rb +25 -29
- data/lib/rubygems/security/signer.rb +16 -18
- data/lib/rubygems/security/trust_dir.rb +5 -6
- data/lib/rubygems/security.rb +90 -69
- data/lib/rubygems/security_option.rb +7 -8
- data/lib/rubygems/source/git.rb +30 -30
- data/lib/rubygems/source/installed.rb +1 -3
- data/lib/rubygems/source/local.rb +4 -6
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +1 -3
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source.rb +50 -38
- data/lib/rubygems/source_list.rb +9 -13
- data/lib/rubygems/spec_fetcher.rb +52 -64
- data/lib/rubygems/specification.rb +432 -463
- data/lib/rubygems/specification_policy.rb +185 -87
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +24 -29
- data/lib/rubygems/text.rb +21 -21
- data/lib/rubygems/tsort/.document +1 -0
- data/lib/rubygems/tsort/LICENSE.txt +22 -0
- data/lib/rubygems/tsort/lib/tsort.rb +452 -0
- data/lib/rubygems/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +110 -57
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/update_suggestion.rb +69 -0
- data/lib/rubygems/uri.rb +126 -0
- data/lib/rubygems/uri_formatter.rb +2 -4
- data/lib/rubygems/user_interaction.rb +46 -49
- data/lib/rubygems/util/licenses.rb +511 -404
- data/lib/rubygems/util.rb +40 -56
- data/lib/rubygems/validator.rb +15 -37
- data/lib/rubygems/version.rb +48 -29
- data/lib/rubygems/version_option.rb +11 -5
- data/lib/rubygems.rb +305 -332
- data/rubygems-update.gemspec +6 -13
- data/setup.rb +11 -22
- 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/bundler_test_gem.rb +419 -0
- data/test/rubygems/ca_cert.pem +74 -65
- 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/client.pem +103 -45
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +26 -26
- data/test/rubygems/expired_cert.pem +15 -15
- data/test/rubygems/future_cert.pem +15 -15
- data/test/rubygems/future_cert_32.pem +15 -15
- 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/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +505 -507
- data/{lib → test}/rubygems/installer_test_case.rb +115 -53
- 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/{lib → test}/rubygems/package/tar_test_case.rb +4 -6
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
- data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/private_ec_key.pem +9 -0
- 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 +0 -2
- data/test/rubygems/rubygems_plugin.rb +2 -4
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
- data/test/rubygems/ssl_cert.pem +78 -17
- data/test/rubygems/ssl_key.pem +25 -13
- data/test/rubygems/test_bundled_ca.rb +44 -47
- data/test/rubygems/test_config.rb +5 -7
- data/test/rubygems/test_deprecate.rb +90 -10
- data/test/rubygems/test_exit.rb +17 -0
- data/test/rubygems/test_gem.rb +679 -885
- data/test/rubygems/test_gem_available_set.rb +24 -25
- data/test/rubygems/test_gem_bundler_version_finder.rb +42 -42
- data/test/rubygems/test_gem_command.rb +186 -39
- data/test/rubygems/test_gem_command_manager.rb +166 -36
- data/test/rubygems/test_gem_commands_build_command.rb +436 -52
- data/test/rubygems/test_gem_commands_cert_command.rb +193 -124
- data/test/rubygems/test_gem_commands_check_command.rb +9 -11
- data/test/rubygems/test_gem_commands_cleanup_command.rb +87 -62
- data/test/rubygems/test_gem_commands_contents_command.rb +73 -42
- data/test/rubygems/test_gem_commands_dependency_command.rb +39 -41
- data/test/rubygems/test_gem_commands_environment_command.rb +60 -48
- data/test/rubygems/test_gem_commands_fetch_command.rb +163 -32
- data/test/rubygems/test_gem_commands_generate_index_command.rb +39 -9
- data/test/rubygems/test_gem_commands_help_command.rb +34 -19
- data/test/rubygems/test_gem_commands_info_command.rb +34 -9
- data/test/rubygems/test_gem_commands_install_command.rb +600 -173
- data/test/rubygems/test_gem_commands_list_command.rb +5 -7
- data/test/rubygems/test_gem_commands_lock_command.rb +11 -13
- data/test/rubygems/test_gem_commands_mirror.rb +3 -4
- data/test/rubygems/test_gem_commands_open_command.rb +16 -19
- data/test/rubygems/test_gem_commands_outdated_command.rb +24 -7
- data/test/rubygems/test_gem_commands_owner_command.rb +183 -49
- data/test/rubygems/test_gem_commands_pristine_command.rb +222 -89
- data/test/rubygems/test_gem_commands_push_command.rb +178 -69
- data/test/rubygems/test_gem_commands_query_command.rb +114 -89
- data/test/rubygems/test_gem_commands_search_command.rb +2 -4
- data/test/rubygems/test_gem_commands_server_command.rb +6 -46
- data/test/rubygems/test_gem_commands_setup_command.rb +334 -157
- data/test/rubygems/test_gem_commands_signin_command.rb +187 -27
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -10
- data/test/rubygems/test_gem_commands_sources_command.rb +266 -33
- data/test/rubygems/test_gem_commands_specification_command.rb +81 -55
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -6
- data/test/rubygems/test_gem_commands_uninstall_command.rb +230 -95
- data/test/rubygems/test_gem_commands_unpack_command.rb +32 -34
- data/test/rubygems/test_gem_commands_update_command.rb +412 -102
- data/test/rubygems/test_gem_commands_which_command.rb +12 -14
- data/test/rubygems/test_gem_commands_yank_command.rb +107 -26
- data/test/rubygems/test_gem_config_file.rb +120 -96
- data/test/rubygems/test_gem_dependency.rb +94 -86
- data/test/rubygems/test_gem_dependency_installer.rb +305 -388
- data/test/rubygems/test_gem_dependency_list.rb +66 -61
- data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -7
- data/test/rubygems/test_gem_doctor.rb +73 -47
- data/test/rubygems/test_gem_ext_builder.rb +116 -106
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +8 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +233 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +27 -0
- 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/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +233 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +51 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +166 -0
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +60 -0
- data/test/rubygems/test_gem_ext_cmake_builder.rb +32 -37
- data/test/rubygems/test_gem_ext_configure_builder.rb +23 -31
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +75 -79
- data/test/rubygems/test_gem_ext_rake_builder.rb +49 -30
- data/test/rubygems/test_gem_gem_runner.rb +52 -7
- data/test/rubygems/test_gem_gemcutter_utilities.rb +91 -76
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -6
- data/test/rubygems/test_gem_indexer.rb +120 -105
- data/test/rubygems/test_gem_install_update_options.rb +57 -33
- data/test/rubygems/test_gem_installer.rb +1230 -644
- data/test/rubygems/test_gem_local_remote_options.rb +11 -13
- data/test/rubygems/test_gem_name_tuple.rb +4 -6
- data/test/rubygems/test_gem_package.rb +396 -266
- data/test/rubygems/test_gem_package_old.rb +57 -56
- data/test/rubygems/test_gem_package_tar_header.rb +108 -50
- data/test/rubygems/test_gem_package_tar_reader.rb +8 -10
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +77 -20
- data/test/rubygems/test_gem_package_tar_writer.rb +107 -101
- data/test/rubygems/test_gem_package_task.rb +58 -25
- data/test/rubygems/test_gem_path_support.rb +29 -29
- data/test/rubygems/test_gem_platform.rb +388 -199
- data/test/rubygems/test_gem_rdoc.rb +20 -155
- data/test/rubygems/test_gem_remote_fetcher.rb +474 -303
- data/test/rubygems/test_gem_request.rb +128 -85
- data/test/rubygems/test_gem_request_connection_pools.rb +32 -32
- data/test/rubygems/test_gem_request_set.rb +186 -110
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +280 -261
- data/test/rubygems/test_gem_request_set_lockfile.rb +93 -94
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +68 -69
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +136 -136
- data/test/rubygems/test_gem_requirement.rb +140 -55
- data/test/rubygems/test_gem_resolver.rb +224 -115
- data/test/rubygems/test_gem_resolver_activation_request.rb +9 -40
- data/test/rubygems/test_gem_resolver_api_set.rb +79 -78
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -49
- data/test/rubygems/test_gem_resolver_best_set.rb +43 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -3
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -18
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -17
- data/test/rubygems/test_gem_resolver_git_set.rb +22 -24
- data/test/rubygems/test_gem_resolver_git_specification.rb +22 -22
- data/test/rubygems/test_gem_resolver_index_set.rb +14 -16
- data/test/rubygems/test_gem_resolver_index_specification.rb +21 -18
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -8
- data/test/rubygems/test_gem_resolver_installer_set.rb +106 -44
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -9
- data/test/rubygems/test_gem_resolver_lock_set.rb +15 -17
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -19
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -3
- data/test/rubygems/test_gem_resolver_specification.rb +8 -10
- data/test/rubygems/test_gem_resolver_vendor_set.rb +9 -11
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -12
- data/test/rubygems/test_gem_security.rb +109 -79
- data/test/rubygems/test_gem_security_policy.rb +102 -107
- data/test/rubygems/test_gem_security_signer.rb +51 -52
- data/test/rubygems/test_gem_security_trust_dir.rb +14 -16
- data/test/rubygems/test_gem_silent_ui.rb +47 -42
- data/test/rubygems/test_gem_source.rb +66 -51
- data/test/rubygems/test_gem_source_fetch_problem.rb +17 -8
- data/test/rubygems/test_gem_source_git.rb +74 -74
- data/test/rubygems/test_gem_source_installed.rb +16 -18
- data/test/rubygems/test_gem_source_list.rb +5 -5
- data/test/rubygems/test_gem_source_local.rb +15 -16
- data/test/rubygems/test_gem_source_lock.rb +31 -33
- data/test/rubygems/test_gem_source_specific_file.rb +18 -19
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_source_vendor.rb +13 -15
- data/test/rubygems/test_gem_spec_fetcher.rb +74 -67
- data/test/rubygems/test_gem_specification.rb +1051 -1071
- data/test/rubygems/test_gem_stream_ui.rb +25 -23
- data/test/rubygems/test_gem_stub_specification.rb +39 -56
- data/test/rubygems/test_gem_text.rb +8 -3
- data/test/rubygems/test_gem_uninstaller.rb +269 -100
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -5
- data/test/rubygems/test_gem_update_suggestion.rb +208 -0
- data/test/rubygems/test_gem_uri.rb +39 -0
- data/test/rubygems/test_gem_uri_formatter.rb +14 -16
- data/test/rubygems/test_gem_util.rb +46 -34
- data/test/rubygems/test_gem_validator.rb +12 -15
- data/test/rubygems/test_gem_version.rb +49 -34
- data/test/rubygems/test_gem_version_option.rb +16 -18
- data/test/rubygems/test_kernel.rb +61 -53
- data/test/rubygems/test_project_sanity.rb +20 -0
- data/test/rubygems/test_remote_fetch_error.rb +7 -8
- data/test/rubygems/test_require.rb +415 -121
- data/test/rubygems/test_rubygems.rb +74 -0
- data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +74 -50
- 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 +17 -0
- metadata +218 -244
- data/.rubocop.yml +0 -66
- data/.travis.yml +0 -38
- data/History.txt +0 -3965
- data/Rakefile +0 -372
- data/appveyor.yml +0 -43
- data/bundler/CODE_OF_CONDUCT.md +0 -42
- data/bundler/CONTRIBUTING.md +0 -17
- data/bundler/exe/bundle_ruby +0 -60
- data/bundler/lib/bundler/cli/package.rb +0 -49
- data/bundler/lib/bundler/compatibility_guard.rb +0 -14
- data/bundler/lib/bundler/dep_proxy.rb +0 -48
- data/bundler/lib/bundler/gem_remote_fetcher.rb +0 -43
- data/bundler/lib/bundler/gemdeps.rb +0 -29
- data/bundler/lib/bundler/psyched_yaml.rb +0 -37
- data/bundler/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
- data/bundler/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/bundler/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/bundler/lib/bundler/templates/gems.rb +0 -8
- data/bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt +0 -4
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -7
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- 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 -81
- 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 -136
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -223
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
- 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 -101
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -837
- 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 -12
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/io_binary_read.rb +0 -12
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +0 -129
- data/bundler/lib/bundler/version_ranges.rb +0 -76
- data/bundler/man/bundle-gem.1 +0 -80
- data/bundler/man/bundle-gem.ronn +0 -78
- data/bundler/man/bundle-package.1 +0 -55
- data/lib/rubygems/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -878
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/lib/rubygems/syck_hack.rb +0 -77
- data/lib/ubygems.rb +0 -14
- data/test/rubygems/bogussources.rb +0 -9
- data/test/rubygems/data/null-type.gemspec.rz +0 -0
- data/test/rubygems/test_gem_server.rb +0 -607
- data/util/CL2notes +0 -55
- data/util/ci +0 -77
- data/util/create_certs.rb +0 -171
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -61
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -139
- data/util/update_changelog.rb +0 -67
- /data/bundler/lib/bundler/{ssl_certs → man}/.document +0 -0
- /data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- /data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- /data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- /data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- /data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- /data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- /data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- /data/{bundler/lib/bundler/ssl_certs/index.rubygems.org → lib/rubygems/ssl_certs/rubygems.org}/GlobalSignRootCA.pem +0 -0
@@ -1,16 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require
|
4
|
-
require
|
2
|
+
require_relative "helper"
|
3
|
+
require "rubygems/dependency_installer"
|
4
|
+
require "rubygems/security"
|
5
5
|
|
6
6
|
class TestGemDependencyInstaller < Gem::TestCase
|
7
|
-
|
8
7
|
def setup
|
9
8
|
super
|
10
9
|
common_installer_setup
|
11
10
|
|
12
|
-
@gems_dir = File.join @tempdir,
|
13
|
-
@cache_dir = File.join @gemhome,
|
11
|
+
@gems_dir = File.join @tempdir, "gems"
|
12
|
+
@cache_dir = File.join @gemhome, "cache"
|
14
13
|
|
15
14
|
FileUtils.mkdir @gems_dir
|
16
15
|
|
@@ -26,78 +25,26 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
26
25
|
end
|
27
26
|
|
28
27
|
def util_setup_gems
|
29
|
-
@a1, @a1_gem
|
30
|
-
|
31
|
-
@b1, @b1_gem = util_gem 'b', '1' do |s|
|
32
|
-
s.add_dependency 'a'
|
33
|
-
s.add_development_dependency 'aa'
|
28
|
+
@a1, @a1_gem = util_gem "a", "1" do |s|
|
29
|
+
s.executables << "a_bin"
|
34
30
|
end
|
35
31
|
|
36
|
-
@
|
37
|
-
s.add_development_dependency 'b'
|
38
|
-
end
|
32
|
+
@a1_pre, @a1_pre_gem = util_gem "a", "1.a"
|
39
33
|
|
40
|
-
@
|
41
|
-
s.
|
34
|
+
@b1, @b1_gem = util_gem "b", "1" do |s|
|
35
|
+
s.add_dependency "a"
|
36
|
+
s.add_development_dependency "aa"
|
42
37
|
end
|
43
38
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
def test_available_set_for_name
|
49
|
-
util_setup_gems
|
50
|
-
p1a, = util_gem 'a', '10.a'
|
51
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
52
|
-
|
53
|
-
inst = Gem::DependencyInstaller.new
|
54
|
-
|
55
|
-
available = inst.available_set_for 'a', Gem::Requirement.default
|
56
|
-
|
57
|
-
assert_equal %w[a-1], available.set.map { |s| s.spec.full_name }
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_available_set_for_name_prerelease
|
61
|
-
util_setup_gems
|
62
|
-
p1a, = util_gem 'a', '10.a'
|
63
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
64
|
-
|
65
|
-
inst = Gem::DependencyInstaller.new :prerelease => true
|
66
|
-
|
67
|
-
available = inst.available_set_for 'a', Gem::Requirement.default
|
68
|
-
|
69
|
-
assert_equal %w[a-10.a],
|
70
|
-
available.sorted.map { |s| s.spec.full_name }
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_available_set_for_dep
|
74
|
-
util_setup_gems
|
75
|
-
p1a, = util_gem 'a', '10.a'
|
76
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
77
|
-
|
78
|
-
inst = Gem::DependencyInstaller.new
|
79
|
-
|
80
|
-
dep = Gem::Dependency.new 'a', Gem::Requirement.default
|
81
|
-
|
82
|
-
available = inst.available_set_for dep, Gem::Requirement.default
|
83
|
-
|
84
|
-
assert_equal %w[a-1], available.set.map { |s| s.spec.full_name }
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_available_set_for_dep_prerelease
|
88
|
-
util_setup_gems
|
89
|
-
p1a, = util_gem 'a', '10.a'
|
90
|
-
util_setup_spec_fetcher p1a, @a1, @a1_pre
|
91
|
-
|
92
|
-
inst = Gem::DependencyInstaller.new :prerelease => true
|
93
|
-
|
94
|
-
dep = Gem::Dependency.new 'a', Gem::Requirement.default
|
95
|
-
dep.prerelease = true
|
39
|
+
@c1, @c1_gem = util_gem "c", "1" do |s|
|
40
|
+
s.add_development_dependency "b"
|
41
|
+
end
|
96
42
|
|
97
|
-
|
43
|
+
@d1, @d1_gem = util_gem "d", "1" do |s|
|
44
|
+
s.add_development_dependency "c"
|
45
|
+
end
|
98
46
|
|
99
|
-
|
100
|
-
available.sorted.map { |s| s.spec.full_name }
|
47
|
+
util_setup_spec_fetcher(@a1, @a1_pre, @b1, @d1)
|
101
48
|
end
|
102
49
|
|
103
50
|
def test_install
|
@@ -108,7 +55,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
108
55
|
|
109
56
|
Dir.chdir @tempdir do
|
110
57
|
inst = Gem::DependencyInstaller.new
|
111
|
-
inst.install
|
58
|
+
inst.install "a"
|
112
59
|
end
|
113
60
|
|
114
61
|
assert_equal %w[a-1], Gem::Specification.map(&:full_name)
|
@@ -118,14 +65,13 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
118
65
|
def test_install_prerelease
|
119
66
|
util_setup_gems
|
120
67
|
|
121
|
-
p1a, gem = util_gem
|
68
|
+
p1a, gem = util_gem "a", "10.a"
|
122
69
|
|
123
70
|
util_setup_spec_fetcher(p1a, @a1, @a1_pre)
|
124
|
-
util_clear_gems
|
125
71
|
|
126
72
|
p1a_data = Gem.read_binary(gem)
|
127
73
|
|
128
|
-
@fetcher.data[
|
74
|
+
@fetcher.data["http://gems.example.com/gems/a-10.a.gem"] = p1a_data
|
129
75
|
|
130
76
|
dep = Gem::Dependency.new "a"
|
131
77
|
inst = Gem::DependencyInstaller.new :prerelease => true
|
@@ -137,18 +83,18 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
137
83
|
|
138
84
|
def test_install_prerelease_bug_990
|
139
85
|
spec_fetcher do |fetcher|
|
140
|
-
fetcher.gem
|
141
|
-
s.add_dependency
|
86
|
+
fetcher.gem "a", "1.b" do |s|
|
87
|
+
s.add_dependency "b", "~> 1.a"
|
142
88
|
end
|
143
89
|
|
144
|
-
fetcher.gem
|
145
|
-
s.add_dependency
|
90
|
+
fetcher.gem "b", "1.b" do |s|
|
91
|
+
s.add_dependency "c", ">= 1"
|
146
92
|
end
|
147
93
|
|
148
|
-
fetcher.gem
|
94
|
+
fetcher.gem "c", "1.1.b"
|
149
95
|
end
|
150
96
|
|
151
|
-
dep = Gem::Dependency.new
|
97
|
+
dep = Gem::Dependency.new "a"
|
152
98
|
|
153
99
|
inst = Gem::DependencyInstaller.new :prerelease => true
|
154
100
|
inst.install dep
|
@@ -157,18 +103,17 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
157
103
|
end
|
158
104
|
|
159
105
|
def test_install_when_only_prerelease
|
160
|
-
p1a, gem = util_gem
|
106
|
+
p1a, gem = util_gem "p", "1.a"
|
161
107
|
|
162
108
|
util_setup_spec_fetcher(p1a)
|
163
|
-
util_clear_gems
|
164
109
|
|
165
110
|
p1a_data = Gem.read_binary(gem)
|
166
111
|
|
167
|
-
@fetcher.data[
|
112
|
+
@fetcher.data["http://gems.example.com/gems/p-1.a.gem"] = p1a_data
|
168
113
|
|
169
114
|
dep = Gem::Dependency.new "p"
|
170
115
|
inst = Gem::DependencyInstaller.new
|
171
|
-
|
116
|
+
assert_raise Gem::UnsatisfiableDependencyError do
|
172
117
|
inst.install dep
|
173
118
|
end
|
174
119
|
|
@@ -180,11 +125,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
180
125
|
util_setup_gems
|
181
126
|
|
182
127
|
util_setup_spec_fetcher(@a1, @a1_pre)
|
183
|
-
util_clear_gems
|
184
128
|
|
185
129
|
p1a_data = Gem.read_binary(@a1_gem)
|
186
130
|
|
187
|
-
@fetcher.data[
|
131
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = p1a_data
|
188
132
|
|
189
133
|
dep = Gem::Dependency.new "a"
|
190
134
|
inst = Gem::DependencyInstaller.new :prerelease => true
|
@@ -197,32 +141,30 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
197
141
|
def test_install_all_dependencies
|
198
142
|
util_setup_gems
|
199
143
|
|
200
|
-
_, e1_gem = util_gem
|
201
|
-
s.add_dependency
|
144
|
+
_, e1_gem = util_gem "e", "1" do |s|
|
145
|
+
s.add_dependency "b"
|
202
146
|
end
|
203
147
|
|
204
|
-
util_clear_gems
|
205
|
-
|
206
148
|
FileUtils.mv @a1_gem, @tempdir
|
207
149
|
FileUtils.mv @b1_gem, @tempdir
|
208
|
-
FileUtils.mv
|
150
|
+
FileUtils.mv e1_gem, @tempdir
|
209
151
|
|
210
152
|
inst = nil
|
211
153
|
|
212
154
|
Dir.chdir @tempdir do
|
213
155
|
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
214
|
-
inst.install
|
156
|
+
inst.install "b"
|
215
157
|
end
|
216
158
|
|
217
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
218
|
-
|
159
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
|
160
|
+
"sanity check"
|
219
161
|
|
220
162
|
Dir.chdir @tempdir do
|
221
163
|
inst = Gem::DependencyInstaller.new
|
222
|
-
inst.install
|
164
|
+
inst.install "e"
|
223
165
|
end
|
224
166
|
|
225
|
-
assert_equal %w[a-1 e-1], inst.installed_gems.map {
|
167
|
+
assert_equal %w[a-1 e-1], inst.installed_gems.map {|s| s.full_name }
|
226
168
|
end
|
227
169
|
|
228
170
|
def test_install_cache_dir
|
@@ -236,10 +178,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
236
178
|
|
237
179
|
Dir.chdir dir do
|
238
180
|
inst = Gem::DependencyInstaller.new :cache_dir => @tempdir
|
239
|
-
inst.install
|
181
|
+
inst.install "b"
|
240
182
|
end
|
241
183
|
|
242
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
184
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
243
185
|
|
244
186
|
assert File.exist? File.join(@gemhome, "cache", @a1.file_name)
|
245
187
|
assert File.exist? File.join(@gemhome, "cache", @b1.file_name)
|
@@ -248,9 +190,9 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
248
190
|
def test_install_dependencies_satisfied
|
249
191
|
util_setup_gems
|
250
192
|
|
251
|
-
a2, a2_gem = util_gem
|
193
|
+
a2, a2_gem = util_gem "a", "2"
|
252
194
|
|
253
|
-
FileUtils.rm_rf File.join(@gemhome,
|
195
|
+
FileUtils.rm_rf File.join(@gemhome, "gems")
|
254
196
|
|
255
197
|
Gem::Specification.reset
|
256
198
|
|
@@ -261,21 +203,21 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
261
203
|
|
262
204
|
Dir.chdir @tempdir do
|
263
205
|
inst = Gem::DependencyInstaller.new
|
264
|
-
inst.install
|
206
|
+
inst.install "a", req("= 2")
|
265
207
|
end
|
266
208
|
|
267
|
-
assert_equal %w[a-2], inst.installed_gems.map {
|
268
|
-
|
209
|
+
assert_equal %w[a-2], inst.installed_gems.map {|s| s.full_name },
|
210
|
+
"sanity check"
|
269
211
|
|
270
212
|
FileUtils.rm File.join(@tempdir, a2.file_name)
|
271
213
|
|
272
214
|
Dir.chdir @tempdir do
|
273
215
|
inst = Gem::DependencyInstaller.new
|
274
|
-
inst.install
|
216
|
+
inst.install "b"
|
275
217
|
end
|
276
218
|
|
277
219
|
assert_equal %w[a-2 b-1], Gem::Specification.map(&:full_name)
|
278
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
220
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
279
221
|
end
|
280
222
|
|
281
223
|
# This asserts that if a gem's dependency is satisfied by an
|
@@ -284,22 +226,22 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
284
226
|
def test_install_doesnt_upgrade_installed_dependencies
|
285
227
|
util_setup_gems
|
286
228
|
|
287
|
-
a2, a2_gem = util_gem
|
288
|
-
a3, a3_gem = util_gem
|
229
|
+
a2, a2_gem = util_gem "a", "2"
|
230
|
+
a3, a3_gem = util_gem "a", "3"
|
289
231
|
|
290
232
|
util_setup_spec_fetcher @a1, a3, @b1
|
291
233
|
|
292
|
-
FileUtils.rm_rf File.join(@gemhome,
|
234
|
+
FileUtils.rm_rf File.join(@gemhome, "gems")
|
293
235
|
|
294
236
|
Gem::Specification.reset
|
295
237
|
|
296
238
|
FileUtils.mv @a1_gem, @tempdir
|
297
239
|
FileUtils.mv a2_gem, @tempdir # not in index
|
298
240
|
FileUtils.mv @b1_gem, @tempdir
|
299
|
-
FileUtils.mv
|
241
|
+
FileUtils.mv a3_gem, @tempdir
|
300
242
|
|
301
243
|
Dir.chdir @tempdir do
|
302
|
-
Gem::DependencyInstaller.new.install
|
244
|
+
Gem::DependencyInstaller.new.install "a", req("= 2")
|
303
245
|
end
|
304
246
|
|
305
247
|
FileUtils.rm File.join(@tempdir, a2.file_name)
|
@@ -308,11 +250,11 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
308
250
|
|
309
251
|
Dir.chdir @tempdir do
|
310
252
|
inst = Gem::DependencyInstaller.new
|
311
|
-
inst.install
|
253
|
+
inst.install "b"
|
312
254
|
end
|
313
255
|
|
314
256
|
assert_equal %w[a-2 b-1], Gem::Specification.map(&:full_name)
|
315
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
257
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
316
258
|
end
|
317
259
|
|
318
260
|
def test_install_dependency
|
@@ -332,20 +274,18 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
332
274
|
|
333
275
|
Dir.chdir @tempdir do
|
334
276
|
inst = Gem::DependencyInstaller.new(:build_docs_in_background => false)
|
335
|
-
inst.install
|
277
|
+
inst.install "b"
|
336
278
|
end
|
337
279
|
|
338
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
280
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
339
281
|
|
340
|
-
assert done_installing_ran,
|
282
|
+
assert done_installing_ran, "post installs hook was not run"
|
341
283
|
end
|
342
284
|
|
343
285
|
def test_install_dependency_development
|
344
286
|
util_setup_gems
|
345
287
|
|
346
|
-
@aa1, @aa1_gem = util_gem
|
347
|
-
|
348
|
-
util_reset_gems
|
288
|
+
@aa1, @aa1_gem = util_gem "aa", "1"
|
349
289
|
|
350
290
|
FileUtils.mv @a1_gem, @tempdir
|
351
291
|
FileUtils.mv @aa1_gem, @tempdir
|
@@ -354,18 +294,16 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
354
294
|
|
355
295
|
Dir.chdir @tempdir do
|
356
296
|
inst = Gem::DependencyInstaller.new(:development => true)
|
357
|
-
inst.install
|
297
|
+
inst.install "b"
|
358
298
|
end
|
359
299
|
|
360
|
-
assert_equal %w[a-1 aa-1 b-1], inst.installed_gems.map {
|
300
|
+
assert_equal %w[a-1 aa-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
361
301
|
end
|
362
302
|
|
363
303
|
def test_install_dependency_development_deep
|
364
304
|
util_setup_gems
|
365
305
|
|
366
|
-
@aa1, @aa1_gem = util_gem
|
367
|
-
|
368
|
-
util_reset_gems
|
306
|
+
@aa1, @aa1_gem = util_gem "aa", "1"
|
369
307
|
|
370
308
|
FileUtils.mv @a1_gem, @tempdir
|
371
309
|
FileUtils.mv @aa1_gem, @tempdir
|
@@ -376,18 +314,16 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
376
314
|
|
377
315
|
Dir.chdir @tempdir do
|
378
316
|
inst = Gem::DependencyInstaller.new(:development => true)
|
379
|
-
inst.install
|
317
|
+
inst.install "d"
|
380
318
|
end
|
381
319
|
|
382
|
-
assert_equal %w[a-1 aa-1 b-1 c-1 d-1], inst.installed_gems.map {
|
320
|
+
assert_equal %w[a-1 aa-1 b-1 c-1 d-1], inst.installed_gems.map {|s| s.full_name }
|
383
321
|
end
|
384
322
|
|
385
323
|
def test_install_dependency_development_shallow
|
386
324
|
util_setup_gems
|
387
325
|
|
388
|
-
@aa1, @aa1_gem = util_gem
|
389
|
-
|
390
|
-
util_reset_gems
|
326
|
+
@aa1, @aa1_gem = util_gem "aa", "1"
|
391
327
|
|
392
328
|
FileUtils.mv @a1_gem, @tempdir
|
393
329
|
FileUtils.mv @aa1_gem, @tempdir
|
@@ -398,10 +334,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
398
334
|
|
399
335
|
Dir.chdir @tempdir do
|
400
336
|
inst = Gem::DependencyInstaller.new(:development => true, :dev_shallow => true)
|
401
|
-
inst.install
|
337
|
+
inst.install "d"
|
402
338
|
end
|
403
339
|
|
404
|
-
assert_equal %w[c-1 d-1], inst.installed_gems.map {
|
340
|
+
assert_equal %w[c-1 d-1], inst.installed_gems.map {|s| s.full_name }
|
405
341
|
end
|
406
342
|
|
407
343
|
def test_install_dependency_existing
|
@@ -414,29 +350,29 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
414
350
|
|
415
351
|
Dir.chdir @tempdir do
|
416
352
|
inst = Gem::DependencyInstaller.new
|
417
|
-
inst.install
|
353
|
+
inst.install "b"
|
418
354
|
end
|
419
355
|
|
420
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
356
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
421
357
|
end
|
422
358
|
|
423
359
|
def test_install_dependency_existing_extension
|
424
|
-
extconf_rb = File.join @gemhome,
|
360
|
+
extconf_rb = File.join @gemhome, "gems", "e-1", "extconf.rb"
|
425
361
|
FileUtils.mkdir_p File.dirname extconf_rb
|
426
362
|
|
427
|
-
File.open extconf_rb,
|
363
|
+
File.open extconf_rb, "w" do |io|
|
428
364
|
io.write <<-EXTCONF_RB
|
429
365
|
require 'mkmf'
|
430
366
|
create_makefile 'e'
|
431
367
|
EXTCONF_RB
|
432
368
|
end
|
433
369
|
|
434
|
-
e1 = util_spec
|
435
|
-
s.extensions <<
|
370
|
+
e1 = util_spec "e", "1", nil, "extconf.rb" do |s|
|
371
|
+
s.extensions << "extconf.rb"
|
436
372
|
end
|
437
|
-
e1_gem =
|
373
|
+
e1_gem = e1.cache_file
|
438
374
|
|
439
|
-
_, f1_gem = util_gem
|
375
|
+
_, f1_gem = util_gem "f", "1", "e" => nil
|
440
376
|
|
441
377
|
Gem::Installer.at(e1_gem).install
|
442
378
|
FileUtils.rm_r e1.extension_dir
|
@@ -449,20 +385,20 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
449
385
|
Dir.chdir @tempdir
|
450
386
|
begin
|
451
387
|
inst = Gem::DependencyInstaller.new
|
452
|
-
inst.install
|
388
|
+
inst.install "f"
|
453
389
|
ensure
|
454
390
|
Dir.chdir pwd
|
455
391
|
end
|
456
392
|
|
457
|
-
assert_equal %w[f-1], inst.installed_gems.map {
|
393
|
+
assert_equal %w[f-1], inst.installed_gems.map {|s| s.full_name }
|
458
394
|
|
459
|
-
|
395
|
+
assert_path_exist e1.extension_dir
|
460
396
|
end
|
461
397
|
|
462
398
|
def test_install_dependency_old
|
463
|
-
_, e1_gem = util_gem
|
464
|
-
_, f1_gem = util_gem
|
465
|
-
_, f2_gem = util_gem
|
399
|
+
_, e1_gem = util_gem "e", "1"
|
400
|
+
_, f1_gem = util_gem "f", "1", "e" => nil
|
401
|
+
_, f2_gem = util_gem "f", "2"
|
466
402
|
|
467
403
|
FileUtils.mv e1_gem, @tempdir
|
468
404
|
FileUtils.mv f1_gem, @tempdir
|
@@ -471,10 +407,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
471
407
|
|
472
408
|
Dir.chdir @tempdir do
|
473
409
|
inst = Gem::DependencyInstaller.new
|
474
|
-
inst.install
|
410
|
+
inst.install "f"
|
475
411
|
end
|
476
412
|
|
477
|
-
assert_equal %w[f-2], inst.installed_gems.map {
|
413
|
+
assert_equal %w[f-2], inst.installed_gems.map {|s| s.full_name }
|
478
414
|
end
|
479
415
|
|
480
416
|
def test_install_local
|
@@ -485,10 +421,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
485
421
|
|
486
422
|
Dir.chdir @tempdir do
|
487
423
|
inst = Gem::DependencyInstaller.new :domain => :local
|
488
|
-
inst.install
|
424
|
+
inst.install "a-1.gem"
|
489
425
|
end
|
490
426
|
|
491
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
427
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
492
428
|
end
|
493
429
|
|
494
430
|
def test_install_local_prerelease
|
@@ -499,10 +435,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
499
435
|
|
500
436
|
Dir.chdir @tempdir do
|
501
437
|
inst = Gem::DependencyInstaller.new :domain => :local
|
502
|
-
inst.install
|
438
|
+
inst.install "a-1.a.gem"
|
503
439
|
end
|
504
440
|
|
505
|
-
assert_equal %w[a-1.a], inst.installed_gems.map {
|
441
|
+
assert_equal %w[a-1.a], inst.installed_gems.map {|s| s.full_name }
|
506
442
|
end
|
507
443
|
|
508
444
|
def test_install_local_dependency
|
@@ -515,10 +451,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
515
451
|
|
516
452
|
Dir.chdir @tempdir do
|
517
453
|
inst = Gem::DependencyInstaller.new :domain => :local
|
518
|
-
inst.install
|
454
|
+
inst.install "b-1.gem"
|
519
455
|
end
|
520
456
|
|
521
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
457
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
522
458
|
end
|
523
459
|
|
524
460
|
def test_install_local_dependency_installed
|
@@ -530,13 +466,13 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
530
466
|
inst = nil
|
531
467
|
|
532
468
|
Dir.chdir @tempdir do
|
533
|
-
Gem::Installer.at(
|
469
|
+
Gem::Installer.at("a-1.gem").install
|
534
470
|
|
535
471
|
inst = Gem::DependencyInstaller.new :domain => :local
|
536
|
-
inst.install
|
472
|
+
inst.install "b-1.gem"
|
537
473
|
end
|
538
474
|
|
539
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
475
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
540
476
|
end
|
541
477
|
|
542
478
|
def test_install_local_subdir
|
@@ -546,25 +482,23 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
546
482
|
|
547
483
|
Dir.chdir @tempdir do
|
548
484
|
inst = Gem::DependencyInstaller.new :domain => :local
|
549
|
-
inst.install
|
485
|
+
inst.install "gems/a-1.gem"
|
550
486
|
end
|
551
487
|
|
552
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
488
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
553
489
|
end
|
554
490
|
|
555
491
|
def test_install_minimal_deps
|
556
492
|
util_setup_gems
|
557
493
|
|
558
|
-
_, e1_gem = util_gem
|
559
|
-
s.add_dependency
|
494
|
+
_, e1_gem = util_gem "e", "1" do |s|
|
495
|
+
s.add_dependency "b"
|
560
496
|
end
|
561
497
|
|
562
|
-
_, b2_gem = util_gem
|
563
|
-
s.add_dependency
|
498
|
+
_, b2_gem = util_gem "b", "2" do |s|
|
499
|
+
s.add_dependency "a"
|
564
500
|
end
|
565
501
|
|
566
|
-
util_clear_gems
|
567
|
-
|
568
502
|
FileUtils.mv @a1_gem, @tempdir
|
569
503
|
FileUtils.mv @b1_gem, @tempdir
|
570
504
|
FileUtils.mv b2_gem, @tempdir
|
@@ -574,18 +508,52 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
574
508
|
|
575
509
|
Dir.chdir @tempdir do
|
576
510
|
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
577
|
-
inst.install
|
511
|
+
inst.install "b", req("= 1")
|
578
512
|
end
|
579
513
|
|
580
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
581
|
-
|
514
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
|
515
|
+
"sanity check"
|
582
516
|
|
583
517
|
Dir.chdir @tempdir do
|
584
518
|
inst = Gem::DependencyInstaller.new :minimal_deps => true
|
585
|
-
inst.install
|
519
|
+
inst.install "e"
|
586
520
|
end
|
587
521
|
|
588
|
-
assert_equal %w[a-1 e-1], inst.installed_gems.map {
|
522
|
+
assert_equal %w[a-1 e-1], inst.installed_gems.map {|s| s.full_name }
|
523
|
+
end
|
524
|
+
|
525
|
+
def test_install_no_minimal_deps
|
526
|
+
util_setup_gems
|
527
|
+
|
528
|
+
_, e1_gem = util_gem "e", "1" do |s|
|
529
|
+
s.add_dependency "b"
|
530
|
+
end
|
531
|
+
|
532
|
+
_, b2_gem = util_gem "b", "2" do |s|
|
533
|
+
s.add_dependency "a"
|
534
|
+
end
|
535
|
+
|
536
|
+
FileUtils.mv @a1_gem, @tempdir
|
537
|
+
FileUtils.mv @b1_gem, @tempdir
|
538
|
+
FileUtils.mv b2_gem, @tempdir
|
539
|
+
FileUtils.mv e1_gem, @tempdir
|
540
|
+
|
541
|
+
inst = nil
|
542
|
+
|
543
|
+
Dir.chdir @tempdir do
|
544
|
+
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
545
|
+
inst.install "b", req("= 1")
|
546
|
+
end
|
547
|
+
|
548
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name },
|
549
|
+
"sanity check"
|
550
|
+
|
551
|
+
Dir.chdir @tempdir do
|
552
|
+
inst = Gem::DependencyInstaller.new :minimal_deps => false
|
553
|
+
inst.install "e"
|
554
|
+
end
|
555
|
+
|
556
|
+
assert_equal %w[a-1 b-2 e-1], inst.installed_gems.map {|s| s.full_name }
|
589
557
|
end
|
590
558
|
|
591
559
|
def test_install_no_document
|
@@ -613,13 +581,13 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
613
581
|
|
614
582
|
Dir.chdir @tempdir do
|
615
583
|
inst = Gem::DependencyInstaller.new :env_shebang => true, :wrappers => true, :format_executable => false
|
616
|
-
inst.install
|
584
|
+
inst.install "a"
|
617
585
|
end
|
618
586
|
|
619
587
|
env = "/\\S+/env" unless Gem.win_platform?
|
620
588
|
|
621
|
-
assert_match %r
|
622
|
-
File.read(File.join(@gemhome,
|
589
|
+
assert_match %r{\A#!#{env} #{RbConfig::CONFIG['ruby_install_name']}\n},
|
590
|
+
File.read(File.join(@gemhome, "bin", "a_bin"))
|
623
591
|
end
|
624
592
|
|
625
593
|
def test_install_force
|
@@ -627,15 +595,15 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
627
595
|
|
628
596
|
FileUtils.mv @b1_gem, @tempdir
|
629
597
|
si = util_setup_spec_fetcher @b1
|
630
|
-
@fetcher.data[
|
598
|
+
@fetcher.data["http://gems.example.com/gems/yaml"] = si.to_yaml
|
631
599
|
inst = nil
|
632
600
|
|
633
601
|
Dir.chdir @tempdir do
|
634
602
|
inst = Gem::DependencyInstaller.new :force => true
|
635
|
-
inst.install
|
603
|
+
inst.install "b"
|
636
604
|
end
|
637
605
|
|
638
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
606
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
639
607
|
end
|
640
608
|
|
641
609
|
def test_install_build_args
|
@@ -648,7 +616,7 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
648
616
|
Dir.chdir @tempdir do
|
649
617
|
inst = Gem::DependencyInstaller.new(
|
650
618
|
:build_args => build_args)
|
651
|
-
inst.install
|
619
|
+
inst.install "a"
|
652
620
|
end
|
653
621
|
|
654
622
|
assert_equal build_args.join("\n"), File.read(inst.installed_gems.first.build_info_file).strip
|
@@ -662,10 +630,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
662
630
|
|
663
631
|
Dir.chdir @tempdir do
|
664
632
|
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
665
|
-
inst.install
|
633
|
+
inst.install "b"
|
666
634
|
end
|
667
635
|
|
668
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
636
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
669
637
|
end
|
670
638
|
|
671
639
|
def test_install_install_dir
|
@@ -677,40 +645,40 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
677
645
|
inst = Gem::Installer.at @a1.file_name
|
678
646
|
inst.install
|
679
647
|
|
680
|
-
gemhome2 = File.join @tempdir,
|
648
|
+
gemhome2 = File.join @tempdir, "gemhome2"
|
681
649
|
Dir.mkdir gemhome2
|
682
650
|
inst = nil
|
683
651
|
|
684
652
|
Dir.chdir @tempdir do
|
685
653
|
inst = Gem::DependencyInstaller.new :install_dir => gemhome2
|
686
|
-
inst.install
|
654
|
+
inst.install "b"
|
687
655
|
end
|
688
656
|
|
689
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
657
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
690
658
|
|
691
|
-
assert File.exist?(File.join(gemhome2,
|
692
|
-
assert File.exist?(File.join(gemhome2,
|
659
|
+
assert File.exist?(File.join(gemhome2, "specifications", @a1.spec_name))
|
660
|
+
assert File.exist?(File.join(gemhome2, "cache", @a1.file_name))
|
693
661
|
end
|
694
662
|
|
695
663
|
def test_install_domain_both
|
696
664
|
util_setup_gems
|
697
665
|
|
698
666
|
a1_data = nil
|
699
|
-
File.open @a1_gem,
|
667
|
+
File.open @a1_gem, "rb" do |fp|
|
700
668
|
a1_data = fp.read
|
701
669
|
end
|
702
670
|
|
703
|
-
@fetcher.data[
|
671
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
|
704
672
|
|
705
673
|
FileUtils.mv @b1_gem, @tempdir
|
706
674
|
inst = nil
|
707
675
|
|
708
676
|
Dir.chdir @tempdir do
|
709
677
|
inst = Gem::DependencyInstaller.new :domain => :both
|
710
|
-
inst.install
|
678
|
+
inst.install "b"
|
711
679
|
end
|
712
680
|
|
713
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
681
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
714
682
|
a1, b1 = inst.installed_gems
|
715
683
|
|
716
684
|
assert_equal a1.spec_file, a1.loaded_from
|
@@ -731,10 +699,10 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
731
699
|
|
732
700
|
Dir.chdir @tempdir do
|
733
701
|
inst = Gem::DependencyInstaller.new :domain => :both
|
734
|
-
inst.install
|
702
|
+
inst.install "b"
|
735
703
|
end
|
736
704
|
|
737
|
-
assert_equal %w[a-1 b-1], inst.installed_gems.map {
|
705
|
+
assert_equal %w[a-1 b-1], inst.installed_gems.map {|s| s.full_name }
|
738
706
|
end
|
739
707
|
|
740
708
|
def test_install_domain_local
|
@@ -744,32 +712,32 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
744
712
|
inst = nil
|
745
713
|
|
746
714
|
Dir.chdir @tempdir do
|
747
|
-
e =
|
715
|
+
e = assert_raise Gem::UnsatisfiableDependencyError do
|
748
716
|
inst = Gem::DependencyInstaller.new :domain => :local
|
749
|
-
inst.install
|
717
|
+
inst.install "b"
|
750
718
|
end
|
751
719
|
|
752
720
|
expected = "Unable to resolve dependency: 'b (>= 0)' requires 'a (>= 0)'"
|
753
721
|
assert_equal expected, e.message
|
754
722
|
end
|
755
723
|
|
756
|
-
assert_equal [], inst.installed_gems.map {
|
724
|
+
assert_equal [], inst.installed_gems.map {|s| s.full_name }
|
757
725
|
end
|
758
726
|
|
759
727
|
def test_install_domain_remote
|
760
728
|
util_setup_gems
|
761
729
|
|
762
730
|
a1_data = nil
|
763
|
-
File.open @a1_gem,
|
731
|
+
File.open @a1_gem, "rb" do |fp|
|
764
732
|
a1_data = fp.read
|
765
733
|
end
|
766
734
|
|
767
|
-
@fetcher.data[
|
735
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
|
768
736
|
|
769
737
|
inst = Gem::DependencyInstaller.new :domain => :remote
|
770
|
-
inst.install
|
738
|
+
inst.install "a"
|
771
739
|
|
772
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
740
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
773
741
|
end
|
774
742
|
|
775
743
|
def test_install_dual_repository
|
@@ -783,22 +751,22 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
783
751
|
|
784
752
|
Dir.chdir @tempdir do
|
785
753
|
inst = Gem::DependencyInstaller.new :install_dir => gemhome2
|
786
|
-
inst.install
|
754
|
+
inst.install "a"
|
787
755
|
end
|
788
756
|
|
789
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
790
|
-
|
757
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name },
|
758
|
+
"sanity check"
|
791
759
|
|
792
|
-
ENV[
|
793
|
-
ENV[
|
760
|
+
ENV["GEM_HOME"] = @gemhome
|
761
|
+
ENV["GEM_PATH"] = [@gemhome, gemhome2].join File::PATH_SEPARATOR
|
794
762
|
Gem.clear_paths
|
795
763
|
|
796
764
|
Dir.chdir @tempdir do
|
797
765
|
inst = Gem::DependencyInstaller.new
|
798
|
-
inst.install
|
766
|
+
inst.install "b"
|
799
767
|
end
|
800
768
|
|
801
|
-
assert_equal %w[b-1], inst.installed_gems.map {
|
769
|
+
assert_equal %w[b-1], inst.installed_gems.map {|s| s.full_name }
|
802
770
|
end
|
803
771
|
|
804
772
|
def test_install_reinstall
|
@@ -809,8 +777,8 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
809
777
|
inst = nil
|
810
778
|
|
811
779
|
Dir.chdir @tempdir do
|
812
|
-
inst = Gem::DependencyInstaller.new
|
813
|
-
inst.install
|
780
|
+
inst = Gem::DependencyInstaller.new :force => true
|
781
|
+
inst.install "a"
|
814
782
|
end
|
815
783
|
|
816
784
|
assert_equal %w[a-1], Gem::Specification.map(&:full_name)
|
@@ -821,30 +789,30 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
821
789
|
util_setup_gems
|
822
790
|
|
823
791
|
a1_data = nil
|
824
|
-
File.open @a1_gem,
|
792
|
+
File.open @a1_gem, "rb" do |fp|
|
825
793
|
a1_data = fp.read
|
826
794
|
end
|
827
795
|
|
828
|
-
@fetcher.data[
|
796
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
|
829
797
|
|
830
798
|
inst = Gem::DependencyInstaller.new
|
831
799
|
|
832
800
|
Dir.chdir @tempdir do
|
833
|
-
inst.install
|
801
|
+
inst.install "a"
|
834
802
|
end
|
835
803
|
|
836
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
804
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
837
805
|
end
|
838
806
|
|
839
807
|
def test_install_remote_dep
|
840
808
|
util_setup_gems
|
841
809
|
|
842
810
|
a1_data = nil
|
843
|
-
File.open @a1_gem,
|
811
|
+
File.open @a1_gem, "rb" do |fp|
|
844
812
|
a1_data = fp.read
|
845
813
|
end
|
846
814
|
|
847
|
-
@fetcher.data[
|
815
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = a1_data
|
848
816
|
|
849
817
|
inst = Gem::DependencyInstaller.new
|
850
818
|
|
@@ -853,27 +821,30 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
853
821
|
inst.install dep
|
854
822
|
end
|
855
823
|
|
856
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
824
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
857
825
|
end
|
858
826
|
|
859
827
|
def test_install_remote_platform_newer
|
860
828
|
util_setup_gems
|
861
829
|
|
862
|
-
a2_o, a2_o_gem = util_gem
|
830
|
+
a2_o, a2_o_gem = util_gem "a", "2" do |s|
|
863
831
|
s.platform = Gem::Platform.new %w[cpu other_platform 1]
|
864
832
|
end
|
865
833
|
|
866
834
|
si = util_setup_spec_fetcher @a1, a2_o
|
867
835
|
|
868
|
-
|
869
|
-
|
870
|
-
@fetcher.data['http://gems.example.com/gems/yaml'] = si.to_yaml
|
836
|
+
@fetcher.data["http://gems.example.com/gems/yaml"] = si.to_yaml
|
871
837
|
|
872
838
|
a1_data = nil
|
873
839
|
a2_o_data = nil
|
874
840
|
|
875
|
-
File.open @a1_gem,
|
876
|
-
|
841
|
+
File.open @a1_gem, "rb" do |fp|
|
842
|
+
a1_data = fp.read
|
843
|
+
end
|
844
|
+
|
845
|
+
File.open a2_o_gem, "rb" do |fp|
|
846
|
+
a2_o_data = fp.read
|
847
|
+
end
|
877
848
|
|
878
849
|
@fetcher.data["http://gems.example.com/gems/#{@a1.file_name}"] =
|
879
850
|
a1_data
|
@@ -881,43 +852,45 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
881
852
|
a2_o_data
|
882
853
|
|
883
854
|
inst = Gem::DependencyInstaller.new :domain => :remote
|
884
|
-
inst.install
|
855
|
+
inst.install "a"
|
885
856
|
|
886
|
-
assert_equal %w[a-1], inst.installed_gems.map {
|
857
|
+
assert_equal %w[a-1], inst.installed_gems.map {|s| s.full_name }
|
887
858
|
end
|
888
859
|
|
889
860
|
def test_install_platform_is_ignored_when_a_file_is_specified
|
890
|
-
_, a_gem = util_gem
|
861
|
+
_, a_gem = util_gem "a", "1" do |s|
|
891
862
|
s.platform = Gem::Platform.new %w[cpu other_platform 1]
|
892
863
|
end
|
893
864
|
|
894
865
|
inst = Gem::DependencyInstaller.new :domain => :local
|
895
866
|
inst.install a_gem
|
896
867
|
|
897
|
-
assert_equal %w[a-1-cpu-other_platform-1], inst.installed_gems.map {
|
868
|
+
assert_equal %w[a-1-cpu-other_platform-1], inst.installed_gems.map {|s| s.full_name }
|
898
869
|
end
|
899
870
|
|
900
|
-
|
871
|
+
require "rubygems/openssl"
|
872
|
+
|
873
|
+
if Gem::HAVE_OPENSSL
|
901
874
|
def test_install_security_policy
|
902
875
|
util_setup_gems
|
903
876
|
|
904
|
-
data = File.open(@a1_gem,
|
905
|
-
@fetcher.data[
|
877
|
+
data = File.open(@a1_gem, "rb") {|f| f.read }
|
878
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = data
|
906
879
|
|
907
|
-
data = File.open(@b1_gem,
|
908
|
-
@fetcher.data[
|
880
|
+
data = File.open(@b1_gem, "rb") {|f| f.read }
|
881
|
+
@fetcher.data["http://gems.example.com/gems/b-1.gem"] = data
|
909
882
|
|
910
883
|
policy = Gem::Security::HighSecurity
|
911
884
|
inst = Gem::DependencyInstaller.new :security_policy => policy
|
912
885
|
|
913
|
-
e =
|
914
|
-
inst.install
|
886
|
+
e = assert_raise Gem::Security::Exception do
|
887
|
+
inst.install "b"
|
915
888
|
end
|
916
889
|
|
917
|
-
assert_equal
|
890
|
+
assert_equal "unsigned gems are not allowed by the High Security policy",
|
918
891
|
e.message
|
919
892
|
|
920
|
-
assert_equal %w[], inst.installed_gems.map {
|
893
|
+
assert_equal %w[], inst.installed_gems.map {|s| s.full_name }
|
921
894
|
end
|
922
895
|
end
|
923
896
|
|
@@ -926,127 +899,115 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
926
899
|
def test_install_no_wrappers
|
927
900
|
util_setup_gems
|
928
901
|
|
929
|
-
@fetcher.data[
|
902
|
+
@fetcher.data["http://gems.example.com/gems/a-1.gem"] = read_binary(@a1_gem)
|
930
903
|
|
931
904
|
inst = Gem::DependencyInstaller.new :wrappers => false, :format_executable => false
|
932
|
-
inst.install
|
905
|
+
inst.install "a"
|
933
906
|
|
934
|
-
refute_match(%r
|
935
|
-
File.read(File.join(@gemhome,
|
907
|
+
refute_match(%r{This file was generated by RubyGems.},
|
908
|
+
File.read(File.join(@gemhome, "bin", "a_bin")))
|
936
909
|
end
|
937
910
|
end
|
938
911
|
|
939
912
|
def test_install_version
|
940
913
|
util_setup_d
|
941
914
|
|
942
|
-
data = File.open(@d2_gem,
|
943
|
-
@fetcher.data[
|
915
|
+
data = File.open(@d2_gem, "rb") {|f| f.read }
|
916
|
+
@fetcher.data["http://gems.example.com/gems/d-2.gem"] = data
|
944
917
|
|
945
|
-
data = File.open(@d1_gem,
|
946
|
-
@fetcher.data[
|
918
|
+
data = File.open(@d1_gem, "rb") {|f| f.read }
|
919
|
+
@fetcher.data["http://gems.example.com/gems/d-1.gem"] = data
|
947
920
|
|
948
921
|
inst = Gem::DependencyInstaller.new
|
949
922
|
|
950
|
-
inst.install
|
923
|
+
inst.install "d", "= 1"
|
951
924
|
|
952
|
-
assert_equal %w[d-1], inst.installed_gems.map {
|
925
|
+
assert_equal %w[d-1], inst.installed_gems.map {|s| s.full_name }
|
953
926
|
end
|
954
927
|
|
955
928
|
def test_install_version_default
|
956
929
|
util_setup_d
|
957
930
|
|
958
|
-
data = File.open(@d2_gem,
|
959
|
-
@fetcher.data[
|
931
|
+
data = File.open(@d2_gem, "rb") {|f| f.read }
|
932
|
+
@fetcher.data["http://gems.example.com/gems/d-2.gem"] = data
|
960
933
|
|
961
|
-
data = File.open(@d1_gem,
|
962
|
-
@fetcher.data[
|
934
|
+
data = File.open(@d1_gem, "rb") {|f| f.read }
|
935
|
+
@fetcher.data["http://gems.example.com/gems/d-1.gem"] = data
|
963
936
|
|
964
937
|
inst = Gem::DependencyInstaller.new
|
965
|
-
inst.install
|
938
|
+
inst.install "d"
|
966
939
|
|
967
|
-
assert_equal %w[d-2], inst.installed_gems.map {
|
940
|
+
assert_equal %w[d-2], inst.installed_gems.map {|s| s.full_name }
|
968
941
|
end
|
969
942
|
|
970
|
-
def
|
971
|
-
|
943
|
+
def test_install_legacy_spec_with_nil_required_ruby_version
|
944
|
+
path = File.expand_path "data/null-required-ruby-version.gemspec.rz", __dir__
|
945
|
+
spec = Marshal.load Gem.read_binary(path)
|
946
|
+
def spec.validate(*args); end
|
972
947
|
|
973
|
-
|
974
|
-
dep = Gem::Dependency.new 'b', '>= 0'
|
948
|
+
util_build_gem spec
|
975
949
|
|
976
|
-
|
950
|
+
cache_file = File.join @tempdir, "gems", "#{spec.original_name}.gem"
|
951
|
+
FileUtils.mkdir_p File.dirname cache_file
|
952
|
+
FileUtils.mv spec.cache_file, cache_file
|
977
953
|
|
978
|
-
|
954
|
+
util_setup_spec_fetcher spec
|
979
955
|
|
980
|
-
|
981
|
-
|
982
|
-
s = set.set.first
|
983
|
-
|
984
|
-
assert_equal @b1, s.spec
|
985
|
-
assert_equal Gem::Source.new(@gem_repo), s.source
|
986
|
-
end
|
956
|
+
data = Gem.read_binary(cache_file)
|
987
957
|
|
988
|
-
|
989
|
-
util_gem 'a', 1
|
990
|
-
FileUtils.mv 'gems/a-1.gem', @tempdir
|
958
|
+
@fetcher.data["http://gems.example.com/gems/activesupport-1.0.0.gem"] = data
|
991
959
|
|
992
|
-
|
960
|
+
dep = Gem::Dependency.new "activesupport"
|
993
961
|
|
994
962
|
inst = Gem::DependencyInstaller.new
|
963
|
+
inst.install dep
|
995
964
|
|
996
|
-
|
997
|
-
|
998
|
-
assert_equal %w[a-1], available.each_spec.map { |spec| spec.full_name }
|
965
|
+
assert_equal %w[activesupport-1.0.0], Gem::Specification.map(&:full_name)
|
999
966
|
end
|
1000
967
|
|
1001
|
-
def
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
968
|
+
def test_install_legacy_spec_with_nil_required_rubygems_version
|
969
|
+
path = File.expand_path "data/null-required-rubygems-version.gemspec.rz", __dir__
|
970
|
+
spec = Marshal.load Gem.read_binary(path)
|
971
|
+
def spec.validate(*args); end
|
1005
972
|
|
1006
|
-
|
1007
|
-
inst.find_spec_by_name_and_version '*.gem'
|
1008
|
-
end
|
1009
|
-
end
|
973
|
+
util_build_gem spec
|
1010
974
|
|
1011
|
-
|
1012
|
-
FileUtils.
|
975
|
+
cache_file = File.join @tempdir, "gems", "#{spec.original_name}.gem"
|
976
|
+
FileUtils.mkdir_p File.dirname cache_file
|
977
|
+
FileUtils.mv spec.cache_file, cache_file
|
1013
978
|
|
1014
|
-
|
979
|
+
util_setup_spec_fetcher spec
|
1015
980
|
|
1016
|
-
|
1017
|
-
inst.find_spec_by_name_and_version 'rdoc.gem'
|
1018
|
-
end
|
981
|
+
data = Gem.read_binary(cache_file)
|
1019
982
|
|
1020
|
-
|
1021
|
-
assert_equal "package metadata is missing in #{full_path}", e.message
|
1022
|
-
end
|
983
|
+
@fetcher.data["http://gems.example.com/gems/activesupport-1.0.0.gem"] = data
|
1023
984
|
|
1024
|
-
|
1025
|
-
Dir.mkdir 'rdoc'
|
985
|
+
dep = Gem::Dependency.new "activesupport"
|
1026
986
|
|
1027
987
|
inst = Gem::DependencyInstaller.new
|
988
|
+
inst.install dep
|
1028
989
|
|
1029
|
-
|
1030
|
-
inst.find_spec_by_name_and_version 'rdoc'
|
1031
|
-
end
|
1032
|
-
|
1033
|
-
assert_equal "Could not find a valid gem 'rdoc' (>= 0) " +
|
1034
|
-
"locally or in a repository",
|
1035
|
-
e.message
|
990
|
+
assert_equal %w[activesupport-1.0.0], Gem::Specification.map(&:full_name)
|
1036
991
|
end
|
1037
992
|
|
1038
|
-
def
|
1039
|
-
|
993
|
+
def test_find_gems_gems_with_sources
|
994
|
+
util_setup_gems
|
1040
995
|
|
1041
996
|
inst = Gem::DependencyInstaller.new
|
997
|
+
dep = Gem::Dependency.new "b", ">= 0"
|
998
|
+
|
999
|
+
Gem::Specification.reset
|
1042
1000
|
|
1043
|
-
|
1044
|
-
inst.
|
1001
|
+
set = Gem::Deprecate.skip_during do
|
1002
|
+
inst.find_gems_with_sources(dep)
|
1045
1003
|
end
|
1046
1004
|
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1005
|
+
assert_kind_of Gem::AvailableSet, set
|
1006
|
+
|
1007
|
+
s = set.set.first
|
1008
|
+
|
1009
|
+
assert_equal @b1, s.spec
|
1010
|
+
assert_equal Gem::Source.new(@gem_repo), s.source
|
1050
1011
|
end
|
1051
1012
|
|
1052
1013
|
def test_find_gems_with_sources_local
|
@@ -1054,11 +1015,13 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1054
1015
|
|
1055
1016
|
FileUtils.mv @a1_gem, @tempdir
|
1056
1017
|
inst = Gem::DependencyInstaller.new
|
1057
|
-
dep = Gem::Dependency.new
|
1018
|
+
dep = Gem::Dependency.new "a", ">= 0"
|
1058
1019
|
set = nil
|
1059
1020
|
|
1060
1021
|
Dir.chdir @tempdir do
|
1061
|
-
set =
|
1022
|
+
set = Gem::Deprecate.skip_during do
|
1023
|
+
inst.find_gems_with_sources dep
|
1024
|
+
end
|
1062
1025
|
end
|
1063
1026
|
|
1064
1027
|
gems = set.sorted
|
@@ -1067,12 +1030,12 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1067
1030
|
|
1068
1031
|
remote, local = gems
|
1069
1032
|
|
1070
|
-
assert_equal
|
1033
|
+
assert_equal "a-1", local.spec.full_name, "local spec"
|
1071
1034
|
assert_equal File.join(@tempdir, @a1.file_name),
|
1072
|
-
local.source.download(local.spec),
|
1035
|
+
local.source.download(local.spec), "local path"
|
1073
1036
|
|
1074
|
-
assert_equal
|
1075
|
-
assert_equal Gem::Source.new(@gem_repo), remote.source,
|
1037
|
+
assert_equal "a-1", remote.spec.full_name, "remote spec"
|
1038
|
+
assert_equal Gem::Source.new(@gem_repo), remote.source, "remote path"
|
1076
1039
|
end
|
1077
1040
|
|
1078
1041
|
def test_find_gems_with_sources_prerelease
|
@@ -1080,36 +1043,45 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1080
1043
|
|
1081
1044
|
installer = Gem::DependencyInstaller.new
|
1082
1045
|
|
1083
|
-
dependency = Gem::Dependency.new(
|
1046
|
+
dependency = Gem::Dependency.new("a", Gem::Requirement.default)
|
1047
|
+
|
1048
|
+
set = Gem::Deprecate.skip_during do
|
1049
|
+
installer.find_gems_with_sources(dependency)
|
1050
|
+
end
|
1084
1051
|
|
1085
|
-
releases =
|
1086
|
-
installer.find_gems_with_sources(dependency).all_specs
|
1052
|
+
releases = set.all_specs
|
1087
1053
|
|
1088
|
-
assert releases.any? {
|
1089
|
-
refute releases.any? {
|
1054
|
+
assert releases.any? {|s| s.name == "a" && s.version.to_s == "1" }
|
1055
|
+
refute releases.any? {|s| s.name == "a" && s.version.to_s == "1.a" }
|
1090
1056
|
|
1091
1057
|
dependency.prerelease = true
|
1092
1058
|
|
1093
|
-
|
1094
|
-
installer.find_gems_with_sources(dependency)
|
1059
|
+
set = Gem::Deprecate.skip_during do
|
1060
|
+
installer.find_gems_with_sources(dependency)
|
1061
|
+
end
|
1062
|
+
|
1063
|
+
prereleases = set.all_specs
|
1095
1064
|
|
1096
1065
|
assert_equal [@a1_pre, @a1], prereleases
|
1097
1066
|
end
|
1098
1067
|
|
1099
1068
|
def test_find_gems_with_sources_with_best_only_and_platform
|
1100
1069
|
util_setup_gems
|
1101
|
-
a1_x86_mingw32, = util_gem
|
1102
|
-
s.platform =
|
1070
|
+
a1_x86_mingw32, = util_gem "a", "1" do |s|
|
1071
|
+
s.platform = "x86-mingw32"
|
1103
1072
|
end
|
1104
1073
|
util_setup_spec_fetcher @a1, a1_x86_mingw32
|
1105
|
-
Gem.platforms << Gem::Platform.new(
|
1074
|
+
Gem.platforms << Gem::Platform.new("x86-mingw32")
|
1106
1075
|
|
1107
1076
|
installer = Gem::DependencyInstaller.new
|
1108
1077
|
|
1109
|
-
dependency = Gem::Dependency.new(
|
1078
|
+
dependency = Gem::Dependency.new("a", Gem::Requirement.default)
|
1079
|
+
|
1080
|
+
set = Gem::Deprecate.skip_during do
|
1081
|
+
installer.find_gems_with_sources(dependency, true)
|
1082
|
+
end
|
1110
1083
|
|
1111
|
-
releases =
|
1112
|
-
installer.find_gems_with_sources(dependency, true).all_specs
|
1084
|
+
releases = set.all_specs
|
1113
1085
|
|
1114
1086
|
assert_equal [a1_x86_mingw32], releases
|
1115
1087
|
end
|
@@ -1119,9 +1091,11 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1119
1091
|
|
1120
1092
|
installer = Gem::DependencyInstaller.new
|
1121
1093
|
|
1122
|
-
dep = Gem::Dependency.new(
|
1094
|
+
dep = Gem::Dependency.new("a")
|
1123
1095
|
|
1124
|
-
out =
|
1096
|
+
out = Gem::Deprecate.skip_during do
|
1097
|
+
installer.find_gems_with_sources(dep)
|
1098
|
+
end
|
1125
1099
|
|
1126
1100
|
assert out.empty?
|
1127
1101
|
assert_kind_of Gem::SourceFetchProblem, installer.errors.first
|
@@ -1134,9 +1108,9 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1134
1108
|
FileUtils.mv @b1_gem, @tempdir
|
1135
1109
|
|
1136
1110
|
inst = Gem::DependencyInstaller.new
|
1137
|
-
request_set = inst.resolve_dependencies
|
1111
|
+
request_set = inst.resolve_dependencies "b", req(">= 0")
|
1138
1112
|
|
1139
|
-
requests = request_set.sorted_requests.map {
|
1113
|
+
requests = request_set.sorted_requests.map {|req| req.full_name }
|
1140
1114
|
|
1141
1115
|
assert_equal %w[a-1 b-1], requests
|
1142
1116
|
end
|
@@ -1148,9 +1122,9 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1148
1122
|
FileUtils.mv @b1_gem, @tempdir
|
1149
1123
|
|
1150
1124
|
inst = Gem::DependencyInstaller.new :ignore_dependencies => true
|
1151
|
-
request_set = inst.resolve_dependencies
|
1125
|
+
request_set = inst.resolve_dependencies "b", req(">= 0")
|
1152
1126
|
|
1153
|
-
requests = request_set.sorted_requests.map {
|
1127
|
+
requests = request_set.sorted_requests.map {|req| req.full_name }
|
1154
1128
|
|
1155
1129
|
assert request_set.ignore_dependencies
|
1156
1130
|
|
@@ -1160,79 +1134,22 @@ class TestGemDependencyInstaller < Gem::TestCase
|
|
1160
1134
|
def test_resolve_dependencies_local
|
1161
1135
|
util_setup_gems
|
1162
1136
|
|
1163
|
-
@a2, @a2_gem = util_gem
|
1137
|
+
@a2, @a2_gem = util_gem "a", "2"
|
1164
1138
|
FileUtils.mv @a1_gem, @tempdir
|
1165
1139
|
FileUtils.mv @a2_gem, @tempdir
|
1166
1140
|
|
1167
1141
|
inst = Gem::DependencyInstaller.new
|
1168
|
-
request_set = inst.resolve_dependencies
|
1142
|
+
request_set = inst.resolve_dependencies "a-1.gem", req(">= 0")
|
1169
1143
|
|
1170
|
-
requests = request_set.sorted_requests.map {
|
1144
|
+
requests = request_set.sorted_requests.map {|req| req.full_name }
|
1171
1145
|
|
1172
1146
|
assert_equal %w[a-1], requests
|
1173
1147
|
end
|
1174
1148
|
|
1175
|
-
def util_write_a1_bin
|
1176
|
-
write_file File.join('gems', 'a-1', 'bin', 'a_bin') do |fp|
|
1177
|
-
fp.puts "#!/usr/bin/ruby"
|
1178
|
-
end
|
1179
|
-
end
|
1180
|
-
|
1181
|
-
def util_setup_c1_pre
|
1182
|
-
@c1_pre, @c1_pre_gem = util_spec 'c', '1.a' do |s|
|
1183
|
-
s.add_dependency 'a', '1.a'
|
1184
|
-
s.add_dependency 'b', '1'
|
1185
|
-
end
|
1186
|
-
|
1187
|
-
util_reset_gems
|
1188
|
-
end
|
1189
|
-
|
1190
1149
|
def util_setup_d
|
1191
|
-
@d1, @d1_gem = util_gem
|
1192
|
-
@d2, @d2_gem = util_gem
|
1193
|
-
|
1194
|
-
util_reset_gems
|
1195
|
-
end
|
1196
|
-
|
1197
|
-
def util_setup_wxyz
|
1198
|
-
@x1_m, @x1_m_gem = util_spec 'x', '1' do |s|
|
1199
|
-
s.platform = Gem::Platform.new %w[cpu my_platform 1]
|
1200
|
-
end
|
1201
|
-
|
1202
|
-
@x1_o, @x1_o_gem = util_spec 'x', '1' do |s|
|
1203
|
-
s.platform = Gem::Platform.new %w[cpu other_platform 1]
|
1204
|
-
end
|
1205
|
-
|
1206
|
-
@w1, @w1_gem = util_spec 'w', '1', 'x' => nil
|
1207
|
-
|
1208
|
-
@y1, @y1_gem = util_spec 'y', '1'
|
1209
|
-
@y1_1_p, @y1_1_p_gem = util_spec 'y', '1.1' do |s|
|
1210
|
-
s.platform = Gem::Platform.new %w[cpu my_platform 1]
|
1211
|
-
end
|
1212
|
-
|
1213
|
-
@z1, @z1_gem = util_spec 'z', '1', 'y' => nil
|
1214
|
-
|
1215
|
-
util_reset_gems
|
1216
|
-
end
|
1150
|
+
@d1, @d1_gem = util_gem "d", "1"
|
1151
|
+
@d2, @d2_gem = util_gem "d", "2"
|
1217
1152
|
|
1218
|
-
|
1219
|
-
@a1 ||= nil
|
1220
|
-
@b1 ||= nil
|
1221
|
-
@a1_pre ||= nil
|
1222
|
-
@c1_pre ||= nil
|
1223
|
-
@d1 ||= nil
|
1224
|
-
@d2 ||= nil
|
1225
|
-
@w1 ||= nil
|
1226
|
-
@x1_m ||= nil
|
1227
|
-
@x1_o ||= nil
|
1228
|
-
@y1 ||= nil
|
1229
|
-
@y1_1_p ||= nil
|
1230
|
-
@z1 ||= nil
|
1231
|
-
|
1232
|
-
util_setup_spec_fetcher(*[@a1, @a1_pre, @b1, @c1_pre,
|
1233
|
-
@d1, @d2, @x1_m, @x1_o, @w1, @y1,
|
1234
|
-
@y1_1_p, @z1].compact)
|
1235
|
-
|
1236
|
-
util_clear_gems
|
1153
|
+
util_setup_spec_fetcher(@d1, @d2)
|
1237
1154
|
end
|
1238
1155
|
end
|