rubygems-update 3.3.18 → 3.4.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1429 -1064
- data/CONTRIBUTING.md +31 -8
- data/Manifest.txt +61 -36
- data/POLICIES.md +55 -20
- data/README.md +19 -6
- data/bundler/CHANGELOG.md +457 -1
- data/bundler/README.md +3 -6
- data/bundler/UPGRADING.md +11 -4
- data/bundler/bundler.gemspec +8 -10
- data/bundler/exe/bundle +5 -16
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +2 -0
- data/bundler/lib/bundler/cli/console.rb +2 -2
- data/bundler/lib/bundler/cli/doctor.rb +4 -6
- data/bundler/lib/bundler/cli/gem.rb +62 -40
- data/bundler/lib/bundler/cli/info.rb +1 -1
- data/bundler/lib/bundler/cli/init.rb +6 -2
- data/bundler/lib/bundler/cli/install.rb +8 -6
- data/bundler/lib/bundler/cli/lock.rb +8 -5
- data/bundler/lib/bundler/cli/open.rb +6 -4
- data/bundler/lib/bundler/cli/outdated.rb +14 -7
- data/bundler/lib/bundler/cli/platform.rb +7 -5
- data/bundler/lib/bundler/cli/viz.rb +1 -1
- data/bundler/lib/bundler/cli.rb +53 -7
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/updater.rb +40 -39
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +16 -5
- data/bundler/lib/bundler/definition.rb +262 -133
- data/bundler/lib/bundler/dependency.rb +20 -86
- data/bundler/lib/bundler/digest.rb +1 -1
- data/bundler/lib/bundler/dsl.rb +6 -7
- data/bundler/lib/bundler/endpoint_specification.rb +2 -13
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/environment_preserver.rb +3 -2
- data/bundler/lib/bundler/errors.rb +1 -11
- data/bundler/lib/bundler/feature_flag.rb +0 -2
- data/bundler/lib/bundler/fetcher/compact_index.rb +11 -13
- data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
- data/bundler/lib/bundler/fetcher/downloader.rb +4 -5
- data/bundler/lib/bundler/fetcher/index.rb +1 -2
- data/bundler/lib/bundler/fetcher.rb +21 -15
- data/bundler/lib/bundler/force_platform.rb +18 -0
- data/bundler/lib/bundler/friendly_errors.rb +1 -4
- data/bundler/lib/bundler/gem_helper.rb +3 -4
- data/bundler/lib/bundler/gem_helpers.rb +7 -2
- data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
- data/bundler/lib/bundler/graph.rb +3 -3
- data/bundler/lib/bundler/index.rb +13 -47
- data/bundler/lib/bundler/injector.rb +5 -4
- data/bundler/lib/bundler/inline.rb +9 -11
- data/bundler/lib/bundler/installer/parallel_installer.rb +4 -34
- data/bundler/lib/bundler/installer/standalone.rb +13 -9
- data/bundler/lib/bundler/installer.rb +17 -29
- data/bundler/lib/bundler/lazy_specification.rb +54 -53
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +17 -16
- data/bundler/lib/bundler/man/bundle-add.1 +6 -2
- data/bundler/lib/bundler/man/bundle-add.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +9 -3
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +9 -2
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
- data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +26 -10
- data/bundler/lib/bundler/man/bundle-config.1.ronn +17 -10
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
- data/bundler/lib/bundler/man/bundle-gem.1 +27 -37
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +5 -5
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +3 -3
- data/bundler/lib/bundler/man/bundle-info.1.ronn +3 -3
- data/bundler/lib/bundler/man/bundle-init.1 +5 -1
- data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
- data/bundler/lib/bundler/man/bundle-install.1 +5 -30
- data/bundler/lib/bundler/man/bundle-install.1.ronn +6 -29
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
- data/bundler/lib/bundler/man/bundle-open.1 +22 -2
- data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +13 -9
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +12 -9
- data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +1 -1
- data/bundler/lib/bundler/man/bundle-update.1 +1 -1
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle.1 +15 -10
- data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
- data/bundler/lib/bundler/man/gemfile.5 +55 -55
- data/bundler/lib/bundler/man/gemfile.5.ronn +57 -53
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +5 -7
- data/bundler/lib/bundler/plugin/index.rb +5 -5
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -4
- data/bundler/lib/bundler/plugin/installer.rb +5 -2
- data/bundler/lib/bundler/plugin.rb +3 -1
- data/bundler/lib/bundler/remote_specification.rb +7 -12
- data/bundler/lib/bundler/resolver/base.rb +107 -0
- data/bundler/lib/bundler/resolver/candidate.rb +94 -0
- data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
- data/bundler/lib/bundler/resolver/package.rb +72 -0
- data/bundler/lib/bundler/resolver/root.rb +25 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +42 -71
- data/bundler/lib/bundler/resolver.rb +335 -328
- data/bundler/lib/bundler/ruby_dsl.rb +7 -1
- data/bundler/lib/bundler/ruby_version.rb +8 -8
- data/bundler/lib/bundler/rubygems_ext.rb +100 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +23 -14
- data/bundler/lib/bundler/rubygems_integration.rb +11 -15
- data/bundler/lib/bundler/runtime.rb +2 -6
- data/bundler/lib/bundler/safe_marshal.rb +31 -0
- data/bundler/lib/bundler/settings.rb +5 -11
- data/bundler/lib/bundler/setup.rb +4 -1
- data/bundler/lib/bundler/shared_helpers.rb +3 -3
- data/bundler/lib/bundler/source/git/git_proxy.rb +237 -74
- data/bundler/lib/bundler/source/git.rb +55 -30
- data/bundler/lib/bundler/source/metadata.rb +1 -2
- data/bundler/lib/bundler/source/path/installer.rb +1 -22
- data/bundler/lib/bundler/source/path.rb +6 -6
- data/bundler/lib/bundler/source/rubygems.rb +26 -81
- data/bundler/lib/bundler/source.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +8 -2
- data/bundler/lib/bundler/spec_set.rb +60 -37
- data/bundler/lib/bundler/templates/Executable +1 -1
- data/bundler/lib/bundler/templates/Executable.bundler +5 -10
- data/bundler/lib/bundler/templates/Executable.standalone +2 -0
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/README.md.tt +6 -4
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -1
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +0 -4
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/newgem.c.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +9 -2
- data/bundler/lib/bundler/ui/rg_proxy.rb +1 -1
- data/bundler/lib/bundler/ui/shell.rb +35 -12
- data/bundler/lib/bundler/ui/silent.rb +21 -5
- data/bundler/lib/bundler/uri_normalizer.rb +23 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1351 -409
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
- data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +248 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +64 -16
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +27 -7
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +15 -9
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -6
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +1 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -2
- data/bundler/lib/bundler/vendored_persistent.rb +1 -33
- data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_pub_grub.rb} +1 -1
- data/bundler/lib/bundler/version.rb +5 -1
- data/bundler/lib/bundler/worker.rb +5 -7
- data/bundler/lib/bundler.rb +25 -77
- data/{bin → exe}/gem +4 -5
- data/{bin → exe}/update_rubygems +12 -10
- data/lib/rubygems/available_set.rb +4 -3
- data/lib/rubygems/basic_specification.rb +5 -4
- data/lib/rubygems/bundler_version_finder.rb +2 -2
- data/lib/rubygems/command.rb +41 -32
- data/lib/rubygems/command_manager.rb +30 -15
- data/lib/rubygems/commands/build_command.rb +12 -8
- data/lib/rubygems/commands/cert_command.rb +34 -33
- data/lib/rubygems/commands/check_command.rb +21 -20
- data/lib/rubygems/commands/cleanup_command.rb +18 -17
- data/lib/rubygems/commands/contents_command.rb +14 -13
- data/lib/rubygems/commands/dependency_command.rb +17 -16
- data/lib/rubygems/commands/environment_command.rb +6 -5
- data/lib/rubygems/commands/exec_command.rb +249 -0
- data/lib/rubygems/commands/fetch_command.rb +10 -9
- data/lib/rubygems/commands/generate_index_command.rb +18 -17
- data/lib/rubygems/commands/help_command.rb +7 -6
- data/lib/rubygems/commands/info_command.rb +3 -3
- data/lib/rubygems/commands/install_command.rb +28 -23
- data/lib/rubygems/commands/list_command.rb +4 -3
- data/lib/rubygems/commands/lock_command.rb +5 -4
- data/lib/rubygems/commands/mirror_command.rb +4 -3
- data/lib/rubygems/commands/open_command.rb +10 -9
- data/lib/rubygems/commands/outdated_command.rb +6 -5
- data/lib/rubygems/commands/owner_command.rb +17 -14
- data/lib/rubygems/commands/pristine_command.rb +46 -36
- data/lib/rubygems/commands/push_command.rb +9 -8
- data/lib/rubygems/commands/query_command.rb +9 -8
- data/lib/rubygems/commands/rdoc_command.rb +21 -19
- data/lib/rubygems/commands/search_command.rb +4 -3
- data/lib/rubygems/commands/server_command.rb +4 -3
- data/lib/rubygems/commands/setup_command.rb +97 -106
- data/lib/rubygems/commands/signin_command.rb +10 -9
- data/lib/rubygems/commands/signout_command.rb +8 -7
- data/lib/rubygems/commands/sources_command.rb +22 -21
- data/lib/rubygems/commands/specification_command.rb +14 -13
- data/lib/rubygems/commands/stale_command.rb +3 -2
- data/lib/rubygems/commands/uninstall_command.rb +44 -40
- data/lib/rubygems/commands/unpack_command.rb +14 -13
- data/lib/rubygems/commands/update_command.rb +42 -63
- data/lib/rubygems/commands/which_command.rb +8 -7
- data/lib/rubygems/commands/yank_command.rb +12 -11
- data/lib/rubygems/config_file.rb +55 -21
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
- data/lib/rubygems/core_ext/kernel_require.rb +109 -115
- data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
- data/lib/rubygems/core_ext/tcpsocket_init.rb +3 -1
- data/lib/rubygems/defaults.rb +33 -18
- data/lib/rubygems/dependency.rb +15 -11
- data/lib/rubygems/dependency_installer.rb +38 -37
- data/lib/rubygems/dependency_list.rb +7 -6
- data/lib/rubygems/deprecate.rb +3 -2
- data/lib/rubygems/doctor.rb +19 -18
- data/lib/rubygems/errors.rb +3 -2
- data/lib/rubygems/exceptions.rb +16 -8
- data/lib/rubygems/ext/build_error.rb +2 -1
- data/lib/rubygems/ext/builder.rb +37 -21
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +9 -5
- data/lib/rubygems/ext/cargo_builder.rb +150 -111
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +2 -1
- data/lib/rubygems/ext/ext_conf_builder.rb +11 -9
- data/lib/rubygems/ext/rake_builder.rb +7 -5
- data/lib/rubygems/ext.rb +8 -7
- data/lib/rubygems/gem_runner.rb +6 -5
- data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +163 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_listener.rb +105 -0
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +78 -0
- data/lib/rubygems/gemcutter_utilities.rb +90 -34
- data/lib/rubygems/indexer.rb +29 -28
- data/lib/rubygems/install_default_message.rb +3 -2
- data/lib/rubygems/install_message.rb +3 -2
- data/lib/rubygems/install_update_options.rb +56 -55
- data/lib/rubygems/installer.rb +54 -46
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
- data/lib/rubygems/local_remote_options.rb +19 -20
- data/lib/rubygems/mock_gem_ui.rb +3 -2
- data/lib/rubygems/name_tuple.rb +5 -4
- data/lib/rubygems/optparse/lib/optparse.rb +20 -15
- data/lib/rubygems/optparse.rb +1 -1
- data/lib/rubygems/package/digest_io.rb +1 -0
- data/lib/rubygems/package/file_source.rb +3 -2
- data/lib/rubygems/package/io_source.rb +1 -0
- data/lib/rubygems/package/old.rb +9 -8
- data/lib/rubygems/package/source.rb +1 -0
- data/lib/rubygems/package/tar_header.rb +63 -62
- data/lib/rubygems/package/tar_reader/entry.rb +91 -9
- data/lib/rubygems/package/tar_reader.rb +2 -29
- data/lib/rubygems/package/tar_writer.rb +8 -7
- data/lib/rubygems/package.rb +64 -48
- data/lib/rubygems/package_task.rb +5 -4
- data/lib/rubygems/path_support.rb +1 -0
- data/lib/rubygems/platform.rb +79 -53
- data/lib/rubygems/psych_tree.rb +2 -1
- data/lib/rubygems/query_utils.rb +35 -35
- data/lib/rubygems/rdoc.rb +3 -2
- data/lib/rubygems/remote_fetcher.rb +23 -22
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +2 -1
- data/lib/rubygems/request/https_pool.rb +1 -0
- data/lib/rubygems/request.rb +23 -22
- data/lib/rubygems/request_set/gem_dependency_api.rb +123 -123
- data/lib/rubygems/request_set/lockfile/parser.rb +28 -27
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -3
- data/lib/rubygems/request_set/lockfile.rb +6 -5
- data/lib/rubygems/request_set.rb +20 -19
- data/lib/rubygems/requirement.rb +15 -14
- data/lib/rubygems/resolver/activation_request.rb +4 -3
- data/lib/rubygems/resolver/api_set.rb +5 -4
- data/lib/rubygems/resolver/api_specification.rb +7 -6
- data/lib/rubygems/resolver/best_set.rb +6 -5
- data/lib/rubygems/resolver/composed_set.rb +1 -0
- data/lib/rubygems/resolver/conflict.rb +11 -10
- data/lib/rubygems/resolver/current_set.rb +1 -0
- data/lib/rubygems/resolver/dependency_request.rb +3 -2
- data/lib/rubygems/resolver/git_set.rb +3 -2
- data/lib/rubygems/resolver/git_specification.rb +7 -6
- data/lib/rubygems/resolver/index_set.rb +4 -3
- data/lib/rubygems/resolver/index_specification.rb +7 -5
- data/lib/rubygems/resolver/installed_specification.rb +5 -4
- data/lib/rubygems/resolver/installer_set.rb +15 -17
- data/lib/rubygems/resolver/local_specification.rb +3 -2
- data/lib/rubygems/resolver/lock_set.rb +5 -4
- data/lib/rubygems/resolver/lock_specification.rb +5 -4
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +1 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/lib/rubygems/resolver/molinillo.rb +2 -1
- data/lib/rubygems/resolver/requirement_list.rb +1 -0
- data/lib/rubygems/resolver/set.rb +1 -0
- data/lib/rubygems/resolver/source_set.rb +2 -0
- data/lib/rubygems/resolver/spec_specification.rb +1 -0
- data/lib/rubygems/resolver/specification.rb +2 -1
- data/lib/rubygems/resolver/stats.rb +2 -1
- data/lib/rubygems/resolver/vendor_set.rb +2 -1
- data/lib/rubygems/resolver/vendor_specification.rb +4 -3
- data/lib/rubygems/resolver.rb +41 -40
- data/lib/rubygems/s3_uri_signer.rb +10 -8
- data/lib/rubygems/safe_yaml.rb +4 -2
- data/lib/rubygems/security/policies.rb +48 -47
- data/lib/rubygems/security/policy.rb +19 -18
- data/lib/rubygems/security/signer.rb +6 -5
- data/lib/rubygems/security/trust_dir.rb +5 -4
- data/lib/rubygems/security.rb +30 -42
- data/lib/rubygems/security_option.rb +6 -5
- data/lib/rubygems/shellwords.rb +3 -0
- data/lib/rubygems/source/git.rb +22 -22
- data/lib/rubygems/source/installed.rb +2 -1
- data/lib/rubygems/source/local.rb +3 -2
- data/lib/rubygems/source/lock.rb +1 -0
- data/lib/rubygems/source/specific_file.rb +2 -1
- data/lib/rubygems/source/vendor.rb +1 -0
- data/lib/rubygems/source.rb +16 -16
- data/lib/rubygems/spec_fetcher.rb +10 -9
- data/lib/rubygems/specification.rb +121 -114
- data/lib/rubygems/specification_policy.rb +36 -15
- data/lib/rubygems/stub_specification.rb +11 -9
- data/lib/rubygems/text.rb +2 -2
- data/lib/rubygems/tsort/lib/tsort.rb +308 -310
- data/lib/rubygems/tsort.rb +1 -1
- data/lib/rubygems/uninstaller.rb +19 -18
- data/lib/rubygems/update_suggestion.rb +69 -0
- data/lib/rubygems/uri.rb +4 -4
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +37 -21
- data/lib/rubygems/util/licenses.rb +4 -3
- data/lib/rubygems/util/list.rb +1 -0
- data/lib/rubygems/util.rb +12 -15
- data/lib/rubygems/validator.rb +7 -6
- data/lib/rubygems/version.rb +17 -11
- data/lib/rubygems/version_option.rb +4 -3
- data/lib/rubygems.rb +89 -68
- data/rubygems-update.gemspec +10 -8
- data/setup.rb +10 -9
- data/test/rubygems/alternate_cert.pem +14 -14
- data/test/rubygems/alternate_cert_32.pem +15 -15
- data/test/rubygems/alternate_key.pem +25 -25
- data/test/rubygems/bad_rake.rb +1 -0
- data/test/rubygems/bundler_test_gem.rb +421 -0
- data/test/rubygems/child_cert.pem +15 -16
- data/test/rubygems/child_cert_32.pem +15 -16
- data/test/rubygems/child_key.pem +25 -25
- data/test/rubygems/encrypted_private_key.pem +26 -26
- data/test/rubygems/expired_cert.pem +15 -15
- data/test/rubygems/fake_certlib/openssl.rb +1 -0
- data/test/rubygems/future_cert.pem +15 -15
- data/test/rubygems/future_cert_32.pem +15 -15
- data/test/rubygems/good_rake.rb +1 -0
- data/test/rubygems/grandchild_cert.pem +15 -16
- data/test/rubygems/grandchild_cert_32.pem +15 -16
- data/test/rubygems/grandchild_key.pem +25 -25
- data/test/rubygems/helper.rb +172 -151
- data/test/rubygems/installer_test_case.rb +14 -13
- data/test/rubygems/invalid_issuer_cert.pem +16 -16
- data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
- data/test/rubygems/invalid_key.pem +25 -25
- data/test/rubygems/invalid_signer_cert.pem +15 -15
- data/test/rubygems/invalid_signer_cert_32.pem +15 -15
- data/test/rubygems/invalidchild_cert.pem +15 -16
- data/test/rubygems/invalidchild_cert_32.pem +15 -16
- data/test/rubygems/invalidchild_key.pem +25 -25
- data/test/rubygems/multifactor_auth_utilities.rb +111 -0
- data/test/rubygems/package/tar_test_case.rb +53 -17
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +2 -1
- data/test/rubygems/plugin/load/rubygems_plugin.rb +1 -0
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +2 -1
- data/test/rubygems/private_key.pem +25 -25
- data/test/rubygems/public_cert.pem +16 -16
- data/test/rubygems/public_cert_32.pem +15 -15
- data/test/rubygems/public_key.pem +7 -7
- data/test/rubygems/rubygems/commands/crash_command.rb +1 -0
- data/test/rubygems/rubygems_plugin.rb +3 -2
- data/test/rubygems/simple_gem.rb +2 -1
- data/test/rubygems/specifications/bar-0.0.2.gemspec +2 -0
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +6 -4
- data/test/rubygems/test_bundled_ca.rb +13 -12
- data/test/rubygems/test_config.rb +5 -4
- data/test/rubygems/test_deprecate.rb +5 -4
- data/test/rubygems/test_exit.rb +9 -3
- data/test/rubygems/test_gem.rb +339 -677
- data/test/rubygems/test_gem_available_set.rb +22 -21
- data/test/rubygems/test_gem_bundler_version_finder.rb +6 -4
- data/test/rubygems/test_gem_command.rb +45 -44
- data/test/rubygems/test_gem_command_manager.rb +96 -30
- data/test/rubygems/test_gem_commands_build_command.rb +74 -63
- data/test/rubygems/test_gem_commands_cert_command.rb +98 -99
- data/test/rubygems/test_gem_commands_check_command.rb +5 -4
- data/test/rubygems/test_gem_commands_cleanup_command.rb +41 -40
- data/test/rubygems/test_gem_commands_contents_command.rb +28 -27
- data/test/rubygems/test_gem_commands_dependency_command.rb +37 -36
- data/test/rubygems/test_gem_commands_environment_command.rb +17 -16
- data/test/rubygems/test_gem_commands_exec_command.rb +853 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +38 -37
- data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -7
- data/test/rubygems/test_gem_commands_help_command.rb +14 -13
- data/test/rubygems/test_gem_commands_info_command.rb +29 -2
- data/test/rubygems/test_gem_commands_install_command.rb +152 -132
- data/test/rubygems/test_gem_commands_list_command.rb +5 -4
- data/test/rubygems/test_gem_commands_lock_command.rb +11 -10
- data/test/rubygems/test_gem_commands_mirror.rb +3 -2
- data/test/rubygems/test_gem_commands_open_command.rb +5 -4
- data/test/rubygems/test_gem_commands_outdated_command.rb +10 -9
- data/test/rubygems/test_gem_commands_owner_command.rb +227 -50
- data/test/rubygems/test_gem_commands_pristine_command.rb +142 -93
- data/test/rubygems/test_gem_commands_push_command.rb +189 -64
- data/test/rubygems/test_gem_commands_query_command.rb +74 -73
- data/test/rubygems/test_gem_commands_search_command.rb +3 -2
- data/test/rubygems/test_gem_commands_server_command.rb +3 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +123 -96
- data/test/rubygems/test_gem_commands_signin_command.rb +71 -31
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +29 -29
- data/test/rubygems/test_gem_commands_specification_command.rb +33 -32
- data/test/rubygems/test_gem_commands_stale_command.rb +5 -4
- data/test/rubygems/test_gem_commands_uninstall_command.rb +99 -81
- data/test/rubygems/test_gem_commands_unpack_command.rb +32 -31
- data/test/rubygems/test_gem_commands_update_command.rb +96 -95
- data/test/rubygems/test_gem_commands_which_command.rb +7 -6
- data/test/rubygems/test_gem_commands_yank_command.rb +162 -43
- data/test/rubygems/test_gem_config_file.rb +94 -81
- data/test/rubygems/test_gem_dependency.rb +76 -73
- data/test/rubygems/test_gem_dependency_installer.rb +200 -165
- data/test/rubygems/test_gem_dependency_list.rb +48 -47
- data/test/rubygems/test_gem_dependency_resolution_error.rb +5 -4
- data/test/rubygems/test_gem_doctor.rb +27 -26
- data/test/rubygems/test_gem_ext_builder.rb +60 -61
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +4 -4
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.lock → ext/custom_name_lib/Cargo.lock} +23 -33
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{Cargo.toml → ext/custom_name_lib/Cargo.toml} +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/{src → ext/custom_name_lib/src}/lib.rs +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +3 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +37 -33
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +1 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +2 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +12 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +48 -59
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +20 -19
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +21 -36
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -15
- data/test/rubygems/test_gem_ext_configure_builder.rb +14 -13
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +51 -52
- data/test/rubygems/test_gem_ext_rake_builder.rb +16 -15
- data/test/rubygems/test_gem_gem_runner.rb +15 -9
- data/test/rubygems/test_gem_gemcutter_utilities.rb +170 -84
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +5 -4
- data/test/rubygems/test_gem_indexer.rb +87 -67
- data/test/rubygems/test_gem_install_update_options.rb +17 -16
- data/test/rubygems/test_gem_installer.rb +422 -304
- data/test/rubygems/test_gem_local_remote_options.rb +11 -10
- data/test/rubygems/test_gem_name_tuple.rb +5 -4
- data/test/rubygems/test_gem_package.rb +243 -231
- data/test/rubygems/test_gem_package_old.rb +14 -13
- data/test/rubygems/test_gem_package_tar_header.rb +48 -47
- data/test/rubygems/test_gem_package_tar_reader.rb +56 -8
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +162 -16
- data/test/rubygems/test_gem_package_tar_writer.rb +77 -76
- data/test/rubygems/test_gem_package_task.rb +19 -18
- data/test/rubygems/test_gem_path_support.rb +15 -14
- data/test/rubygems/test_gem_platform.rb +333 -227
- data/test/rubygems/test_gem_rdoc.rb +15 -14
- data/test/rubygems/test_gem_remote_fetcher.rb +155 -154
- data/test/rubygems/test_gem_request.rb +64 -58
- data/test/rubygems/test_gem_request_connection_pools.rb +30 -29
- data/test/rubygems/test_gem_request_set.rb +101 -100
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +210 -211
- data/test/rubygems/test_gem_request_set_lockfile.rb +87 -86
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -57
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +63 -62
- data/test/rubygems/test_gem_requirement.rb +48 -41
- data/test/rubygems/test_gem_resolver.rb +167 -99
- data/test/rubygems/test_gem_resolver_activation_request.rb +7 -6
- data/test/rubygems/test_gem_resolver_api_set.rb +34 -33
- data/test/rubygems/test_gem_resolver_api_specification.rb +48 -47
- data/test/rubygems/test_gem_resolver_best_set.rb +23 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +2 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +13 -12
- data/test/rubygems/test_gem_resolver_dependency_request.rb +16 -15
- data/test/rubygems/test_gem_resolver_git_set.rb +22 -21
- data/test/rubygems/test_gem_resolver_git_specification.rb +22 -21
- data/test/rubygems/test_gem_resolver_index_set.rb +13 -12
- data/test/rubygems/test_gem_resolver_index_specification.rb +17 -16
- data/test/rubygems/test_gem_resolver_installed_specification.rb +6 -5
- data/test/rubygems/test_gem_resolver_installer_set.rb +79 -34
- data/test/rubygems/test_gem_resolver_local_specification.rb +8 -7
- data/test/rubygems/test_gem_resolver_lock_set.rb +13 -12
- data/test/rubygems/test_gem_resolver_lock_specification.rb +18 -17
- data/test/rubygems/test_gem_resolver_requirement_list.rb +2 -1
- data/test/rubygems/test_gem_resolver_specification.rb +9 -8
- data/test/rubygems/test_gem_resolver_vendor_set.rb +7 -6
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +11 -10
- data/test/rubygems/test_gem_security.rb +69 -68
- data/test/rubygems/test_gem_security_policy.rb +72 -72
- data/test/rubygems/test_gem_security_signer.rb +35 -34
- data/test/rubygems/test_gem_security_trust_dir.rb +7 -6
- data/test/rubygems/test_gem_silent_ui.rb +39 -32
- data/test/rubygems/test_gem_source.rb +45 -44
- data/test/rubygems/test_gem_source_fetch_problem.rb +10 -9
- data/test/rubygems/test_gem_source_git.rb +69 -62
- data/test/rubygems/test_gem_source_installed.rb +17 -16
- data/test/rubygems/test_gem_source_list.rb +6 -5
- data/test/rubygems/test_gem_source_local.rb +15 -14
- data/test/rubygems/test_gem_source_lock.rb +32 -31
- data/test/rubygems/test_gem_source_specific_file.rb +18 -17
- data/test/rubygems/test_gem_source_subpath_problem.rb +8 -7
- data/test/rubygems/test_gem_source_vendor.rb +14 -13
- data/test/rubygems/test_gem_spec_fetcher.rb +73 -72
- data/test/rubygems/test_gem_specification.rb +533 -469
- data/test/rubygems/test_gem_stream_ui.rb +53 -22
- data/test/rubygems/test_gem_stub_specification.rb +33 -32
- data/test/rubygems/test_gem_text.rb +2 -1
- data/test/rubygems/test_gem_uninstaller.rb +118 -117
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +4 -3
- data/test/rubygems/test_gem_update_suggestion.rb +209 -0
- data/test/rubygems/test_gem_uri.rb +6 -4
- data/test/rubygems/test_gem_uri_formatter.rb +15 -14
- data/test/rubygems/test_gem_util.rb +24 -23
- data/test/rubygems/test_gem_validator.rb +8 -8
- data/test/rubygems/test_gem_version.rb +24 -16
- data/test/rubygems/test_gem_version_option.rb +16 -15
- data/test/rubygems/test_kernel.rb +43 -48
- data/test/rubygems/test_project_sanity.rb +32 -3
- data/test/rubygems/test_remote_fetch_error.rb +8 -7
- data/test/rubygems/test_require.rb +118 -103
- data/test/rubygems/test_rubygems.rb +10 -8
- data/test/rubygems/test_webauthn_listener.rb +143 -0
- data/test/rubygems/test_webauthn_listener_response.rb +93 -0
- data/test/rubygems/test_webauthn_poller.rb +124 -0
- data/test/rubygems/utilities.rb +98 -34
- data/test/rubygems/wrong_key_cert.pem +15 -15
- data/test/rubygems/wrong_key_cert_32.pem +15 -15
- data/test/test_changelog_generator.rb +1 -1
- metadata +99 -46
- data/bundler/lib/bundler/dep_proxy.rb +0 -55
- data/bundler/lib/bundler/templates/gems.rb +0 -5
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +0 -5
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -149
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
- data/bundler/lib/bundler/vendored_molinillo.rb +0 -4
- data/bundler/lib/bundler/version_ranges.rb +0 -122
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +0 -21
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/build.rb +0 -21
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
require_relative "helper"
|
4
|
+
require "rubygems/request_set"
|
4
5
|
|
5
6
|
class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
6
7
|
def setup
|
@@ -13,7 +14,7 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
13
14
|
@git_set = Gem::Resolver::GitSet.new
|
14
15
|
@vendor_set = Gem::Resolver::VendorSet.new
|
15
16
|
|
16
|
-
@gda = @GDA.new @set,
|
17
|
+
@gda = @GDA.new @set, "gem.deps.rb"
|
17
18
|
@gda.instance_variable_set :@git_set, @git_set
|
18
19
|
@gda.instance_variable_set :@vendor_set, @vendor_set
|
19
20
|
end
|
@@ -44,45 +45,45 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
44
45
|
end
|
45
46
|
|
46
47
|
def test_gempspec_with_multiple_runtime_deps
|
47
|
-
save_gemspec
|
48
|
-
s.add_runtime_dependency
|
48
|
+
save_gemspec "foo", "1.0" do |s|
|
49
|
+
s.add_runtime_dependency "bar", ">= 1.6.0", "< 1.6.4"
|
49
50
|
end
|
50
51
|
@gda.gemspec
|
51
52
|
assert_equal %w[ foo bar ].sort, @set.dependencies.map(&:name).sort
|
52
|
-
bar = @set.dependencies.find {|d| d.name ==
|
53
|
-
assert_equal [["<", Gem::Version.create(
|
54
|
-
[">=", Gem::Version.create(
|
53
|
+
bar = @set.dependencies.find {|d| d.name == "bar" }
|
54
|
+
assert_equal [["<", Gem::Version.create("1.6.4")],
|
55
|
+
[">=", Gem::Version.create("1.6.0")]], bar.requirement.requirements.sort
|
55
56
|
end
|
56
57
|
|
57
58
|
def test_gemspec_without_group
|
58
|
-
@gda.send :add_dependencies, [:development], [dep(
|
59
|
+
@gda.send :add_dependencies, [:development], [dep("a", "= 1")]
|
59
60
|
|
60
|
-
assert_equal [dep(
|
61
|
+
assert_equal [dep("a", "= 1")], @set.dependencies
|
61
62
|
|
62
63
|
@gda.without_groups << :development
|
63
64
|
|
64
|
-
@gda.send :add_dependencies, [:development], [dep(
|
65
|
+
@gda.send :add_dependencies, [:development], [dep("b", "= 2")]
|
65
66
|
|
66
|
-
assert_equal [dep(
|
67
|
+
assert_equal [dep("a", "= 1")], @set.dependencies
|
67
68
|
end
|
68
69
|
|
69
70
|
def test_gem
|
70
|
-
@gda.gem
|
71
|
+
@gda.gem "a"
|
71
72
|
|
72
|
-
assert_equal [dep(
|
73
|
+
assert_equal [dep("a")], @set.dependencies
|
73
74
|
|
74
|
-
assert_equal %w[a], @gda.requires[
|
75
|
+
assert_equal %w[a], @gda.requires["a"]
|
75
76
|
|
76
|
-
expected = {
|
77
|
+
expected = { "a" => Gem::Requirement.default }
|
77
78
|
|
78
79
|
assert_equal expected, @gda.dependencies
|
79
80
|
end
|
80
81
|
|
81
82
|
def test_gem_duplicate
|
82
|
-
@gda.gem
|
83
|
+
@gda.gem "a"
|
83
84
|
|
84
85
|
_, err = capture_output do
|
85
|
-
@gda.gem
|
86
|
+
@gda.gem "a"
|
86
87
|
end
|
87
88
|
|
88
89
|
expected = "Gem dependencies file gem.deps.rb requires a more than once."
|
@@ -91,141 +92,141 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
91
92
|
end
|
92
93
|
|
93
94
|
def test_gem_git
|
94
|
-
@gda.gem
|
95
|
+
@gda.gem "a", :git => "git/a"
|
95
96
|
|
96
|
-
assert_equal [dep(
|
97
|
+
assert_equal [dep("a")], @set.dependencies
|
97
98
|
|
98
|
-
assert_equal
|
99
|
+
assert_equal ["git/a", nil], @git_set.repositories["a"]
|
99
100
|
|
100
|
-
expected = {
|
101
|
+
expected = { "a" => Gem::Requirement.create("!") }
|
101
102
|
|
102
103
|
assert_equal expected, @gda.dependencies
|
103
104
|
end
|
104
105
|
|
105
106
|
def test_gem_bitbucket
|
106
|
-
@gda.gem
|
107
|
+
@gda.gem "a", :bitbucket => "example/repository"
|
107
108
|
|
108
|
-
assert_equal [dep(
|
109
|
+
assert_equal [dep("a")], @set.dependencies
|
109
110
|
|
110
|
-
assert_equal
|
111
|
-
@git_set.repositories[
|
111
|
+
assert_equal ["https://example@bitbucket.org/example/repository.git", nil],
|
112
|
+
@git_set.repositories["a"]
|
112
113
|
|
113
|
-
expected = {
|
114
|
+
expected = { "a" => Gem::Requirement.create("!") }
|
114
115
|
|
115
116
|
assert_equal expected, @gda.dependencies
|
116
117
|
end
|
117
118
|
|
118
119
|
def test_gem_bitbucket_expand_path
|
119
|
-
@gda.gem
|
120
|
+
@gda.gem "a", :bitbucket => "example"
|
120
121
|
|
121
|
-
assert_equal [dep(
|
122
|
+
assert_equal [dep("a")], @set.dependencies
|
122
123
|
|
123
|
-
assert_equal
|
124
|
-
@git_set.repositories[
|
124
|
+
assert_equal ["https://example@bitbucket.org/example/example.git", nil],
|
125
|
+
@git_set.repositories["a"]
|
125
126
|
|
126
|
-
expected = {
|
127
|
+
expected = { "a" => Gem::Requirement.create("!") }
|
127
128
|
|
128
129
|
assert_equal expected, @gda.dependencies
|
129
130
|
end
|
130
131
|
|
131
132
|
def test_gem_git_branch
|
132
133
|
_, err = capture_output do
|
133
|
-
@gda.gem
|
134
|
+
@gda.gem "a", :git => "git/a", :branch => "other", :tag => "v1"
|
134
135
|
end
|
135
136
|
expected = "Gem dependencies file gem.deps.rb includes git reference for both ref/branch and tag but only ref/branch is used."
|
136
137
|
assert_match expected, err
|
137
138
|
|
138
|
-
assert_equal [dep(
|
139
|
+
assert_equal [dep("a")], @set.dependencies
|
139
140
|
|
140
|
-
assert_equal %w[git/a other], @git_set.repositories[
|
141
|
+
assert_equal %w[git/a other], @git_set.repositories["a"]
|
141
142
|
end
|
142
143
|
|
143
144
|
def test_gem_git_gist
|
144
|
-
@gda.gem
|
145
|
+
@gda.gem "a", :gist => "a"
|
145
146
|
|
146
|
-
assert_equal [dep(
|
147
|
+
assert_equal [dep("a")], @set.dependencies
|
147
148
|
|
148
|
-
assert_equal
|
149
|
-
@git_set.repositories[
|
149
|
+
assert_equal ["https://gist.github.com/a.git", nil],
|
150
|
+
@git_set.repositories["a"]
|
150
151
|
end
|
151
152
|
|
152
153
|
def test_gem_git_ref
|
153
154
|
_, err = capture_output do
|
154
|
-
@gda.gem
|
155
|
+
@gda.gem "a", :git => "git/a", :ref => "abcd123", :branch => "other"
|
155
156
|
end
|
156
157
|
expected = "Gem dependencies file gem.deps.rb includes git reference for both ref and branch but only ref is used."
|
157
158
|
assert_match expected, err
|
158
159
|
|
159
|
-
assert_equal [dep(
|
160
|
+
assert_equal [dep("a")], @set.dependencies
|
160
161
|
|
161
|
-
assert_equal %w[git/a abcd123], @git_set.repositories[
|
162
|
+
assert_equal %w[git/a abcd123], @git_set.repositories["a"]
|
162
163
|
end
|
163
164
|
|
164
165
|
def test_gem_git_submodules
|
165
|
-
@gda.gem
|
166
|
+
@gda.gem "a", :git => "git/a", :submodules => true
|
166
167
|
|
167
|
-
assert_equal [dep(
|
168
|
+
assert_equal [dep("a")], @set.dependencies
|
168
169
|
|
169
|
-
assert_equal
|
170
|
+
assert_equal ["git/a", nil], @git_set.repositories["a"]
|
170
171
|
assert_equal %w[git/a], @git_set.need_submodules.keys
|
171
172
|
end
|
172
173
|
|
173
174
|
def test_gem_git_tag
|
174
|
-
@gda.gem
|
175
|
+
@gda.gem "a", :git => "git/a", :tag => "v1"
|
175
176
|
|
176
|
-
assert_equal [dep(
|
177
|
+
assert_equal [dep("a")], @set.dependencies
|
177
178
|
|
178
|
-
assert_equal %w[git/a v1], @git_set.repositories[
|
179
|
+
assert_equal %w[git/a v1], @git_set.repositories["a"]
|
179
180
|
end
|
180
181
|
|
181
182
|
def test_gem_github
|
182
|
-
@gda.gem
|
183
|
+
@gda.gem "a", :github => "example/repository"
|
183
184
|
|
184
|
-
assert_equal [dep(
|
185
|
+
assert_equal [dep("a")], @set.dependencies
|
185
186
|
|
186
|
-
assert_equal
|
187
|
-
@git_set.repositories[
|
187
|
+
assert_equal ["https://github.com/example/repository.git", nil],
|
188
|
+
@git_set.repositories["a"]
|
188
189
|
|
189
|
-
expected = {
|
190
|
+
expected = { "a" => Gem::Requirement.create("!") }
|
190
191
|
|
191
192
|
assert_equal expected, @gda.dependencies
|
192
193
|
end
|
193
194
|
|
194
195
|
def test_gem_github_expand_path
|
195
|
-
@gda.gem
|
196
|
+
@gda.gem "a", :github => "example"
|
196
197
|
|
197
|
-
assert_equal [dep(
|
198
|
+
assert_equal [dep("a")], @set.dependencies
|
198
199
|
|
199
|
-
assert_equal
|
200
|
-
@git_set.repositories[
|
200
|
+
assert_equal ["https://github.com/example/example.git", nil],
|
201
|
+
@git_set.repositories["a"]
|
201
202
|
|
202
|
-
expected = {
|
203
|
+
expected = { "a" => Gem::Requirement.create("!") }
|
203
204
|
|
204
205
|
assert_equal expected, @gda.dependencies
|
205
206
|
end
|
206
207
|
|
207
208
|
def test_gem_group
|
208
|
-
@gda.gem
|
209
|
+
@gda.gem "a", :group => :test
|
209
210
|
|
210
|
-
assert_equal [dep(
|
211
|
+
assert_equal [dep("a")], @set.dependencies
|
211
212
|
end
|
212
213
|
|
213
214
|
def test_gem_group_without
|
214
215
|
@gda.without_groups << :test
|
215
216
|
|
216
|
-
@gda.gem
|
217
|
+
@gda.gem "a", :group => :test
|
217
218
|
|
218
219
|
assert_empty @set.dependencies
|
219
220
|
|
220
|
-
expected = {
|
221
|
+
expected = { "a" => Gem::Requirement.default }
|
221
222
|
|
222
223
|
assert_equal expected, @gda.dependencies
|
223
224
|
end
|
224
225
|
|
225
226
|
def test_gem_groups
|
226
|
-
@gda.gem
|
227
|
+
@gda.gem "a", :groups => [:test, :development]
|
227
228
|
|
228
|
-
assert_equal [dep(
|
229
|
+
assert_equal [dep("a")], @set.dependencies
|
229
230
|
end
|
230
231
|
|
231
232
|
def test_gem_path
|
@@ -239,7 +240,7 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
239
240
|
|
240
241
|
assert_equal "#{name}-#{version}", loaded.full_name
|
241
242
|
|
242
|
-
expected = { name => Gem::Requirement.create(
|
243
|
+
expected = { name => Gem::Requirement.create("!") }
|
243
244
|
|
244
245
|
assert_equal expected, @gda.dependencies
|
245
246
|
end
|
@@ -247,8 +248,8 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
247
248
|
def test_gem_platforms
|
248
249
|
win_platform, Gem.win_platform = Gem.win_platform?, false
|
249
250
|
|
250
|
-
with_engine_version
|
251
|
-
@gda.gem
|
251
|
+
with_engine_version "ruby", "2.0.0" do
|
252
|
+
@gda.gem "a", :platforms => :ruby
|
252
253
|
|
253
254
|
refute_empty @set.dependencies
|
254
255
|
end
|
@@ -259,44 +260,44 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
259
260
|
def test_gem_platforms_bundler_ruby
|
260
261
|
win_platform, Gem.win_platform = Gem.win_platform?, false
|
261
262
|
|
262
|
-
with_engine_version
|
263
|
+
with_engine_version "ruby", "2.0.0" do
|
263
264
|
set = Gem::RequestSet.new
|
264
|
-
gda = @GDA.new set,
|
265
|
-
gda.gem
|
265
|
+
gda = @GDA.new set, "gem.deps.rb"
|
266
|
+
gda.gem "a", :platforms => :ruby
|
266
267
|
|
267
268
|
refute_empty set.dependencies
|
268
269
|
end
|
269
270
|
|
270
|
-
with_engine_version
|
271
|
+
with_engine_version "rbx", "2.0.0" do
|
271
272
|
set = Gem::RequestSet.new
|
272
|
-
gda = @GDA.new set,
|
273
|
-
gda.gem
|
273
|
+
gda = @GDA.new set, "gem.deps.rb"
|
274
|
+
gda.gem "a", :platforms => :ruby
|
274
275
|
|
275
276
|
refute_empty set.dependencies
|
276
277
|
end
|
277
278
|
|
278
|
-
with_engine_version
|
279
|
+
with_engine_version "truffleruby", "2.0.0" do
|
279
280
|
set = Gem::RequestSet.new
|
280
|
-
gda = @GDA.new set,
|
281
|
-
gda.gem
|
281
|
+
gda = @GDA.new set, "gem.deps.rb"
|
282
|
+
gda.gem "a", :platforms => :ruby
|
282
283
|
|
283
284
|
refute_empty set.dependencies
|
284
285
|
end
|
285
286
|
|
286
|
-
with_engine_version
|
287
|
+
with_engine_version "jruby", "1.7.6" do
|
287
288
|
set = Gem::RequestSet.new
|
288
|
-
gda = @GDA.new set,
|
289
|
-
gda.gem
|
289
|
+
gda = @GDA.new set, "gem.deps.rb"
|
290
|
+
gda.gem "a", :platforms => :ruby
|
290
291
|
|
291
292
|
assert_empty set.dependencies
|
292
293
|
end
|
293
294
|
|
294
295
|
Gem.win_platform = true
|
295
296
|
|
296
|
-
with_engine_version
|
297
|
+
with_engine_version "ruby", "2.0.0" do
|
297
298
|
set = Gem::RequestSet.new
|
298
|
-
gda = @GDA.new set,
|
299
|
-
gda.gem
|
299
|
+
gda = @GDA.new set, "gem.deps.rb"
|
300
|
+
gda.gem "a", :platforms => :ruby
|
300
301
|
|
301
302
|
assert_empty set.dependencies
|
302
303
|
end
|
@@ -305,14 +306,14 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
305
306
|
end
|
306
307
|
|
307
308
|
def test_gem_platforms_engine
|
308
|
-
with_engine_version
|
309
|
-
@gda.gem
|
309
|
+
with_engine_version "jruby", "1.7.6" do
|
310
|
+
@gda.gem "a", :platforms => :mri
|
310
311
|
|
311
312
|
assert_empty @set.dependencies
|
312
313
|
end
|
313
314
|
|
314
|
-
with_engine_version
|
315
|
-
@gda.gem
|
315
|
+
with_engine_version "truffleruby", "1.2.3" do
|
316
|
+
@gda.gem "a", :platforms => :mri
|
316
317
|
|
317
318
|
assert_empty @set.dependencies
|
318
319
|
end
|
@@ -321,16 +322,16 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
321
322
|
def test_gem_platforms_maglev
|
322
323
|
win_platform, Gem.win_platform = Gem.win_platform?, false
|
323
324
|
|
324
|
-
with_engine_version
|
325
|
+
with_engine_version "maglev", "1.0.0" do
|
325
326
|
set = Gem::RequestSet.new
|
326
|
-
gda = @GDA.new set,
|
327
|
-
gda.gem
|
327
|
+
gda = @GDA.new set, "gem.deps.rb"
|
328
|
+
gda.gem "a", :platforms => :ruby
|
328
329
|
|
329
330
|
refute_empty set.dependencies
|
330
331
|
|
331
332
|
set = Gem::RequestSet.new
|
332
|
-
gda = @GDA.new set,
|
333
|
-
gda.gem
|
333
|
+
gda = @GDA.new set, "gem.deps.rb"
|
334
|
+
gda.gem "a", :platforms => :maglev
|
334
335
|
|
335
336
|
refute_empty set.dependencies
|
336
337
|
end
|
@@ -339,16 +340,16 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
339
340
|
end
|
340
341
|
|
341
342
|
def test_gem_platforms_truffleruby
|
342
|
-
with_engine_version
|
343
|
+
with_engine_version "truffleruby", "1.0.0" do
|
343
344
|
set = Gem::RequestSet.new
|
344
|
-
gda = @GDA.new set,
|
345
|
-
gda.gem
|
345
|
+
gda = @GDA.new set, "gem.deps.rb"
|
346
|
+
gda.gem "a", :platforms => :truffleruby
|
346
347
|
|
347
348
|
refute_empty set.dependencies
|
348
349
|
|
349
350
|
set = Gem::RequestSet.new
|
350
|
-
gda = @GDA.new set,
|
351
|
-
gda.gem
|
351
|
+
gda = @GDA.new set, "gem.deps.rb"
|
352
|
+
gda.gem "a", :platforms => :maglev
|
352
353
|
|
353
354
|
assert_empty set.dependencies
|
354
355
|
end
|
@@ -357,8 +358,8 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
357
358
|
def test_gem_platforms_multiple
|
358
359
|
win_platform, Gem.win_platform = Gem.win_platform?, false
|
359
360
|
|
360
|
-
with_engine_version
|
361
|
-
@gda.gem
|
361
|
+
with_engine_version "ruby", "2.0.0" do
|
362
|
+
@gda.gem "a", :platforms => [:mswin, :jruby]
|
362
363
|
|
363
364
|
assert_empty @set.dependencies
|
364
365
|
end
|
@@ -370,8 +371,8 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
370
371
|
def test_gem_platforms_platform
|
371
372
|
win_platform, Gem.win_platform = Gem.win_platform?, false
|
372
373
|
|
373
|
-
with_engine_version
|
374
|
-
@gda.gem
|
374
|
+
with_engine_version "ruby", "2.0.0" do
|
375
|
+
@gda.gem "a", :platforms => :jruby, :platform => :ruby
|
375
376
|
|
376
377
|
refute_empty @set.dependencies
|
377
378
|
end
|
@@ -380,8 +381,8 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
380
381
|
end
|
381
382
|
|
382
383
|
def test_gem_platforms_version
|
383
|
-
with_engine_version
|
384
|
-
@gda.gem
|
384
|
+
with_engine_version "ruby", "2.0.0" do
|
385
|
+
@gda.gem "a", :platforms => :ruby_18
|
385
386
|
|
386
387
|
assert_empty @set.dependencies
|
387
388
|
end
|
@@ -389,26 +390,26 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
389
390
|
|
390
391
|
def test_gem_platforms_unknown
|
391
392
|
e = assert_raise ArgumentError do
|
392
|
-
@gda.gem
|
393
|
+
@gda.gem "a", :platforms => :unknown
|
393
394
|
end
|
394
395
|
|
395
|
-
assert_equal
|
396
|
+
assert_equal "unknown platform :unknown", e.message
|
396
397
|
end
|
397
398
|
|
398
399
|
def test_gem_requires
|
399
|
-
@gda.gem
|
400
|
-
@gda.gem
|
400
|
+
@gda.gem "a", :require => %w[b c]
|
401
|
+
@gda.gem "d", :require => "e"
|
401
402
|
|
402
|
-
assert_equal [dep(
|
403
|
+
assert_equal [dep("a"), dep("d")], @set.dependencies
|
403
404
|
|
404
|
-
assert_equal %w[b c], @gda.requires[
|
405
|
-
assert_equal %w[e], @gda.requires[
|
405
|
+
assert_equal %w[b c], @gda.requires["a"]
|
406
|
+
assert_equal %w[e], @gda.requires["d"]
|
406
407
|
end
|
407
408
|
|
408
409
|
def test_gem_requires_false
|
409
|
-
@gda.gem
|
410
|
+
@gda.gem "a", :require => false
|
410
411
|
|
411
|
-
assert_equal [dep(
|
412
|
+
assert_equal [dep("a")], @set.dependencies
|
412
413
|
|
413
414
|
assert_empty @gda.requires
|
414
415
|
end
|
@@ -416,37 +417,37 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
416
417
|
def test_gem_requires_without_group
|
417
418
|
@gda.without_groups << :test
|
418
419
|
|
419
|
-
@gda.gem
|
420
|
+
@gda.gem "a", :group => :test
|
420
421
|
|
421
422
|
assert_empty @set.dependencies
|
422
423
|
|
423
|
-
assert_empty @gda.requires[
|
424
|
+
assert_empty @gda.requires["a"]
|
424
425
|
end
|
425
426
|
|
426
427
|
def test_gem_requirement
|
427
|
-
@gda.gem
|
428
|
+
@gda.gem "a", "~> 1.0"
|
428
429
|
|
429
|
-
assert_equal [dep(
|
430
|
+
assert_equal [dep("a", "~> 1.0")], @set.dependencies
|
430
431
|
|
431
|
-
expected = {
|
432
|
+
expected = { "a" => Gem::Requirement.create(["~> 1.0"]) }
|
432
433
|
|
433
434
|
assert_equal expected, @gda.dependencies
|
434
435
|
end
|
435
436
|
|
436
437
|
def test_gem_requirements
|
437
|
-
@gda.gem
|
438
|
+
@gda.gem "b", "~> 1.0", ">= 1.0.2"
|
438
439
|
|
439
|
-
assert_equal [dep(
|
440
|
+
assert_equal [dep("b", "~> 1.0", ">= 1.0.2")], @set.dependencies
|
440
441
|
|
441
|
-
expected = {
|
442
|
+
expected = { "b" => Gem::Requirement.create(["~> 1.0", ">= 1.0.2"]) }
|
442
443
|
|
443
444
|
assert_equal expected, @gda.dependencies
|
444
445
|
end
|
445
446
|
|
446
447
|
def test_gem_requirements_options
|
447
|
-
@gda.gem
|
448
|
+
@gda.gem "c", :git => "https://example/c.git"
|
448
449
|
|
449
|
-
assert_equal [dep(
|
450
|
+
assert_equal [dep("c")], @set.dependencies
|
450
451
|
end
|
451
452
|
|
452
453
|
def test_gem_source_mismatch
|
@@ -475,47 +476,47 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
475
476
|
end
|
476
477
|
|
477
478
|
def test_gem_deps_file
|
478
|
-
assert_equal
|
479
|
+
assert_equal "gem.deps.rb", @gda.gem_deps_file
|
479
480
|
|
480
|
-
gda = @GDA.new @set,
|
481
|
+
gda = @GDA.new @set, "foo/Gemfile"
|
481
482
|
|
482
|
-
assert_equal
|
483
|
+
assert_equal "Gemfile", gda.gem_deps_file
|
483
484
|
end
|
484
485
|
|
485
486
|
def test_gem_group_method
|
486
487
|
groups = []
|
487
488
|
|
488
489
|
@gda.group :a do
|
489
|
-
groups = @gda.send :gem_group,
|
490
|
+
groups = @gda.send :gem_group, "a", :group => :b, :groups => [:c, :d]
|
490
491
|
end
|
491
492
|
|
492
493
|
assert_equal [:a, :b, :c, :d], groups.sort_by {|group| group.to_s }
|
493
494
|
end
|
494
495
|
|
495
496
|
def test_gemspec
|
496
|
-
save_gemspec
|
497
|
-
s.add_dependency
|
498
|
-
s.add_development_dependency
|
497
|
+
save_gemspec "a", 1 do |s|
|
498
|
+
s.add_dependency "b", 2
|
499
|
+
s.add_development_dependency "c", 3
|
499
500
|
end
|
500
501
|
|
501
502
|
@gda.gemspec
|
502
503
|
|
503
|
-
assert_equal [dep(
|
504
|
+
assert_equal [dep("a", "= 1"), dep("b", "= 2"), dep("c", "=3")],
|
504
505
|
@set.dependencies
|
505
506
|
|
506
|
-
assert_equal %w[a], @gda.requires[
|
507
|
+
assert_equal %w[a], @gda.requires["a"]
|
507
508
|
|
508
509
|
expected = {
|
509
|
-
|
510
|
-
|
511
|
-
|
510
|
+
"a" => Gem::Requirement.create("!"),
|
511
|
+
"b" => req("= 2"),
|
512
|
+
"c" => req("= 3"),
|
512
513
|
}
|
513
514
|
|
514
515
|
assert_equal expected, @gda.dependencies
|
515
516
|
end
|
516
517
|
|
517
518
|
def test_gemspec_bad
|
518
|
-
FileUtils.touch
|
519
|
+
FileUtils.touch "a.gemspec"
|
519
520
|
|
520
521
|
e = assert_raise ArgumentError do
|
521
522
|
capture_output do
|
@@ -523,31 +524,31 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
523
524
|
end
|
524
525
|
end
|
525
526
|
|
526
|
-
assert_equal
|
527
|
+
assert_equal "invalid gemspec ./a.gemspec", e.message
|
527
528
|
end
|
528
529
|
|
529
530
|
def test_gemspec_development_group
|
530
|
-
save_gemspec
|
531
|
-
s.add_dependency
|
532
|
-
s.add_development_dependency
|
531
|
+
save_gemspec "a", 1 do |s|
|
532
|
+
s.add_dependency "b", 2
|
533
|
+
s.add_development_dependency "c", 3
|
533
534
|
end
|
534
535
|
|
535
536
|
@gda.without_groups << :other
|
536
537
|
|
537
538
|
@gda.gemspec :development_group => :other
|
538
539
|
|
539
|
-
assert_equal [dep(
|
540
|
+
assert_equal [dep("a", "= 1"), dep("b", "= 2")], @set.dependencies
|
540
541
|
|
541
|
-
assert_equal %w[a], @gda.requires[
|
542
|
+
assert_equal %w[a], @gda.requires["a"]
|
542
543
|
end
|
543
544
|
|
544
545
|
def test_gemspec_multiple
|
545
|
-
save_gemspec
|
546
|
-
s.add_dependency
|
546
|
+
save_gemspec "a", 1 do |s|
|
547
|
+
s.add_dependency "b", 2
|
547
548
|
end
|
548
549
|
|
549
|
-
save_gemspec
|
550
|
-
s.add_dependency
|
550
|
+
save_gemspec "b", 2 do |s|
|
551
|
+
s.add_dependency "c", 3
|
551
552
|
end
|
552
553
|
|
553
554
|
e = assert_raise ArgumentError do
|
@@ -558,27 +559,27 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
558
559
|
end
|
559
560
|
|
560
561
|
def test_gemspec_name
|
561
|
-
save_gemspec
|
562
|
-
s.add_dependency
|
562
|
+
save_gemspec "a", 1 do |s|
|
563
|
+
s.add_dependency "b", 2
|
563
564
|
end
|
564
565
|
|
565
|
-
save_gemspec
|
566
|
-
s.add_dependency
|
566
|
+
save_gemspec "b", 2 do |s|
|
567
|
+
s.add_dependency "c", 3
|
567
568
|
end
|
568
569
|
|
569
|
-
@gda.gemspec :name =>
|
570
|
+
@gda.gemspec :name => "b"
|
570
571
|
|
571
|
-
assert_equal [dep(
|
572
|
+
assert_equal [dep("b", "= 2"), dep("c", "= 3")], @set.dependencies
|
572
573
|
end
|
573
574
|
|
574
575
|
def test_gemspec_named
|
575
|
-
save_gemspec
|
576
|
-
s.add_dependency
|
576
|
+
save_gemspec "a", 1 do |s|
|
577
|
+
s.add_dependency "b", 2
|
577
578
|
end
|
578
579
|
|
579
580
|
@gda.gemspec
|
580
581
|
|
581
|
-
assert_equal [dep(
|
582
|
+
assert_equal [dep("a", "= 1"), dep("b", "= 2")], @set.dependencies
|
582
583
|
end
|
583
584
|
|
584
585
|
def test_gemspec_none
|
@@ -590,27 +591,27 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
590
591
|
end
|
591
592
|
|
592
593
|
def test_gemspec_path
|
593
|
-
FileUtils.mkdir
|
594
|
+
FileUtils.mkdir "other"
|
594
595
|
|
595
|
-
save_gemspec
|
596
|
-
s.add_dependency
|
596
|
+
save_gemspec "a", 1, "other" do |s|
|
597
|
+
s.add_dependency "b", 2
|
597
598
|
end
|
598
599
|
|
599
|
-
@gda.gemspec :path =>
|
600
|
+
@gda.gemspec :path => "other"
|
600
601
|
|
601
|
-
assert_equal [dep(
|
602
|
+
assert_equal [dep("a", "= 1"), dep("b", "= 2")], @set.dependencies
|
602
603
|
end
|
603
604
|
|
604
605
|
def test_git
|
605
|
-
@gda.git
|
606
|
-
@gda.gem
|
607
|
-
@gda.gem
|
606
|
+
@gda.git "git://example/repo.git" do
|
607
|
+
@gda.gem "a"
|
608
|
+
@gda.gem "b"
|
608
609
|
end
|
609
610
|
|
610
|
-
assert_equal [dep(
|
611
|
+
assert_equal [dep("a"), dep("b")], @set.dependencies
|
611
612
|
|
612
|
-
assert_equal
|
613
|
-
assert_equal
|
613
|
+
assert_equal ["git://example/repo.git", nil], @git_set.repositories["a"]
|
614
|
+
assert_equal ["git://example/repo.git", nil], @git_set.repositories["b"]
|
614
615
|
end
|
615
616
|
|
616
617
|
def test_git_source
|
@@ -618,21 +619,21 @@ class TestGemRequestSetGemDependencyAPI < Gem::TestCase
|
|
618
619
|
"git://example/#{repo_name}.git"
|
619
620
|
end
|
620
621
|
|
621
|
-
@gda.gem
|
622
|
+
@gda.gem "a", :example => "repo"
|
622
623
|
|
623
|
-
assert_equal
|
624
|
+
assert_equal ["git://example/repo.git", nil], @git_set.repositories["a"]
|
624
625
|
end
|
625
626
|
|
626
627
|
def test_group
|
627
628
|
@gda.group :test do
|
628
|
-
@gda.gem
|
629
|
+
@gda.gem "a"
|
629
630
|
end
|
630
631
|
|
631
|
-
assert_equal [dep(
|
632
|
+
assert_equal [dep("a")], @set.dependencies
|
632
633
|
end
|
633
634
|
|
634
635
|
def test_load
|
635
|
-
tf = Tempfile.open
|
636
|
+
tf = Tempfile.open "gem.deps.rb" do |io|
|
636
637
|
io.write <<-GEM_DEPS
|
637
638
|
gem 'a'
|
638
639
|
|
@@ -646,7 +647,7 @@ end
|
|
646
647
|
|
647
648
|
assert_equal gda, gda.load
|
648
649
|
|
649
|
-
assert_equal [dep(
|
650
|
+
assert_equal [dep("a"), dep("b")], @set.dependencies
|
650
651
|
io
|
651
652
|
end
|
652
653
|
tf.close!
|
@@ -655,18 +656,18 @@ end
|
|
655
656
|
def test_pin_gem_source
|
656
657
|
gda = @GDA.new @set, nil
|
657
658
|
|
658
|
-
gda.send :pin_gem_source,
|
659
|
-
gda.send :pin_gem_source,
|
659
|
+
gda.send :pin_gem_source, "a"
|
660
|
+
gda.send :pin_gem_source, "a"
|
660
661
|
|
661
662
|
e = assert_raise ArgumentError do
|
662
|
-
gda.send :pin_gem_source,
|
663
|
+
gda.send :pin_gem_source, "a", :path, "vendor/a"
|
663
664
|
end
|
664
665
|
|
665
666
|
assert_equal "duplicate source path: vendor/a for gem a",
|
666
667
|
e.message
|
667
668
|
|
668
669
|
e = assert_raise ArgumentError do
|
669
|
-
gda.send :pin_gem_source,
|
670
|
+
gda.send :pin_gem_source, "a", :git, "git://example/repo.git"
|
670
671
|
end
|
671
672
|
|
672
673
|
assert_equal "duplicate source git: git://example/repo.git for gem a",
|
@@ -675,18 +676,18 @@ end
|
|
675
676
|
|
676
677
|
def test_platform_mswin
|
677
678
|
if win_platform?
|
678
|
-
util_set_arch
|
679
|
+
util_set_arch "x86-mswin32-60" do
|
679
680
|
@gda.platform :mswin do
|
680
|
-
@gda.gem
|
681
|
+
@gda.gem "a"
|
681
682
|
end
|
682
683
|
|
683
|
-
assert_equal [dep(
|
684
|
+
assert_equal [dep("a")], @set.dependencies
|
684
685
|
refute_empty @set.dependencies
|
685
686
|
end
|
686
687
|
else
|
687
|
-
util_set_arch
|
688
|
+
util_set_arch "i686-darwin8.10.1" do
|
688
689
|
@gda.platform :mswin do
|
689
|
-
@gda.gem
|
690
|
+
@gda.gem "a"
|
690
691
|
end
|
691
692
|
|
692
693
|
assert_empty @set.dependencies
|
@@ -699,9 +700,9 @@ end
|
|
699
700
|
|
700
701
|
gda = @GDA.new @set, nil
|
701
702
|
|
702
|
-
with_engine_version
|
703
|
+
with_engine_version "ruby", "1.8.7" do
|
703
704
|
gda.platform :mri_19, :mri_20 do
|
704
|
-
gda.gem
|
705
|
+
gda.gem "a"
|
705
706
|
end
|
706
707
|
end
|
707
708
|
|
@@ -709,9 +710,9 @@ end
|
|
709
710
|
|
710
711
|
gda = @GDA.new @set, nil
|
711
712
|
|
712
|
-
with_engine_version
|
713
|
+
with_engine_version "ruby", "2.0.0" do
|
713
714
|
gda.platform :mri_19, :mri_20 do
|
714
|
-
gda.gem
|
715
|
+
gda.gem "a"
|
715
716
|
end
|
716
717
|
end
|
717
718
|
|
@@ -724,28 +725,28 @@ end
|
|
724
725
|
win_platform, Gem.win_platform = Gem.win_platform?, false
|
725
726
|
|
726
727
|
@gda.platform :ruby do
|
727
|
-
@gda.gem
|
728
|
+
@gda.gem "a"
|
728
729
|
end
|
729
730
|
|
730
|
-
assert_equal [dep(
|
731
|
+
assert_equal [dep("a")], @set.dependencies
|
731
732
|
ensure
|
732
733
|
Gem.win_platform = win_platform
|
733
734
|
end
|
734
735
|
|
735
736
|
def test_platforms
|
736
737
|
unless win_platform?
|
737
|
-
util_set_arch
|
738
|
+
util_set_arch "i686-darwin8.10.1" do
|
738
739
|
@gda.platforms :ruby do
|
739
|
-
@gda.gem
|
740
|
+
@gda.gem "a"
|
740
741
|
end
|
741
742
|
|
742
|
-
assert_equal [dep(
|
743
|
+
assert_equal [dep("a")], @set.dependencies
|
743
744
|
|
744
745
|
@gda.platforms :mswin do
|
745
|
-
@gda.gem
|
746
|
+
@gda.gem "b"
|
746
747
|
end
|
747
748
|
|
748
|
-
assert_equal [dep(
|
749
|
+
assert_equal [dep("a")], @set.dependencies
|
749
750
|
end
|
750
751
|
end
|
751
752
|
end
|
@@ -755,53 +756,51 @@ end
|
|
755
756
|
end
|
756
757
|
|
757
758
|
def test_ruby_engine
|
758
|
-
with_engine_version
|
759
|
+
with_engine_version "jruby", "1.7.6" do
|
759
760
|
assert @gda.ruby RUBY_VERSION,
|
760
|
-
:engine =>
|
761
|
-
|
761
|
+
:engine => "jruby", :engine_version => "1.7.6"
|
762
762
|
end
|
763
763
|
|
764
|
-
with_engine_version
|
764
|
+
with_engine_version "truffleruby", "1.0.0-rc11" do
|
765
765
|
assert @gda.ruby RUBY_VERSION,
|
766
|
-
:engine =>
|
767
|
-
|
766
|
+
:engine => "truffleruby", :engine_version => "1.0.0-rc11"
|
768
767
|
end
|
769
768
|
end
|
770
769
|
|
771
770
|
def test_ruby_engine_mismatch_engine
|
772
|
-
with_engine_version
|
771
|
+
with_engine_version "ruby", "2.0.0" do
|
773
772
|
e = assert_raise Gem::RubyVersionMismatch do
|
774
|
-
@gda.ruby RUBY_VERSION, :engine =>
|
773
|
+
@gda.ruby RUBY_VERSION, :engine => "jruby", :engine_version => "1.7.4"
|
775
774
|
end
|
776
775
|
|
777
|
-
assert_equal
|
776
|
+
assert_equal "Your Ruby engine is ruby, but your gem.deps.rb requires jruby",
|
778
777
|
e.message
|
779
778
|
end
|
780
779
|
end
|
781
780
|
|
782
781
|
def test_ruby_engine_mismatch_version
|
783
|
-
with_engine_version
|
782
|
+
with_engine_version "jruby", "1.7.6" do
|
784
783
|
e = assert_raise Gem::RubyVersionMismatch do
|
785
|
-
@gda.ruby RUBY_VERSION, :engine =>
|
784
|
+
@gda.ruby RUBY_VERSION, :engine => "jruby", :engine_version => "1.7.4"
|
786
785
|
end
|
787
786
|
|
788
|
-
assert_equal
|
787
|
+
assert_equal "Your Ruby engine version is jruby 1.7.6, but your gem.deps.rb requires jruby 1.7.4",
|
789
788
|
e.message
|
790
789
|
end
|
791
790
|
end
|
792
791
|
|
793
792
|
def test_ruby_engine_no_engine_version
|
794
793
|
e = assert_raise ArgumentError do
|
795
|
-
@gda.ruby RUBY_VERSION, :engine =>
|
794
|
+
@gda.ruby RUBY_VERSION, :engine => "jruby"
|
796
795
|
end
|
797
796
|
|
798
|
-
assert_equal
|
797
|
+
assert_equal "You must specify engine_version along with the Ruby engine",
|
799
798
|
e.message
|
800
799
|
end
|
801
800
|
|
802
801
|
def test_ruby_mismatch
|
803
802
|
e = assert_raise Gem::RubyVersionMismatch do
|
804
|
-
@gda.ruby
|
803
|
+
@gda.ruby "1.8.0"
|
805
804
|
end
|
806
805
|
|
807
806
|
assert_equal "Your Ruby version is #{RUBY_VERSION}, but your gem.deps.rb requires 1.8.0", e.message
|
@@ -810,19 +809,19 @@ end
|
|
810
809
|
def test_ruby_mismatch_installing
|
811
810
|
@gda.installing = true
|
812
811
|
|
813
|
-
assert @gda.ruby
|
812
|
+
assert @gda.ruby "1.8.0"
|
814
813
|
end
|
815
814
|
|
816
815
|
def test_source
|
817
816
|
sources = Gem.sources
|
818
817
|
|
819
|
-
@gda.source
|
818
|
+
@gda.source "http://first.example"
|
820
819
|
|
821
820
|
assert_equal %w[http://first.example], Gem.sources
|
822
821
|
|
823
822
|
assert_same sources, Gem.sources
|
824
823
|
|
825
|
-
@gda.source
|
824
|
+
@gda.source "http://second.example"
|
826
825
|
|
827
826
|
assert_equal %w[http://first.example http://second.example], Gem.sources
|
828
827
|
end
|
@@ -832,9 +831,9 @@ end
|
|
832
831
|
engine = Gem.ruby_engine
|
833
832
|
engine_version = RUBY_ENGINE_VERSION
|
834
833
|
|
835
|
-
with_engine_version
|
836
|
-
assert_equal
|
837
|
-
assert_equal
|
834
|
+
with_engine_version "other", "1.2.3" do
|
835
|
+
assert_equal "other", Gem.ruby_engine
|
836
|
+
assert_equal "1.2.3", RUBY_ENGINE_VERSION
|
838
837
|
|
839
838
|
assert_equal version, RUBY_VERSION
|
840
839
|
end
|