rubygems-update 3.1.6 → 3.3.22
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/{History.txt → CHANGELOG.md} +1452 -514
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +74 -27
- data/Manifest.txt +154 -117
- data/POLICIES.md +27 -19
- data/README.md +10 -8
- data/UPGRADING.md +5 -81
- data/bin/gem +3 -8
- data/bin/update_rubygems +5 -5
- data/bundler/CHANGELOG.md +2358 -1430
- data/bundler/README.md +7 -9
- data/bundler/UPGRADING.md +27 -34
- data/bundler/bundler.gemspec +8 -11
- data/bundler/exe/bundle +10 -8
- data/bundler/exe/bundler +1 -1
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/cache.rb +3 -8
- data/bundler/lib/bundler/cli/check.rb +4 -2
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +31 -3
- data/bundler/lib/bundler/cli/config.rb +10 -1
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +25 -6
- data/bundler/lib/bundler/cli/exec.rb +5 -10
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +219 -28
- data/bundler/lib/bundler/cli/info.rb +38 -6
- data/bundler/lib/bundler/cli/init.rb +3 -3
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +25 -54
- data/bundler/lib/bundler/cli/issue.rb +5 -4
- data/bundler/lib/bundler/cli/list.rb +19 -11
- data/bundler/lib/bundler/cli/lock.rb +5 -1
- data/bundler/lib/bundler/cli/open.rb +1 -2
- data/bundler/lib/bundler/cli/outdated.rb +105 -76
- data/bundler/lib/bundler/cli/platform.rb +2 -2
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +5 -0
- data/bundler/lib/bundler/cli/remove.rb +1 -2
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +20 -9
- data/bundler/lib/bundler/cli.rb +106 -83
- data/bundler/lib/bundler/compact_index_client/cache.rb +6 -23
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/bundler/lib/bundler/compact_index_client/updater.rb +29 -25
- data/bundler/lib/bundler/compact_index_client.rb +3 -9
- data/bundler/lib/bundler/current_ruby.rb +17 -6
- data/bundler/lib/bundler/definition.rb +297 -396
- data/bundler/lib/bundler/dep_proxy.rb +16 -9
- data/bundler/lib/bundler/dependency.rb +22 -77
- data/bundler/lib/bundler/digest.rb +71 -0
- data/bundler/lib/bundler/dsl.rb +76 -83
- data/bundler/lib/bundler/endpoint_specification.rb +16 -14
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/environment_preserver.rb +29 -2
- data/bundler/lib/bundler/errors.rb +30 -3
- data/bundler/lib/bundler/feature_flag.rb +0 -9
- data/bundler/lib/bundler/fetcher/base.rb +7 -9
- data/bundler/lib/bundler/fetcher/compact_index.rb +11 -16
- data/bundler/lib/bundler/fetcher/downloader.rb +10 -7
- data/bundler/lib/bundler/fetcher/index.rb +2 -30
- data/bundler/lib/bundler/fetcher.rb +24 -25
- data/bundler/lib/bundler/friendly_errors.rb +46 -47
- data/bundler/lib/bundler/gem_helper.rb +53 -31
- data/bundler/lib/bundler/gem_helpers.rb +43 -24
- data/bundler/lib/bundler/gem_version_promoter.rb +10 -20
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +19 -25
- data/bundler/lib/bundler/injector.rb +38 -6
- data/bundler/lib/bundler/inline.rb +4 -13
- data/bundler/lib/bundler/installer/gem_installer.rb +19 -24
- data/bundler/lib/bundler/installer/parallel_installer.rb +46 -25
- data/bundler/lib/bundler/installer/standalone.rb +58 -11
- data/bundler/lib/bundler/installer.rb +51 -81
- data/bundler/lib/bundler/lazy_specification.rb +79 -36
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +19 -44
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man → lib/bundler/man}/bundle-add.1 +21 -5
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +16 -4
- data/bundler/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man → lib/bundler/man}/bundle-cache.1 +7 -1
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +7 -0
- data/bundler/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-config.1 +65 -47
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +74 -65
- 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 +2 -2
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +1 -1
- data/bundler/{man → lib/bundler/man}/bundle-gem.1 +38 -3
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +46 -7
- 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 +1 -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 +35 -4
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +33 -5
- 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 +1 -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 +5 -5
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +5 -4
- 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 +15 -10
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +12 -7
- data/bundler/{man → lib/bundler/man}/gemfile.5 +106 -80
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +94 -83
- data/bundler/{man → lib/bundler/man}/index.txt +4 -0
- data/bundler/lib/bundler/match_metadata.rb +13 -0
- data/bundler/lib/bundler/match_platform.rb +0 -1
- data/bundler/lib/bundler/match_remote_metadata.rb +29 -0
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin/api/source.rb +25 -9
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +13 -1
- data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -5
- data/bundler/lib/bundler/plugin/installer.rb +11 -11
- data/bundler/lib/bundler/plugin/source_list.rb +5 -1
- data/bundler/lib/bundler/plugin.rb +58 -11
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/remote_specification.rb +11 -6
- data/bundler/lib/bundler/resolver/base.rb +50 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +64 -57
- data/bundler/lib/bundler/resolver.rb +234 -230
- data/bundler/lib/bundler/retry.rb +2 -2
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +6 -19
- data/bundler/lib/bundler/rubygems_ext.rb +194 -33
- data/bundler/lib/bundler/rubygems_gem_installer.rb +87 -16
- data/bundler/lib/bundler/rubygems_integration.rb +71 -153
- data/bundler/lib/bundler/runtime.rb +22 -26
- data/bundler/lib/bundler/self_manager.rb +168 -0
- data/bundler/lib/bundler/settings.rb +145 -66
- data/bundler/lib/bundler/setup.rb +2 -2
- data/bundler/lib/bundler/shared_helpers.rb +17 -32
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +88 -84
- data/bundler/lib/bundler/source/git.rb +50 -32
- data/bundler/lib/bundler/source/metadata.rb +3 -7
- data/bundler/lib/bundler/source/path/installer.rb +10 -10
- data/bundler/lib/bundler/source/path.rb +10 -4
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source/rubygems.rb +201 -179
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +68 -0
- data/bundler/lib/bundler/source.rb +25 -5
- data/bundler/lib/bundler/source_list.rb +105 -63
- data/bundler/lib/bundler/source_map.rb +71 -0
- data/bundler/lib/bundler/spec_set.rb +62 -57
- data/bundler/lib/bundler/stub_specification.rb +30 -10
- data/bundler/lib/bundler/templates/Executable +2 -4
- data/bundler/lib/bundler/templates/Executable.bundler +8 -8
- data/bundler/lib/bundler/templates/Executable.standalone +2 -4
- data/bundler/lib/bundler/templates/Gemfile +0 -2
- data/bundler/lib/bundler/templates/gems.rb +0 -3
- 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/Gemfile.tt +12 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +9 -14
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +32 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +27 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -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 +27 -17
- 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/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -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/shell.rb +6 -6
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
- 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 +19 -21
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +9 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +37 -5
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +34 -28
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +12 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +49 -47
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +82 -189
- data/bundler/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +9 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +7 -3
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- 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 +10 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +28 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +27 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +5 -13
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- 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 +17 -80
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +5 -6
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +1 -14
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +1 -12
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +84 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +22 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +0 -1
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/vendored_tsort.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +20 -5
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/lib/bundler.rb +79 -47
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +7 -9
- data/lib/rubygems/basic_specification.rb +23 -21
- data/lib/rubygems/bundler_version_finder.rb +26 -53
- data/lib/rubygems/command.rb +48 -45
- data/lib/rubygems/command_manager.rb +20 -14
- data/lib/rubygems/commands/build_command.rb +47 -27
- data/lib/rubygems/commands/cert_command.rb +78 -75
- data/lib/rubygems/commands/check_command.rb +20 -22
- data/lib/rubygems/commands/cleanup_command.rb +30 -26
- data/lib/rubygems/commands/contents_command.rb +16 -18
- data/lib/rubygems/commands/dependency_command.rb +39 -51
- data/lib/rubygems/commands/environment_command.rb +11 -10
- data/lib/rubygems/commands/fetch_command.rb +33 -16
- data/lib/rubygems/commands/generate_index_command.rb +17 -19
- data/lib/rubygems/commands/help_command.rb +6 -6
- data/lib/rubygems/commands/info_command.rb +10 -7
- data/lib/rubygems/commands/install_command.rb +29 -27
- data/lib/rubygems/commands/list_command.rb +9 -8
- data/lib/rubygems/commands/lock_command.rb +5 -7
- data/lib/rubygems/commands/mirror_command.rb +3 -5
- data/lib/rubygems/commands/open_command.rb +10 -14
- data/lib/rubygems/commands/outdated_command.rb +5 -7
- data/lib/rubygems/commands/owner_command.rb +26 -16
- data/lib/rubygems/commands/pristine_command.rb +61 -49
- data/lib/rubygems/commands/push_command.rb +22 -59
- data/lib/rubygems/commands/query_command.rb +21 -351
- data/lib/rubygems/commands/rdoc_command.rb +23 -25
- 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 +255 -229
- data/lib/rubygems/commands/signin_command.rb +9 -11
- data/lib/rubygems/commands/signout_command.rb +7 -9
- data/lib/rubygems/commands/sources_command.rb +27 -25
- data/lib/rubygems/commands/specification_command.rb +25 -21
- data/lib/rubygems/commands/stale_command.rb +3 -5
- data/lib/rubygems/commands/uninstall_command.rb +41 -43
- data/lib/rubygems/commands/unpack_command.rb +13 -15
- data/lib/rubygems/commands/update_command.rb +132 -74
- data/lib/rubygems/commands/which_command.rb +7 -9
- data/lib/rubygems/commands/yank_command.rb +16 -19
- data/lib/rubygems/compatibility.rb +4 -2
- data/lib/rubygems/config_file.rb +42 -26
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -1
- data/lib/rubygems/core_ext/kernel_require.rb +6 -3
- data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
- data/lib/rubygems/core_ext/tcpsocket_init.rb +52 -0
- data/lib/rubygems/defaults.rb +108 -32
- data/lib/rubygems/dependency.rb +21 -22
- data/lib/rubygems/dependency_installer.rb +19 -91
- data/lib/rubygems/dependency_list.rb +13 -15
- data/lib/rubygems/deprecate.rb +102 -8
- data/lib/rubygems/doctor.rb +22 -22
- data/lib/rubygems/errors.rb +6 -21
- data/lib/rubygems/exceptions.rb +33 -34
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +48 -54
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +23 -0
- data/lib/rubygems/ext/cargo_builder.rb +321 -0
- data/lib/rubygems/ext/cmake_builder.rb +6 -9
- data/lib/rubygems/ext/configure_builder.rb +5 -8
- data/lib/rubygems/ext/ext_conf_builder.rb +42 -66
- 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 +153 -32
- data/lib/rubygems/indexer.rb +30 -49
- 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 +194 -151
- 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 -8
- data/lib/rubygems/name_tuple.rb +9 -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 +2303 -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 +54 -56
- data/lib/rubygems/package/tar_reader/entry.rb +2 -5
- data/lib/rubygems/package/tar_reader.rb +1 -4
- data/lib/rubygems/package/tar_writer.rb +8 -18
- data/lib/rubygems/package.rb +101 -117
- data/lib/rubygems/package_task.rb +5 -11
- data/lib/rubygems/path_support.rb +2 -9
- data/lib/rubygems/platform.rb +101 -76
- data/lib/rubygems/psych_tree.rb +1 -3
- data/lib/rubygems/query_utils.rb +351 -0
- data/lib/rubygems/rdoc.rb +2 -14
- data/lib/rubygems/remote_fetcher.rb +48 -74
- data/lib/rubygems/request/connection_pools.rb +6 -10
- data/lib/rubygems/request/http_pool.rb +2 -4
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request.rb +26 -31
- data/lib/rubygems/request_set/gem_dependency_api.rb +23 -25
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -28
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +5 -7
- data/lib/rubygems/request_set/lockfile.rb +17 -21
- data/lib/rubygems/request_set.rb +27 -40
- data/lib/rubygems/requirement.rb +28 -48
- data/lib/rubygems/resolver/activation_request.rb +12 -6
- data/lib/rubygems/resolver/api_set/gem_parser.rb +20 -0
- data/lib/rubygems/resolver/api_set.rb +32 -25
- data/lib/rubygems/resolver/api_specification.rb +29 -15
- data/lib/rubygems/resolver/best_set.rb +7 -9
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +12 -14
- 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 +66 -24
- data/lib/rubygems/resolver/local_specification.rb +2 -4
- data/lib/rubygems/resolver/lock_set.rb +6 -8
- data/lib/rubygems/resolver/lock_specification.rb +4 -6
- 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 +41 -8
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +76 -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 -2
- 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 -4
- data/lib/rubygems/resolver/stats.rb +0 -2
- data/lib/rubygems/resolver/vendor_set.rb +1 -3
- data/lib/rubygems/resolver/vendor_specification.rb +3 -5
- data/lib/rubygems/resolver.rb +53 -51
- data/lib/rubygems/s3_uri_signer.rb +7 -15
- data/lib/rubygems/safe_yaml.rb +14 -16
- data/lib/rubygems/security/policies.rb +11 -11
- data/lib/rubygems/security/policy.rb +25 -29
- data/lib/rubygems/security/signer.rb +13 -16
- data/lib/rubygems/security/trust_dir.rb +4 -5
- data/lib/rubygems/security.rb +103 -69
- data/lib/rubygems/security_option.rb +7 -7
- 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 +44 -38
- data/lib/rubygems/source_list.rb +9 -16
- data/lib/rubygems/spec_fetcher.rb +49 -48
- data/lib/rubygems/specification.rb +338 -295
- data/lib/rubygems/specification_policy.rb +112 -61
- data/lib/rubygems/stub_specification.rb +21 -28
- data/lib/rubygems/text.rb +21 -20
- data/lib/rubygems/tsort/.document +1 -0
- data/lib/rubygems/tsort/LICENSE.txt +22 -0
- data/lib/rubygems/tsort/lib/tsort.rb +454 -0
- data/lib/rubygems/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +98 -45
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/uri.rb +126 -0
- data/lib/rubygems/uri_formatter.rb +2 -3
- data/lib/rubygems/user_interaction.rb +43 -54
- data/lib/rubygems/util/licenses.rb +115 -10
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/util.rb +18 -12
- data/lib/rubygems/validator.rb +6 -8
- data/lib/rubygems/version.rb +29 -20
- data/lib/rubygems/version_option.rb +11 -5
- data/lib/rubygems.rb +192 -289
- data/rubygems-update.gemspec +4 -4
- data/setup.rb +11 -22
- 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/{lib/rubygems/test_case.rb → test/rubygems/helper.rb} +380 -314
- data/{lib → test}/rubygems/installer_test_case.rb +38 -24
- data/{lib → test}/rubygems/package/tar_test_case.rb +4 -6
- 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/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/private_ec_key.pem +9 -0
- 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 +4 -6
- data/test/rubygems/test_bundled_ca.rb +43 -50
- data/test/rubygems/test_config.rb +5 -7
- data/test/rubygems/test_deprecate.rb +87 -10
- data/test/rubygems/test_exit.rb +11 -0
- data/test/rubygems/test_gem.rb +719 -639
- data/test/rubygems/test_gem_available_set.rb +24 -26
- data/test/rubygems/test_gem_bundler_version_finder.rb +37 -44
- data/test/rubygems/test_gem_command.rb +78 -49
- data/test/rubygems/test_gem_command_manager.rb +98 -35
- data/test/rubygems/test_gem_commands_build_command.rb +275 -57
- data/test/rubygems/test_gem_commands_cert_command.rb +180 -125
- data/test/rubygems/test_gem_commands_check_command.rb +9 -11
- data/test/rubygems/test_gem_commands_cleanup_command.rb +78 -69
- data/test/rubygems/test_gem_commands_contents_command.rb +73 -42
- data/test/rubygems/test_gem_commands_dependency_command.rb +38 -40
- data/test/rubygems/test_gem_commands_environment_command.rb +60 -38
- data/test/rubygems/test_gem_commands_fetch_command.rb +163 -32
- data/test/rubygems/test_gem_commands_generate_index_command.rb +8 -14
- data/test/rubygems/test_gem_commands_help_command.rb +34 -16
- data/test/rubygems/test_gem_commands_info_command.rb +33 -9
- data/test/rubygems/test_gem_commands_install_command.rb +401 -198
- 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 -5
- data/test/rubygems/test_gem_commands_open_command.rb +16 -19
- data/test/rubygems/test_gem_commands_outdated_command.rb +23 -7
- data/test/rubygems/test_gem_commands_owner_command.rb +100 -46
- data/test/rubygems/test_gem_commands_pristine_command.rb +131 -99
- data/test/rubygems/test_gem_commands_push_command.rb +134 -66
- data/test/rubygems/test_gem_commands_query_command.rb +91 -91
- data/test/rubygems/test_gem_commands_search_command.rb +2 -4
- data/test/rubygems/test_gem_commands_server_command.rb +6 -50
- data/test/rubygems/test_gem_commands_setup_command.rb +288 -179
- data/test/rubygems/test_gem_commands_signin_command.rb +162 -28
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -10
- data/test/rubygems/test_gem_commands_sources_command.rb +139 -32
- 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 +80 -82
- data/test/rubygems/test_gem_commands_unpack_command.rb +32 -34
- data/test/rubygems/test_gem_commands_update_command.rb +335 -88
- data/test/rubygems/test_gem_commands_which_command.rb +12 -14
- data/test/rubygems/test_gem_commands_yank_command.rb +80 -44
- data/test/rubygems/test_gem_config_file.rb +114 -97
- data/test/rubygems/test_gem_dependency.rb +87 -87
- data/test/rubygems/test_gem_dependency_installer.rb +277 -391
- data/test/rubygems/test_gem_dependency_list.rb +57 -59
- 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 +115 -109
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.lock +243 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/build.rb +21 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs +27 -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 +243 -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/build.rb +21 -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 +39 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +178 -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 +75 -0
- data/test/rubygems/test_gem_ext_cmake_builder.rb +31 -38
- data/test/rubygems/test_gem_ext_configure_builder.rb +23 -39
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +66 -82
- data/test/rubygems/test_gem_ext_rake_builder.rb +49 -32
- data/test/rubygems/test_gem_gem_runner.rb +51 -8
- data/test/rubygems/test_gem_gemcutter_utilities.rb +87 -76
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -6
- data/test/rubygems/test_gem_indexer.rb +62 -64
- data/test/rubygems/test_gem_install_update_options.rb +31 -21
- data/test/rubygems/test_gem_installer.rb +798 -491
- 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 +318 -283
- data/test/rubygems/test_gem_package_old.rb +18 -20
- data/test/rubygems/test_gem_package_tar_header.rb +64 -47
- data/test/rubygems/test_gem_package_tar_reader.rb +8 -10
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +18 -20
- data/test/rubygems/test_gem_package_tar_writer.rb +96 -100
- data/test/rubygems/test_gem_package_task.rb +58 -25
- data/test/rubygems/test_gem_path_support.rb +15 -21
- data/test/rubygems/test_gem_platform.rb +354 -201
- data/test/rubygems/test_gem_rdoc.rb +19 -21
- data/test/rubygems/test_gem_remote_fetcher.rb +376 -337
- data/test/rubygems/test_gem_request.rb +114 -86
- data/test/rubygems/test_gem_request_connection_pools.rb +30 -34
- data/test/rubygems/test_gem_request_set.rb +123 -124
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +222 -226
- data/test/rubygems/test_gem_request_set_lockfile.rb +93 -95
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +68 -70
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +136 -138
- data/test/rubygems/test_gem_requirement.rb +133 -54
- data/test/rubygems/test_gem_resolver.rb +149 -117
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -8
- 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 -14
- 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 -23
- data/test/rubygems/test_gem_resolver_index_set.rb +14 -16
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -18
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -7
- data/test/rubygems/test_gem_resolver_installer_set.rb +104 -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 -12
- 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 +104 -78
- data/test/rubygems/test_gem_security_policy.rb +92 -97
- data/test/rubygems/test_gem_security_signer.rb +45 -47
- data/test/rubygems/test_gem_security_trust_dir.rb +12 -14
- data/test/rubygems/test_gem_silent_ui.rb +46 -42
- data/test/rubygems/test_gem_source.rb +53 -52
- data/test/rubygems/test_gem_source_fetch_problem.rb +16 -8
- data/test/rubygems/test_gem_source_git.rb +69 -69
- data/test/rubygems/test_gem_source_installed.rb +16 -18
- data/test/rubygems/test_gem_source_list.rb +5 -6
- data/test/rubygems/test_gem_source_local.rb +15 -17
- data/test/rubygems/test_gem_source_lock.rb +31 -33
- data/test/rubygems/test_gem_source_specific_file.rb +18 -20
- 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 +888 -1024
- data/test/rubygems/test_gem_stream_ui.rb +23 -23
- data/test/rubygems/test_gem_stub_specification.rb +39 -57
- data/test/rubygems/test_gem_text.rb +8 -4
- data/test/rubygems/test_gem_uninstaller.rb +233 -104
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -5
- 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 +37 -35
- data/test/rubygems/test_gem_validator.rb +10 -12
- data/test/rubygems/test_gem_version.rb +31 -31
- data/test/rubygems/test_gem_version_option.rb +16 -18
- data/test/rubygems/test_kernel.rb +46 -60
- data/test/rubygems/test_project_sanity.rb +8 -3
- data/test/rubygems/test_remote_fetch_error.rb +7 -9
- data/test/rubygems/test_require.rb +240 -167
- data/test/rubygems/test_rubygems.rb +74 -0
- data/{lib/rubygems/test_utilities.rb → test/rubygems/utilities.rb} +30 -39
- data/test/test_changelog_generator.rb +17 -0
- metadata +158 -146
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/Rakefile +0 -428
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/lib/bundler/gemdeps.rb +0 -29
- data/bundler/lib/bundler/psyched_yaml.rb +0 -37
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- data/bundler/man/bundle-add.1.txt +0 -58
- data/bundler/man/bundle-binstubs.1.txt +0 -48
- data/bundler/man/bundle-cache.1.txt +0 -78
- data/bundler/man/bundle-check.1.txt +0 -33
- data/bundler/man/bundle-clean.1.txt +0 -26
- data/bundler/man/bundle-config.1.txt +0 -528
- data/bundler/man/bundle-doctor.1.txt +0 -44
- data/bundler/man/bundle-exec.1.txt +0 -178
- data/bundler/man/bundle-gem.1.txt +0 -91
- data/bundler/man/bundle-info.1.txt +0 -21
- data/bundler/man/bundle-init.1.txt +0 -34
- data/bundler/man/bundle-inject.1.txt +0 -32
- data/bundler/man/bundle-install.1.txt +0 -401
- data/bundler/man/bundle-list.1.txt +0 -43
- data/bundler/man/bundle-lock.1.txt +0 -93
- data/bundler/man/bundle-open.1.txt +0 -29
- data/bundler/man/bundle-outdated.1.txt +0 -131
- data/bundler/man/bundle-platform.1.txt +0 -57
- data/bundler/man/bundle-pristine.1.txt +0 -44
- data/bundler/man/bundle-remove.1.txt +0 -34
- data/bundler/man/bundle-show.1.txt +0 -27
- data/bundler/man/bundle-update.1.txt +0 -390
- data/bundler/man/bundle-viz.1.txt +0 -39
- data/bundler/man/bundle.1.txt +0 -116
- data/bundler/man/gemfile.5.txt +0 -649
- data/lib/rubygems/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -879
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/syck_hack.rb +0 -79
- data/lib/rubygems/uri_parser.rb +0 -36
- data/lib/rubygems/uri_parsing.rb +0 -23
- 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 -612
- data/tmp/.keep +0 -0
- data/util/CL2notes +0 -55
- data/util/bisect +0 -10
- data/util/ci.sh +0 -62
- data/util/cops/deprecations.rb +0 -52
- data/util/create_certs.rb +0 -171
- data/util/create_certs.sh +0 -27
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -63
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -137
- data/util/update_changelog.rb +0 -64
- /data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- /data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.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-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- /data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- /data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.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
@@ -1,11 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
2
|
+
require_relative "helper"
|
3
|
+
require "rubygems/commands/install_command"
|
4
|
+
require "rubygems/request_set"
|
5
|
+
require "rubygems/rdoc"
|
6
6
|
|
7
7
|
class TestGemCommandsInstallCommand < Gem::TestCase
|
8
|
-
|
9
8
|
def setup
|
10
9
|
super
|
11
10
|
common_installer_setup
|
@@ -31,51 +30,51 @@ class TestGemCommandsInstallCommand < Gem::TestCase
|
|
31
30
|
|
32
31
|
def test_execute_exclude_prerelease
|
33
32
|
spec_fetcher do |fetcher|
|
34
|
-
fetcher.gem
|
35
|
-
fetcher.gem
|
33
|
+
fetcher.gem "a", 2
|
34
|
+
fetcher.gem "a", "2.pre"
|
36
35
|
end
|
37
36
|
|
38
37
|
@cmd.options[:args] = %w[a]
|
39
38
|
|
40
39
|
use_ui @ui do
|
41
|
-
|
40
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
42
41
|
@cmd.execute
|
43
42
|
end
|
44
43
|
end
|
45
44
|
|
46
|
-
assert_equal %w[a-2], @cmd.installed_specs.map {
|
45
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
47
46
|
end
|
48
47
|
|
49
48
|
def test_execute_explicit_version_includes_prerelease
|
50
49
|
specs = spec_fetcher do |fetcher|
|
51
|
-
fetcher.gem
|
52
|
-
fetcher.gem
|
50
|
+
fetcher.gem "a", 2
|
51
|
+
fetcher.gem "a", "2.a"
|
53
52
|
end
|
54
53
|
|
55
|
-
a2_pre = specs[
|
54
|
+
a2_pre = specs["a-2.a"]
|
56
55
|
|
57
|
-
@cmd.handle_options [a2_pre.name,
|
56
|
+
@cmd.handle_options [a2_pre.name, "--version", a2_pre.version.to_s,
|
58
57
|
"--no-document"]
|
59
58
|
assert @cmd.options[:prerelease]
|
60
59
|
assert @cmd.options[:version].satisfied_by?(a2_pre.version)
|
61
60
|
|
62
61
|
use_ui @ui do
|
63
|
-
|
62
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
64
63
|
@cmd.execute
|
65
64
|
end
|
66
65
|
end
|
67
66
|
|
68
|
-
assert_equal %w[a-2.a], @cmd.installed_specs.map {
|
67
|
+
assert_equal %w[a-2.a], @cmd.installed_specs.map {|spec| spec.full_name }
|
69
68
|
end
|
70
69
|
|
71
70
|
def test_execute_local
|
72
71
|
specs = spec_fetcher do |fetcher|
|
73
|
-
fetcher.gem
|
72
|
+
fetcher.gem "a", 2
|
74
73
|
end
|
75
74
|
|
76
75
|
@cmd.options[:domain] = :local
|
77
76
|
|
78
|
-
FileUtils.mv specs[
|
77
|
+
FileUtils.mv specs["a-2"].cache_file, @tempdir
|
79
78
|
|
80
79
|
@cmd.options[:args] = %w[a]
|
81
80
|
|
@@ -83,7 +82,7 @@ class TestGemCommandsInstallCommand < Gem::TestCase
|
|
83
82
|
orig_dir = Dir.pwd
|
84
83
|
begin
|
85
84
|
Dir.chdir @tempdir
|
86
|
-
|
85
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
87
86
|
@cmd.execute
|
88
87
|
end
|
89
88
|
ensure
|
@@ -91,27 +90,27 @@ class TestGemCommandsInstallCommand < Gem::TestCase
|
|
91
90
|
end
|
92
91
|
end
|
93
92
|
|
94
|
-
assert_equal %w[a-2], @cmd.installed_specs.map {
|
93
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
95
94
|
|
96
95
|
assert_match "1 gem installed", @ui.output
|
97
96
|
end
|
98
97
|
|
99
98
|
def test_execute_local_dependency_nonexistent
|
100
99
|
specs = spec_fetcher do |fetcher|
|
101
|
-
fetcher.gem
|
100
|
+
fetcher.gem "foo", 2, "bar" => "0.5"
|
102
101
|
end
|
103
102
|
|
104
103
|
@cmd.options[:domain] = :local
|
105
104
|
|
106
|
-
FileUtils.mv specs[
|
105
|
+
FileUtils.mv specs["foo-2"].cache_file, @tempdir
|
107
106
|
|
108
|
-
@cmd.options[:args] = [
|
107
|
+
@cmd.options[:args] = ["foo"]
|
109
108
|
|
110
109
|
use_ui @ui do
|
111
110
|
orig_dir = Dir.pwd
|
112
111
|
begin
|
113
112
|
Dir.chdir @tempdir
|
114
|
-
e =
|
113
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
115
114
|
@cmd.execute
|
116
115
|
end
|
117
116
|
assert_equal 2, e.exit_code
|
@@ -129,21 +128,21 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
129
128
|
|
130
129
|
def test_execute_local_dependency_nonexistent_ignore_dependencies
|
131
130
|
specs = spec_fetcher do |fetcher|
|
132
|
-
fetcher.gem
|
131
|
+
fetcher.gem "foo", 2, "bar" => "0.5"
|
133
132
|
end
|
134
133
|
|
135
134
|
@cmd.options[:domain] = :local
|
136
135
|
@cmd.options[:ignore_dependencies] = true
|
137
136
|
|
138
|
-
FileUtils.mv specs[
|
137
|
+
FileUtils.mv specs["foo-2"].cache_file, @tempdir
|
139
138
|
|
140
|
-
@cmd.options[:args] = [
|
139
|
+
@cmd.options[:args] = ["foo"]
|
141
140
|
|
142
141
|
use_ui @ui do
|
143
142
|
orig_dir = Dir.pwd
|
144
143
|
begin
|
145
144
|
Dir.chdir orig_dir
|
146
|
-
|
145
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
147
146
|
@cmd.execute
|
148
147
|
end
|
149
148
|
ensure
|
@@ -156,16 +155,16 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
156
155
|
|
157
156
|
def test_execute_local_transitive_prerelease
|
158
157
|
specs = spec_fetcher do |fetcher|
|
159
|
-
fetcher.download
|
160
|
-
fetcher.download
|
161
|
-
fetcher.download
|
158
|
+
fetcher.download "a", 2, "b" => "2.a", "c" => "3"
|
159
|
+
fetcher.download "b", "2.a"
|
160
|
+
fetcher.download "c", "3"
|
162
161
|
end
|
163
162
|
|
164
163
|
@cmd.options[:domain] = :local
|
165
164
|
|
166
|
-
FileUtils.mv specs[
|
167
|
-
FileUtils.mv specs[
|
168
|
-
FileUtils.mv specs[
|
165
|
+
FileUtils.mv specs["a-2"].cache_file, @tempdir
|
166
|
+
FileUtils.mv specs["b-2.a"].cache_file, @tempdir
|
167
|
+
FileUtils.mv specs["c-3"].cache_file, @tempdir
|
169
168
|
|
170
169
|
@cmd.options[:args] = %w[a]
|
171
170
|
|
@@ -174,7 +173,7 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
174
173
|
begin
|
175
174
|
Dir.chdir @tempdir
|
176
175
|
FileUtils.rm_r [@gemhome, "gems"]
|
177
|
-
|
176
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
178
177
|
@cmd.execute
|
179
178
|
end
|
180
179
|
ensure
|
@@ -182,22 +181,22 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
182
181
|
end
|
183
182
|
end
|
184
183
|
|
185
|
-
assert_equal %w[a-2 b-2.a c-3], @cmd.installed_specs.map {
|
184
|
+
assert_equal %w[a-2 b-2.a c-3], @cmd.installed_specs.map {|spec| spec.full_name }.sort
|
186
185
|
|
187
186
|
assert_match "3 gems installed", @ui.output
|
188
187
|
end
|
189
188
|
|
190
189
|
def test_execute_no_user_install
|
191
|
-
|
192
|
-
|
190
|
+
pend "skipped on MS Windows (chmod has no effect)" if win_platform?
|
191
|
+
pend "skipped in root privilege" if Process.uid.zero?
|
193
192
|
|
194
193
|
specs = spec_fetcher do |fetcher|
|
195
|
-
fetcher.gem
|
194
|
+
fetcher.gem "a", 2
|
196
195
|
end
|
197
196
|
|
198
197
|
@cmd.options[:user_install] = false
|
199
198
|
|
200
|
-
FileUtils.mv specs[
|
199
|
+
FileUtils.mv specs["a-2"].cache_file, @tempdir
|
201
200
|
|
202
201
|
@cmd.options[:args] = %w[a]
|
203
202
|
|
@@ -208,7 +207,7 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
208
207
|
FileUtils.chmod 0555, @gemhome
|
209
208
|
|
210
209
|
Dir.chdir @tempdir
|
211
|
-
|
210
|
+
assert_raise Gem::FilePermissionError do
|
212
211
|
@cmd.execute
|
213
212
|
end
|
214
213
|
ensure
|
@@ -226,7 +225,7 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
226
225
|
@cmd.options[:args] = %w[no_such_gem]
|
227
226
|
|
228
227
|
use_ui @ui do
|
229
|
-
e =
|
228
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
230
229
|
@cmd.execute
|
231
230
|
end
|
232
231
|
assert_equal 2, e.exit_code
|
@@ -245,7 +244,7 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
245
244
|
@cmd.options[:args] = %w[no_such_gem]
|
246
245
|
|
247
246
|
use_ui @ui do
|
248
|
-
e =
|
247
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
249
248
|
@cmd.execute
|
250
249
|
end
|
251
250
|
assert_equal 2, e.exit_code
|
@@ -258,7 +257,7 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
258
257
|
def test_execute_no_gem
|
259
258
|
@cmd.options[:args] = %w[]
|
260
259
|
|
261
|
-
|
260
|
+
assert_raise Gem::CommandLineError do
|
262
261
|
@cmd.execute
|
263
262
|
end
|
264
263
|
end
|
@@ -269,7 +268,23 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
269
268
|
@cmd.options[:args] = %w[nonexistent]
|
270
269
|
|
271
270
|
use_ui @ui do
|
272
|
-
e =
|
271
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
272
|
+
@cmd.execute
|
273
|
+
end
|
274
|
+
assert_equal 2, e.exit_code
|
275
|
+
end
|
276
|
+
|
277
|
+
assert_match(/ould not find a valid gem 'nonexistent'/, @ui.error)
|
278
|
+
end
|
279
|
+
|
280
|
+
def test_execute_nonexistent_force
|
281
|
+
spec_fetcher
|
282
|
+
|
283
|
+
@cmd.options[:args] = %w[nonexistent]
|
284
|
+
@cmd.options[:force] = true
|
285
|
+
|
286
|
+
use_ui @ui do
|
287
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
273
288
|
@cmd.execute
|
274
289
|
end
|
275
290
|
assert_equal 2, e.exit_code
|
@@ -280,13 +295,13 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
280
295
|
|
281
296
|
def test_execute_dependency_nonexistent
|
282
297
|
spec_fetcher do |fetcher|
|
283
|
-
fetcher.spec
|
298
|
+
fetcher.spec "foo", 2, "bar" => "0.5"
|
284
299
|
end
|
285
300
|
|
286
|
-
@cmd.options[:args] = [
|
301
|
+
@cmd.options[:args] = ["foo"]
|
287
302
|
|
288
303
|
use_ui @ui do
|
289
|
-
e =
|
304
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
290
305
|
@cmd.execute
|
291
306
|
end
|
292
307
|
|
@@ -302,7 +317,7 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
302
317
|
|
303
318
|
def test_execute_http_proxy
|
304
319
|
use_ui @ui do
|
305
|
-
e =
|
320
|
+
e = assert_raise ArgumentError, @ui.error do
|
306
321
|
@cmd.handle_options %w[-p=foo.bar.com]
|
307
322
|
end
|
308
323
|
|
@@ -328,7 +343,7 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
328
343
|
@cmd.options[:args] = %w[nonexistent]
|
329
344
|
|
330
345
|
use_ui @ui do
|
331
|
-
e =
|
346
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
332
347
|
@cmd.execute
|
333
348
|
end
|
334
349
|
assert_equal 2, e.exit_code
|
@@ -337,7 +352,7 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
337
352
|
errs = @ui.error.split("\n")
|
338
353
|
|
339
354
|
assert_match(/ould not find a valid gem 'nonexistent'/, errs.shift)
|
340
|
-
assert_match(%r
|
355
|
+
assert_match(%r{Unable to download data from http://not-there.nothing}, errs.shift)
|
341
356
|
end
|
342
357
|
|
343
358
|
def test_execute_nonexistent_hint_disabled
|
@@ -352,7 +367,7 @@ ERROR: Could not find a valid gem 'bar' (= 0.5) (required by 'foo' (>= 0)) in a
|
|
352
367
|
@cmd.options[:suggest_alternate] = false
|
353
368
|
|
354
369
|
use_ui @ui do
|
355
|
-
e =
|
370
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
356
371
|
@cmd.execute
|
357
372
|
end
|
358
373
|
|
@@ -377,7 +392,7 @@ ERROR: Could not find a valid gem 'nonexistent_with_hint' (>= 0) in any reposit
|
|
377
392
|
@cmd.options[:args] = [misspelled]
|
378
393
|
|
379
394
|
use_ui @ui do
|
380
|
-
e =
|
395
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
381
396
|
@cmd.execute
|
382
397
|
end
|
383
398
|
|
@@ -402,7 +417,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
402
417
|
@cmd.options[:args] = [misspelled]
|
403
418
|
|
404
419
|
use_ui @ui do
|
405
|
-
e =
|
420
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
406
421
|
@cmd.execute
|
407
422
|
end
|
408
423
|
|
@@ -411,7 +426,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
411
426
|
|
412
427
|
expected = [
|
413
428
|
"ERROR: Could not find a valid gem 'non-existent_with-hint' (>= 0) in any repository",
|
414
|
-
"ERROR: Possible alternatives: nonexistent-with_hint"
|
429
|
+
"ERROR: Possible alternatives: nonexistent-with_hint",
|
415
430
|
]
|
416
431
|
|
417
432
|
output = @ui.error.split "\n"
|
@@ -424,7 +439,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
424
439
|
@cmd.options[:install_dir] = "whatever"
|
425
440
|
|
426
441
|
use_ui @ui do
|
427
|
-
|
442
|
+
assert_raise Gem::MockGemUi::TermError do
|
428
443
|
@cmd.execute
|
429
444
|
end
|
430
445
|
end
|
@@ -436,78 +451,209 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
436
451
|
|
437
452
|
def test_execute_prerelease_skipped_when_no_flag_set
|
438
453
|
spec_fetcher do |fetcher|
|
439
|
-
fetcher.gem
|
440
|
-
fetcher.gem
|
454
|
+
fetcher.gem "a", 1
|
455
|
+
fetcher.gem "a", "3.a"
|
441
456
|
end
|
442
457
|
|
443
458
|
@cmd.options[:prerelease] = false
|
444
459
|
@cmd.options[:args] = %w[a]
|
445
460
|
|
446
461
|
use_ui @ui do
|
447
|
-
|
462
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
448
463
|
@cmd.execute
|
449
464
|
end
|
450
465
|
end
|
451
466
|
|
452
|
-
assert_equal %w[a-1], @cmd.installed_specs.map {
|
467
|
+
assert_equal %w[a-1], @cmd.installed_specs.map {|spec| spec.full_name }
|
453
468
|
end
|
454
469
|
|
455
470
|
def test_execute_prerelease_wins_over_previous_ver
|
456
471
|
spec_fetcher do |fetcher|
|
457
|
-
fetcher.download
|
458
|
-
fetcher.download
|
472
|
+
fetcher.download "a", 1
|
473
|
+
fetcher.download "a", "2.a"
|
459
474
|
end
|
460
475
|
|
461
476
|
@cmd.options[:prerelease] = true
|
462
477
|
@cmd.options[:args] = %w[a]
|
463
478
|
|
464
479
|
use_ui @ui do
|
465
|
-
|
480
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
466
481
|
@cmd.execute
|
467
482
|
end
|
468
483
|
end
|
469
484
|
|
470
|
-
assert_equal %w[a-2.a], @cmd.installed_specs.map {
|
485
|
+
assert_equal %w[a-2.a], @cmd.installed_specs.map {|spec| spec.full_name }
|
471
486
|
end
|
472
487
|
|
473
488
|
def test_execute_with_version_specified_by_colon
|
474
489
|
spec_fetcher do |fetcher|
|
475
|
-
fetcher.download
|
476
|
-
fetcher.download
|
490
|
+
fetcher.download "a", 1
|
491
|
+
fetcher.download "a", 2
|
477
492
|
end
|
478
493
|
|
479
494
|
@cmd.options[:args] = %w[a:1]
|
480
495
|
|
481
496
|
use_ui @ui do
|
482
|
-
|
497
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
483
498
|
@cmd.execute
|
484
499
|
end
|
485
500
|
end
|
486
501
|
|
487
|
-
assert_equal %w[a-1], @cmd.installed_specs.map {
|
502
|
+
assert_equal %w[a-1], @cmd.installed_specs.map {|spec| spec.full_name }
|
488
503
|
end
|
489
504
|
|
490
505
|
def test_execute_prerelease_skipped_when_non_pre_available
|
491
506
|
spec_fetcher do |fetcher|
|
492
|
-
fetcher.gem
|
493
|
-
fetcher.gem
|
507
|
+
fetcher.gem "a", "2.pre"
|
508
|
+
fetcher.gem "a", 2
|
494
509
|
end
|
495
510
|
|
496
511
|
@cmd.options[:prerelease] = true
|
497
512
|
@cmd.options[:args] = %w[a]
|
498
513
|
|
499
514
|
use_ui @ui do
|
500
|
-
|
515
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
516
|
+
@cmd.execute
|
517
|
+
end
|
518
|
+
end
|
519
|
+
|
520
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
521
|
+
end
|
522
|
+
|
523
|
+
def test_execute_required_ruby_version
|
524
|
+
next_ruby = Gem.ruby_version.segments.map.with_index {|n, i| i == 1 ? n + 1 : n }.join(".")
|
525
|
+
|
526
|
+
local = Gem::Platform.local
|
527
|
+
spec_fetcher do |fetcher|
|
528
|
+
fetcher.download "a", 2
|
529
|
+
fetcher.download "a", 2 do |s|
|
530
|
+
s.required_ruby_version = "< #{RUBY_VERSION}.a"
|
531
|
+
s.platform = local
|
532
|
+
end
|
533
|
+
fetcher.download "a", 3 do |s|
|
534
|
+
s.required_ruby_version = ">= #{next_ruby}"
|
535
|
+
end
|
536
|
+
fetcher.download "a", 3 do |s|
|
537
|
+
s.required_ruby_version = ">= #{next_ruby}"
|
538
|
+
s.platform = local
|
539
|
+
end
|
540
|
+
end
|
541
|
+
|
542
|
+
@cmd.options[:args] = %w[a]
|
543
|
+
|
544
|
+
use_ui @ui do
|
545
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
546
|
+
@cmd.execute
|
547
|
+
end
|
548
|
+
end
|
549
|
+
|
550
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
551
|
+
end
|
552
|
+
|
553
|
+
def test_execute_required_ruby_version_upper_bound
|
554
|
+
local = Gem::Platform.local
|
555
|
+
spec_fetcher do |fetcher|
|
556
|
+
fetcher.gem "a", 2.0
|
557
|
+
fetcher.gem "a", 2.0 do |s|
|
558
|
+
s.required_ruby_version = "< #{RUBY_VERSION}.a"
|
559
|
+
s.platform = local
|
560
|
+
end
|
561
|
+
end
|
562
|
+
|
563
|
+
@cmd.options[:args] = %w[a]
|
564
|
+
|
565
|
+
use_ui @ui do
|
566
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
567
|
+
@cmd.execute
|
568
|
+
end
|
569
|
+
end
|
570
|
+
|
571
|
+
assert_equal %w[a-2.0], @cmd.installed_specs.map {|spec| spec.full_name }
|
572
|
+
end
|
573
|
+
|
574
|
+
def test_execute_required_ruby_version_specific_not_met
|
575
|
+
spec_fetcher do |fetcher|
|
576
|
+
fetcher.gem "a", "1.0" do |s|
|
577
|
+
s.required_ruby_version = "= 1.4.6"
|
578
|
+
end
|
579
|
+
end
|
580
|
+
|
581
|
+
@cmd.options[:args] = %w[a]
|
582
|
+
|
583
|
+
use_ui @ui do
|
584
|
+
assert_raise Gem::MockGemUi::TermError do
|
585
|
+
@cmd.execute
|
586
|
+
end
|
587
|
+
end
|
588
|
+
|
589
|
+
errs = @ui.error.split("\n")
|
590
|
+
assert_equal "ERROR: Error installing a:", errs.shift
|
591
|
+
assert_equal "\ta-1.0 requires Ruby version = 1.4.6. The current ruby version is #{Gem.ruby_version}.", errs.shift
|
592
|
+
end
|
593
|
+
|
594
|
+
def test_execute_required_ruby_version_specific_prerelease_met
|
595
|
+
spec_fetcher do |fetcher|
|
596
|
+
fetcher.gem "a", "1.0" do |s|
|
597
|
+
s.required_ruby_version = ">= 1.4.6.preview2"
|
598
|
+
end
|
599
|
+
end
|
600
|
+
|
601
|
+
@cmd.options[:args] = %w[a]
|
602
|
+
|
603
|
+
use_ui @ui do
|
604
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
501
605
|
@cmd.execute
|
502
606
|
end
|
503
607
|
end
|
504
608
|
|
505
|
-
assert_equal %w[a-
|
609
|
+
assert_equal %w[a-1.0], @cmd.installed_specs.map {|spec| spec.full_name }
|
610
|
+
end
|
611
|
+
|
612
|
+
def test_execute_required_ruby_version_specific_prerelease_not_met
|
613
|
+
next_ruby_pre = Gem.ruby_version.segments.map.with_index {|n, i| i == 1 ? n + 1 : n }.join(".") + ".a"
|
614
|
+
|
615
|
+
spec_fetcher do |fetcher|
|
616
|
+
fetcher.gem "a", "1.0" do |s|
|
617
|
+
s.required_ruby_version = "> #{next_ruby_pre}"
|
618
|
+
end
|
619
|
+
end
|
620
|
+
|
621
|
+
@cmd.options[:args] = %w[a]
|
622
|
+
|
623
|
+
use_ui @ui do
|
624
|
+
assert_raise Gem::MockGemUi::TermError do
|
625
|
+
@cmd.execute
|
626
|
+
end
|
627
|
+
end
|
628
|
+
|
629
|
+
errs = @ui.error.split("\n")
|
630
|
+
assert_equal "ERROR: Error installing a:", errs.shift
|
631
|
+
assert_equal "\ta-1.0 requires Ruby version > #{next_ruby_pre}. The current ruby version is #{Gem.ruby_version}.", errs.shift
|
632
|
+
end
|
633
|
+
|
634
|
+
def test_execute_required_rubygems_version_wrong
|
635
|
+
spec_fetcher do |fetcher|
|
636
|
+
fetcher.gem "a", "1.0" do |s|
|
637
|
+
s.required_rubygems_version = "< 0"
|
638
|
+
end
|
639
|
+
end
|
640
|
+
|
641
|
+
@cmd.options[:args] = %w[a]
|
642
|
+
|
643
|
+
use_ui @ui do
|
644
|
+
assert_raise Gem::MockGemUi::TermError do
|
645
|
+
@cmd.execute
|
646
|
+
end
|
647
|
+
end
|
648
|
+
|
649
|
+
errs = @ui.error.split("\n")
|
650
|
+
assert_equal "ERROR: Error installing a:", errs.shift
|
651
|
+
assert_equal "\ta-1.0 requires RubyGems version < 0. The current RubyGems version is #{Gem.rubygems_version}. Try 'gem update --system' to update RubyGems itself.", errs.shift
|
506
652
|
end
|
507
653
|
|
508
654
|
def test_execute_rdoc
|
509
655
|
specs = spec_fetcher do |fetcher|
|
510
|
-
fetcher.gem
|
656
|
+
fetcher.gem "a", 2
|
511
657
|
end
|
512
658
|
|
513
659
|
Gem.done_installing(&Gem::RDoc.method(:generation_hook))
|
@@ -515,7 +661,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
515
661
|
@cmd.options[:document] = %w[rdoc ri]
|
516
662
|
@cmd.options[:domain] = :local
|
517
663
|
|
518
|
-
a2 = specs[
|
664
|
+
a2 = specs["a-2"]
|
519
665
|
FileUtils.mv a2.cache_file, @tempdir
|
520
666
|
|
521
667
|
@cmd.options[:args] = %w[a]
|
@@ -527,7 +673,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
527
673
|
|
528
674
|
begin
|
529
675
|
Dir.chdir @tempdir
|
530
|
-
|
676
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
531
677
|
@cmd.execute
|
532
678
|
end
|
533
679
|
ensure
|
@@ -537,22 +683,22 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
537
683
|
|
538
684
|
wait_for_child_process_to_exit
|
539
685
|
|
540
|
-
|
541
|
-
|
686
|
+
assert_path_exist File.join(a2.doc_dir, "ri")
|
687
|
+
assert_path_exist File.join(a2.doc_dir, "rdoc")
|
542
688
|
end
|
543
689
|
|
544
690
|
def test_execute_rdoc_with_path
|
545
691
|
specs = spec_fetcher do |fetcher|
|
546
|
-
fetcher.gem
|
692
|
+
fetcher.gem "a", 2
|
547
693
|
end
|
548
694
|
|
549
695
|
Gem.done_installing(&Gem::RDoc.method(:generation_hook))
|
550
696
|
|
551
697
|
@cmd.options[:document] = %w[rdoc ri]
|
552
698
|
@cmd.options[:domain] = :local
|
553
|
-
@cmd.options[:install_dir] =
|
699
|
+
@cmd.options[:install_dir] = "whatever"
|
554
700
|
|
555
|
-
a2 = specs[
|
701
|
+
a2 = specs["a-2"]
|
556
702
|
FileUtils.mv a2.cache_file, @tempdir
|
557
703
|
|
558
704
|
@cmd.options[:args] = %w[a]
|
@@ -564,7 +710,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
564
710
|
|
565
711
|
begin
|
566
712
|
Dir.chdir @tempdir
|
567
|
-
|
713
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
568
714
|
@cmd.execute
|
569
715
|
end
|
570
716
|
ensure
|
@@ -574,19 +720,19 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
574
720
|
|
575
721
|
wait_for_child_process_to_exit
|
576
722
|
|
577
|
-
|
723
|
+
assert_path_exist "whatever/doc/a-2", "documentation not installed"
|
578
724
|
end
|
579
725
|
|
580
726
|
def test_execute_saves_build_args
|
581
727
|
specs = spec_fetcher do |fetcher|
|
582
|
-
fetcher.gem
|
728
|
+
fetcher.gem "a", 2
|
583
729
|
end
|
584
730
|
|
585
|
-
args = %w
|
731
|
+
args = %w[--with-awesome=true --more-awesome=yes]
|
586
732
|
|
587
733
|
Gem::Command.build_args = args
|
588
734
|
|
589
|
-
a2 = specs[
|
735
|
+
a2 = specs["a-2"]
|
590
736
|
FileUtils.mv a2.cache_file, @tempdir
|
591
737
|
|
592
738
|
@cmd.options[:domain] = :local
|
@@ -600,7 +746,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
600
746
|
|
601
747
|
begin
|
602
748
|
Dir.chdir @tempdir
|
603
|
-
|
749
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
604
750
|
@cmd.execute
|
605
751
|
end
|
606
752
|
ensure
|
@@ -609,25 +755,25 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
609
755
|
end
|
610
756
|
|
611
757
|
path = a2.build_info_file
|
612
|
-
|
758
|
+
assert_path_exist path
|
613
759
|
|
614
760
|
assert_equal args, a2.build_args
|
615
761
|
end
|
616
762
|
|
617
763
|
def test_execute_remote
|
618
764
|
spec_fetcher do |fetcher|
|
619
|
-
fetcher.gem
|
765
|
+
fetcher.gem "a", 2
|
620
766
|
end
|
621
767
|
|
622
768
|
@cmd.options[:args] = %w[a]
|
623
769
|
|
624
770
|
use_ui @ui do
|
625
|
-
|
771
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
626
772
|
@cmd.execute
|
627
773
|
end
|
628
774
|
end
|
629
775
|
|
630
|
-
assert_equal %w[a-2], @cmd.installed_specs.map {
|
776
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
631
777
|
|
632
778
|
assert_match "1 gem installed", @ui.output
|
633
779
|
end
|
@@ -636,32 +782,65 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
636
782
|
FileUtils.touch("a.gem")
|
637
783
|
|
638
784
|
spec_fetcher do |fetcher|
|
639
|
-
fetcher.gem
|
785
|
+
fetcher.gem "a", 2
|
640
786
|
end
|
641
787
|
|
642
788
|
@cmd.options[:args] = %w[a]
|
643
789
|
|
644
790
|
use_ui @ui do
|
645
|
-
|
791
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
646
792
|
@cmd.execute
|
647
793
|
end
|
648
794
|
end
|
649
795
|
|
650
|
-
assert_equal %w[a-2], @cmd.installed_specs.map {
|
796
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
797
|
+
|
798
|
+
assert_match "1 gem installed", @ui.output
|
799
|
+
end
|
800
|
+
|
801
|
+
def test_execute_remote_truncates_existing_gemspecs
|
802
|
+
spec_fetcher do |fetcher|
|
803
|
+
fetcher.gem "a", 1
|
804
|
+
end
|
805
|
+
|
806
|
+
@cmd.options[:domain] = :remote
|
807
|
+
|
808
|
+
@cmd.options[:args] = %w[a]
|
809
|
+
|
810
|
+
use_ui @ui do
|
811
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
812
|
+
@cmd.execute
|
813
|
+
end
|
814
|
+
end
|
651
815
|
|
816
|
+
assert_equal %w[a-1], @cmd.installed_specs.map {|spec| spec.full_name }
|
652
817
|
assert_match "1 gem installed", @ui.output
|
818
|
+
|
819
|
+
a1_gemspec = File.join(@gemhome, "specifications", "a-1.gemspec")
|
820
|
+
|
821
|
+
initial_a1_gemspec_content = File.read(a1_gemspec)
|
822
|
+
modified_a1_gemspec_content = initial_a1_gemspec_content + "\n # AAAAAAA\n"
|
823
|
+
File.write(a1_gemspec, modified_a1_gemspec_content)
|
824
|
+
|
825
|
+
use_ui @ui do
|
826
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
827
|
+
@cmd.execute
|
828
|
+
end
|
829
|
+
end
|
830
|
+
|
831
|
+
assert_equal initial_a1_gemspec_content, File.read(a1_gemspec)
|
653
832
|
end
|
654
833
|
|
655
834
|
def test_execute_remote_ignores_files
|
656
835
|
specs = spec_fetcher do |fetcher|
|
657
|
-
fetcher.gem
|
658
|
-
fetcher.gem
|
836
|
+
fetcher.gem "a", 1
|
837
|
+
fetcher.gem "a", 2
|
659
838
|
end
|
660
839
|
|
661
840
|
@cmd.options[:domain] = :remote
|
662
841
|
|
663
|
-
a1 = specs[
|
664
|
-
a2 = specs[
|
842
|
+
a1 = specs["a-1"]
|
843
|
+
a2 = specs["a-2"]
|
665
844
|
|
666
845
|
FileUtils.mv a2.cache_file, @tempdir
|
667
846
|
|
@@ -670,7 +849,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
670
849
|
|
671
850
|
@cmd.options[:args] = [a2.name]
|
672
851
|
|
673
|
-
gemdir = File.join @gemhome,
|
852
|
+
gemdir = File.join @gemhome, "specifications"
|
674
853
|
|
675
854
|
a2_gemspec = File.join(gemdir, "a-2.gemspec")
|
676
855
|
a1_gemspec = File.join(gemdir, "a-1.gemspec")
|
@@ -682,13 +861,13 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
682
861
|
|
683
862
|
use_ui @ui do
|
684
863
|
Dir.chdir @tempdir do
|
685
|
-
|
864
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
686
865
|
@cmd.execute
|
687
866
|
end
|
688
867
|
end
|
689
868
|
end
|
690
869
|
|
691
|
-
assert_equal %w[a-1], @cmd.installed_specs.map {
|
870
|
+
assert_equal %w[a-1], @cmd.installed_specs.map {|spec| spec.full_name }
|
692
871
|
|
693
872
|
assert_match "1 gem installed", @ui.output
|
694
873
|
|
@@ -699,12 +878,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
699
878
|
|
700
879
|
def test_execute_two
|
701
880
|
specs = spec_fetcher do |fetcher|
|
702
|
-
fetcher.gem
|
703
|
-
fetcher.gem
|
881
|
+
fetcher.gem "a", 2
|
882
|
+
fetcher.gem "b", 2
|
704
883
|
end
|
705
884
|
|
706
|
-
FileUtils.mv specs[
|
707
|
-
FileUtils.mv specs[
|
885
|
+
FileUtils.mv specs["a-2"].cache_file, @tempdir
|
886
|
+
FileUtils.mv specs["b-2"].cache_file, @tempdir
|
708
887
|
|
709
888
|
@cmd.options[:domain] = :local
|
710
889
|
|
@@ -714,7 +893,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
714
893
|
orig_dir = Dir.pwd
|
715
894
|
begin
|
716
895
|
Dir.chdir @tempdir
|
717
|
-
|
896
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
718
897
|
@cmd.execute
|
719
898
|
end
|
720
899
|
ensure
|
@@ -722,7 +901,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
722
901
|
end
|
723
902
|
end
|
724
903
|
|
725
|
-
assert_equal %w[a-2 b-2], @cmd.installed_specs.map {
|
904
|
+
assert_equal %w[a-2 b-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
726
905
|
|
727
906
|
assert_match "2 gems installed", @ui.output
|
728
907
|
end
|
@@ -732,7 +911,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
732
911
|
@cmd.options[:version] = Gem::Requirement.new("> 1")
|
733
912
|
|
734
913
|
use_ui @ui do
|
735
|
-
e =
|
914
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
736
915
|
@cmd.execute
|
737
916
|
end
|
738
917
|
|
@@ -750,28 +929,28 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
750
929
|
|
751
930
|
def test_execute_two_version_specified_by_colon
|
752
931
|
spec_fetcher do |fetcher|
|
753
|
-
fetcher.gem
|
754
|
-
fetcher.gem
|
755
|
-
fetcher.gem
|
756
|
-
fetcher.gem
|
932
|
+
fetcher.gem "a", 1
|
933
|
+
fetcher.gem "a", 2
|
934
|
+
fetcher.gem "b", 1
|
935
|
+
fetcher.gem "b", 2
|
757
936
|
end
|
758
937
|
|
759
938
|
@cmd.options[:args] = %w[a:1 b:1]
|
760
939
|
|
761
940
|
use_ui @ui do
|
762
|
-
|
941
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
763
942
|
@cmd.execute
|
764
943
|
end
|
765
944
|
end
|
766
945
|
|
767
|
-
assert_equal %w[a-1 b-1], @cmd.installed_specs.map {
|
946
|
+
assert_equal %w[a-1 b-1], @cmd.installed_specs.map {|spec| spec.full_name }
|
768
947
|
end
|
769
948
|
|
770
949
|
def test_execute_conservative
|
771
950
|
spec_fetcher do |fetcher|
|
772
|
-
fetcher.download
|
951
|
+
fetcher.download "b", 2
|
773
952
|
|
774
|
-
fetcher.gem
|
953
|
+
fetcher.gem "a", 2
|
775
954
|
end
|
776
955
|
|
777
956
|
@cmd.options[:conservative] = true
|
@@ -782,7 +961,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
782
961
|
orig_dir = Dir.pwd
|
783
962
|
begin
|
784
963
|
Dir.chdir @tempdir
|
785
|
-
|
964
|
+
assert_raise Gem::MockGemUi::SystemExitException do
|
786
965
|
@cmd.execute
|
787
966
|
end
|
788
967
|
ensure
|
@@ -790,7 +969,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
790
969
|
end
|
791
970
|
end
|
792
971
|
|
793
|
-
assert_equal %w[b-2], @cmd.installed_specs.map {
|
972
|
+
assert_equal %w[b-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
794
973
|
|
795
974
|
assert_equal "", @ui.error
|
796
975
|
assert_match "1 gem installed", @ui.output
|
@@ -802,7 +981,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
802
981
|
done_installing = true
|
803
982
|
end
|
804
983
|
|
805
|
-
spec = util_spec
|
984
|
+
spec = util_spec "a", 2
|
806
985
|
|
807
986
|
util_build_gem spec
|
808
987
|
|
@@ -810,44 +989,44 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
810
989
|
|
811
990
|
@cmd.options[:ignore_dependencies] = true
|
812
991
|
|
813
|
-
@cmd.install_gem
|
992
|
+
@cmd.install_gem "a", ">= 0"
|
814
993
|
|
815
|
-
assert_equal %w[a-2], @cmd.installed_specs.map {
|
994
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|s| s.full_name }
|
816
995
|
|
817
|
-
assert done_installing,
|
996
|
+
assert done_installing, "documentation was not generated"
|
818
997
|
end
|
819
998
|
|
820
999
|
def test_install_gem_ignore_dependencies_remote
|
821
1000
|
spec_fetcher do |fetcher|
|
822
|
-
fetcher.gem
|
1001
|
+
fetcher.gem "a", 2
|
823
1002
|
end
|
824
1003
|
|
825
1004
|
@cmd.options[:ignore_dependencies] = true
|
826
1005
|
|
827
|
-
@cmd.install_gem
|
1006
|
+
@cmd.install_gem "a", ">= 0"
|
828
1007
|
|
829
|
-
assert_equal %w[a-2], @cmd.installed_specs.map {
|
1008
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
830
1009
|
end
|
831
1010
|
|
832
1011
|
def test_install_gem_ignore_dependencies_remote_platform_local
|
833
1012
|
local = Gem::Platform.local
|
834
1013
|
spec_fetcher do |fetcher|
|
835
|
-
fetcher.gem
|
1014
|
+
fetcher.gem "a", 3
|
836
1015
|
|
837
|
-
fetcher.gem
|
1016
|
+
fetcher.gem "a", 3 do |s|
|
838
1017
|
s.platform = local
|
839
1018
|
end
|
840
1019
|
end
|
841
1020
|
|
842
1021
|
@cmd.options[:ignore_dependencies] = true
|
843
1022
|
|
844
|
-
@cmd.install_gem
|
1023
|
+
@cmd.install_gem "a", ">= 0"
|
845
1024
|
|
846
|
-
assert_equal %W[a-3-#{local}], @cmd.installed_specs.map {
|
1025
|
+
assert_equal %W[a-3-#{local}], @cmd.installed_specs.map {|spec| spec.full_name }
|
847
1026
|
end
|
848
1027
|
|
849
1028
|
def test_install_gem_ignore_dependencies_specific_file
|
850
|
-
spec = util_spec
|
1029
|
+
spec = util_spec "a", 2
|
851
1030
|
|
852
1031
|
util_build_gem spec
|
853
1032
|
|
@@ -857,13 +1036,13 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
857
1036
|
|
858
1037
|
@cmd.install_gem File.join(@tempdir, spec.file_name), nil
|
859
1038
|
|
860
|
-
assert_equal %w[a-2], @cmd.installed_specs.map {
|
1039
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|s| s.full_name }
|
861
1040
|
end
|
862
1041
|
|
863
1042
|
def test_parses_requirement_from_gemname
|
864
1043
|
spec_fetcher do |fetcher|
|
865
|
-
fetcher.gem
|
866
|
-
fetcher.gem
|
1044
|
+
fetcher.gem "a", 2
|
1045
|
+
fetcher.gem "b", 2
|
867
1046
|
end
|
868
1047
|
|
869
1048
|
@cmd.options[:domain] = :local
|
@@ -877,7 +1056,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
877
1056
|
orig_dir = Dir.pwd
|
878
1057
|
begin
|
879
1058
|
Dir.chdir @tempdir
|
880
|
-
e =
|
1059
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
881
1060
|
@cmd.execute
|
882
1061
|
end
|
883
1062
|
ensure
|
@@ -886,7 +1065,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
886
1065
|
end
|
887
1066
|
|
888
1067
|
assert_equal 2, e.exit_code
|
889
|
-
assert_match %r
|
1068
|
+
assert_match %r{Could not find a valid gem 'a' \(= 10.0\)}, @ui.error
|
890
1069
|
end
|
891
1070
|
|
892
1071
|
def test_show_errors_on_failure
|
@@ -899,7 +1078,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
899
1078
|
orig_dir = Dir.pwd
|
900
1079
|
begin
|
901
1080
|
Dir.chdir @tempdir
|
902
|
-
e =
|
1081
|
+
e = assert_raise Gem::MockGemUi::TermError do
|
903
1082
|
@cmd.execute
|
904
1083
|
end
|
905
1084
|
ensure
|
@@ -909,12 +1088,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
909
1088
|
|
910
1089
|
assert_equal 2, e.exit_code
|
911
1090
|
|
912
|
-
assert_match
|
1091
|
+
assert_match "Unable to download data", @ui.error
|
913
1092
|
end
|
914
1093
|
|
915
1094
|
def test_show_source_problems_even_on_success
|
916
1095
|
spec_fetcher do |fetcher|
|
917
|
-
fetcher.download
|
1096
|
+
fetcher.download "a", 2
|
918
1097
|
end
|
919
1098
|
|
920
1099
|
Gem.sources << "http://nonexistent.example"
|
@@ -922,12 +1101,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
922
1101
|
@cmd.options[:args] = %w[a]
|
923
1102
|
|
924
1103
|
use_ui @ui do
|
925
|
-
|
1104
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
926
1105
|
@cmd.execute
|
927
1106
|
end
|
928
1107
|
end
|
929
1108
|
|
930
|
-
assert_equal %w[a-2], @cmd.installed_specs.map {
|
1109
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
931
1110
|
|
932
1111
|
assert_match "1 gem installed", @ui.output
|
933
1112
|
|
@@ -937,9 +1116,34 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
937
1116
|
assert_equal x, e
|
938
1117
|
end
|
939
1118
|
|
1119
|
+
def test_redact_credentials_from_uri_on_warning
|
1120
|
+
spec_fetcher do |fetcher|
|
1121
|
+
fetcher.download "a", 2
|
1122
|
+
end
|
1123
|
+
|
1124
|
+
Gem.sources << "http://username:SECURE_TOKEN@nonexistent.example"
|
1125
|
+
|
1126
|
+
@cmd.options[:args] = %w[a]
|
1127
|
+
|
1128
|
+
use_ui @ui do
|
1129
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1130
|
+
@cmd.execute
|
1131
|
+
end
|
1132
|
+
end
|
1133
|
+
|
1134
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
1135
|
+
|
1136
|
+
assert_match "1 gem installed", @ui.output
|
1137
|
+
|
1138
|
+
e = @ui.error
|
1139
|
+
|
1140
|
+
x = "WARNING: Unable to pull data from 'http://username:REDACTED@nonexistent.example': no data for http://username:REDACTED@nonexistent.example/specs.4.8.gz (http://username:REDACTED@nonexistent.example/specs.4.8.gz)\n"
|
1141
|
+
assert_equal x, e
|
1142
|
+
end
|
1143
|
+
|
940
1144
|
def test_execute_uses_from_a_gemdeps
|
941
1145
|
spec_fetcher do |fetcher|
|
942
|
-
fetcher.gem
|
1146
|
+
fetcher.gem "a", 2
|
943
1147
|
end
|
944
1148
|
|
945
1149
|
File.open @gemdeps, "w" do |f|
|
@@ -949,12 +1153,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
949
1153
|
@cmd.options[:gemdeps] = @gemdeps
|
950
1154
|
|
951
1155
|
use_ui @ui do
|
952
|
-
|
1156
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
953
1157
|
@cmd.execute
|
954
1158
|
end
|
955
1159
|
end
|
956
1160
|
|
957
|
-
assert_equal %w[], @cmd.installed_specs.map {
|
1161
|
+
assert_equal %w[], @cmd.installed_specs.map {|spec| spec.full_name }
|
958
1162
|
|
959
1163
|
assert_match "Using a (2)", @ui.output
|
960
1164
|
assert File.exist?("#{@gemdeps}.lock")
|
@@ -962,7 +1166,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
962
1166
|
|
963
1167
|
def test_execute_uses_from_a_gemdeps_with_no_lock
|
964
1168
|
spec_fetcher do |fetcher|
|
965
|
-
fetcher.gem
|
1169
|
+
fetcher.gem "a", 2
|
966
1170
|
end
|
967
1171
|
|
968
1172
|
File.open @gemdeps, "w" do |f|
|
@@ -973,12 +1177,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
973
1177
|
@cmd.options[:gemdeps] = @gemdeps
|
974
1178
|
|
975
1179
|
use_ui @ui do
|
976
|
-
|
1180
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
977
1181
|
@cmd.execute
|
978
1182
|
end
|
979
1183
|
end
|
980
1184
|
|
981
|
-
assert_equal %w[], @cmd.installed_specs.map {
|
1185
|
+
assert_equal %w[], @cmd.installed_specs.map {|spec| spec.full_name }
|
982
1186
|
|
983
1187
|
assert_match "Using a (2)", @ui.output
|
984
1188
|
assert !File.exist?("#{@gemdeps}.lock")
|
@@ -986,8 +1190,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
986
1190
|
|
987
1191
|
def test_execute_installs_from_a_gemdeps_with_conservative
|
988
1192
|
spec_fetcher do |fetcher|
|
989
|
-
fetcher.download
|
990
|
-
fetcher.gem
|
1193
|
+
fetcher.download "a", 2
|
1194
|
+
fetcher.gem "a", 1
|
991
1195
|
end
|
992
1196
|
|
993
1197
|
File.open @gemdeps, "w" do |f|
|
@@ -998,19 +1202,19 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
998
1202
|
@cmd.options[:gemdeps] = @gemdeps
|
999
1203
|
|
1000
1204
|
use_ui @ui do
|
1001
|
-
|
1205
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1002
1206
|
@cmd.execute
|
1003
1207
|
end
|
1004
1208
|
end
|
1005
1209
|
|
1006
|
-
assert_equal %w[], @cmd.installed_specs.map {
|
1210
|
+
assert_equal %w[], @cmd.installed_specs.map {|spec| spec.full_name }
|
1007
1211
|
|
1008
1212
|
assert_match "Using a (1)", @ui.output
|
1009
1213
|
end
|
1010
1214
|
|
1011
1215
|
def test_execute_installs_from_a_gemdeps
|
1012
1216
|
spec_fetcher do |fetcher|
|
1013
|
-
fetcher.download
|
1217
|
+
fetcher.download "a", 2
|
1014
1218
|
end
|
1015
1219
|
|
1016
1220
|
File.open @gemdeps, "w" do |f|
|
@@ -1020,20 +1224,20 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1020
1224
|
@cmd.options[:gemdeps] = @gemdeps
|
1021
1225
|
|
1022
1226
|
use_ui @ui do
|
1023
|
-
|
1227
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1024
1228
|
@cmd.execute
|
1025
1229
|
end
|
1026
1230
|
end
|
1027
1231
|
|
1028
|
-
assert_equal %w[a-2], @cmd.installed_specs.map {
|
1232
|
+
assert_equal %w[a-2], @cmd.installed_specs.map {|spec| spec.full_name }
|
1029
1233
|
|
1030
1234
|
assert_match "Installing a (2)", @ui.output
|
1031
1235
|
end
|
1032
1236
|
|
1033
1237
|
def test_execute_installs_deps_a_gemdeps
|
1034
1238
|
spec_fetcher do |fetcher|
|
1035
|
-
fetcher.download
|
1036
|
-
fetcher.download
|
1239
|
+
fetcher.download "q", "1.0"
|
1240
|
+
fetcher.download "r", "2.0", "q" => nil
|
1037
1241
|
end
|
1038
1242
|
|
1039
1243
|
File.open @gemdeps, "w" do |f|
|
@@ -1043,12 +1247,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1043
1247
|
@cmd.options[:gemdeps] = @gemdeps
|
1044
1248
|
|
1045
1249
|
use_ui @ui do
|
1046
|
-
|
1250
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1047
1251
|
@cmd.execute
|
1048
1252
|
end
|
1049
1253
|
end
|
1050
1254
|
|
1051
|
-
names = @cmd.installed_specs.map {
|
1255
|
+
names = @cmd.installed_specs.map {|spec| spec.full_name }
|
1052
1256
|
|
1053
1257
|
assert_equal %w[q-1.0 r-2.0], names
|
1054
1258
|
|
@@ -1058,9 +1262,9 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1058
1262
|
|
1059
1263
|
def test_execute_uses_deps_a_gemdeps
|
1060
1264
|
spec_fetcher do |fetcher|
|
1061
|
-
fetcher.download
|
1265
|
+
fetcher.download "r", "2.0", "q" => nil
|
1062
1266
|
|
1063
|
-
fetcher.spec
|
1267
|
+
fetcher.spec "q", "1.0"
|
1064
1268
|
end
|
1065
1269
|
|
1066
1270
|
File.open @gemdeps, "w" do |f|
|
@@ -1070,12 +1274,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1070
1274
|
@cmd.options[:gemdeps] = @gemdeps
|
1071
1275
|
|
1072
1276
|
use_ui @ui do
|
1073
|
-
|
1277
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1074
1278
|
@cmd.execute
|
1075
1279
|
end
|
1076
1280
|
end
|
1077
1281
|
|
1078
|
-
names = @cmd.installed_specs.map {
|
1282
|
+
names = @cmd.installed_specs.map {|spec| spec.full_name }
|
1079
1283
|
|
1080
1284
|
assert_equal %w[r-2.0], names
|
1081
1285
|
|
@@ -1085,8 +1289,8 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1085
1289
|
|
1086
1290
|
def test_execute_installs_deps_a_gemdeps_into_a_path
|
1087
1291
|
spec_fetcher do |fetcher|
|
1088
|
-
fetcher.download
|
1089
|
-
fetcher.download
|
1292
|
+
fetcher.download "q", "1.0"
|
1293
|
+
fetcher.download "r", "2.0", "q" => nil
|
1090
1294
|
end
|
1091
1295
|
|
1092
1296
|
File.open @gemdeps, "w" do |f|
|
@@ -1097,12 +1301,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1097
1301
|
@cmd.options[:gemdeps] = @gemdeps
|
1098
1302
|
|
1099
1303
|
use_ui @ui do
|
1100
|
-
|
1304
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1101
1305
|
@cmd.execute
|
1102
1306
|
end
|
1103
1307
|
end
|
1104
1308
|
|
1105
|
-
names = @cmd.installed_specs.map {
|
1309
|
+
names = @cmd.installed_specs.map {|spec| spec.full_name }
|
1106
1310
|
|
1107
1311
|
assert_equal %w[q-1.0 r-2.0], names
|
1108
1312
|
|
@@ -1115,11 +1319,11 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1115
1319
|
|
1116
1320
|
def test_execute_with_gemdeps_path_ignores_system
|
1117
1321
|
specs = spec_fetcher do |fetcher|
|
1118
|
-
fetcher.download
|
1119
|
-
fetcher.download
|
1322
|
+
fetcher.download "q", "1.0"
|
1323
|
+
fetcher.download "r", "2.0", "q" => nil
|
1120
1324
|
end
|
1121
1325
|
|
1122
|
-
install_specs specs[
|
1326
|
+
install_specs specs["q-1.0"]
|
1123
1327
|
|
1124
1328
|
File.open @gemdeps, "w" do |f|
|
1125
1329
|
f << "gem 'r'"
|
@@ -1129,12 +1333,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1129
1333
|
@cmd.options[:gemdeps] = @gemdeps
|
1130
1334
|
|
1131
1335
|
use_ui @ui do
|
1132
|
-
|
1336
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1133
1337
|
@cmd.execute
|
1134
1338
|
end
|
1135
1339
|
end
|
1136
1340
|
|
1137
|
-
names = @cmd.installed_specs.map {
|
1341
|
+
names = @cmd.installed_specs.map {|spec| spec.full_name }
|
1138
1342
|
|
1139
1343
|
assert_equal %w[q-1.0 r-2.0], names
|
1140
1344
|
|
@@ -1147,11 +1351,11 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1147
1351
|
|
1148
1352
|
def test_execute_uses_deps_a_gemdeps_with_a_path
|
1149
1353
|
specs = spec_fetcher do |fetcher|
|
1150
|
-
fetcher.gem
|
1151
|
-
fetcher.gem
|
1354
|
+
fetcher.gem "q", "1.0"
|
1355
|
+
fetcher.gem "r", "2.0", "q" => nil
|
1152
1356
|
end
|
1153
1357
|
|
1154
|
-
i = Gem::Installer.at specs[
|
1358
|
+
i = Gem::Installer.at specs["q-1.0"].cache_file, :install_dir => "gf-path"
|
1155
1359
|
i.install
|
1156
1360
|
|
1157
1361
|
assert File.file?("gf-path/specifications/q-1.0.gemspec"), "not installed"
|
@@ -1164,12 +1368,12 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1164
1368
|
@cmd.options[:gemdeps] = @gemdeps
|
1165
1369
|
|
1166
1370
|
use_ui @ui do
|
1167
|
-
|
1371
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1168
1372
|
@cmd.execute
|
1169
1373
|
end
|
1170
1374
|
end
|
1171
1375
|
|
1172
|
-
names = @cmd.installed_specs.map {
|
1376
|
+
names = @cmd.installed_specs.map {|spec| spec.full_name }
|
1173
1377
|
|
1174
1378
|
assert_equal %w[r-2.0], names
|
1175
1379
|
|
@@ -1178,39 +1382,39 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1178
1382
|
end
|
1179
1383
|
|
1180
1384
|
def test_handle_options_file
|
1181
|
-
FileUtils.touch
|
1385
|
+
FileUtils.touch "Gemfile"
|
1182
1386
|
|
1183
1387
|
@cmd.handle_options %w[-g Gemfile]
|
1184
1388
|
|
1185
|
-
assert_equal
|
1389
|
+
assert_equal "Gemfile", @cmd.options[:gemdeps]
|
1186
1390
|
|
1187
|
-
FileUtils.rm
|
1391
|
+
FileUtils.rm "Gemfile"
|
1188
1392
|
|
1189
|
-
FileUtils.touch
|
1393
|
+
FileUtils.touch "gem.deps.rb"
|
1190
1394
|
|
1191
1395
|
@cmd.handle_options %w[--file gem.deps.rb]
|
1192
1396
|
|
1193
|
-
assert_equal
|
1397
|
+
assert_equal "gem.deps.rb", @cmd.options[:gemdeps]
|
1194
1398
|
|
1195
|
-
FileUtils.rm
|
1399
|
+
FileUtils.rm "gem.deps.rb"
|
1196
1400
|
|
1197
|
-
FileUtils.touch
|
1401
|
+
FileUtils.touch "Isolate"
|
1198
1402
|
|
1199
1403
|
@cmd.handle_options %w[-g]
|
1200
1404
|
|
1201
|
-
assert_equal
|
1405
|
+
assert_equal "Isolate", @cmd.options[:gemdeps]
|
1202
1406
|
|
1203
|
-
FileUtils.touch
|
1407
|
+
FileUtils.touch "Gemfile"
|
1204
1408
|
|
1205
1409
|
@cmd.handle_options %w[-g]
|
1206
1410
|
|
1207
|
-
assert_equal
|
1411
|
+
assert_equal "Gemfile", @cmd.options[:gemdeps]
|
1208
1412
|
|
1209
|
-
FileUtils.touch
|
1413
|
+
FileUtils.touch "gem.deps.rb"
|
1210
1414
|
|
1211
1415
|
@cmd.handle_options %w[-g]
|
1212
1416
|
|
1213
|
-
assert_equal
|
1417
|
+
assert_equal "gem.deps.rb", @cmd.options[:gemdeps]
|
1214
1418
|
end
|
1215
1419
|
|
1216
1420
|
def test_handle_options_suggest
|
@@ -1238,9 +1442,9 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1238
1442
|
def test_explain_platform_local
|
1239
1443
|
local = Gem::Platform.local
|
1240
1444
|
spec_fetcher do |fetcher|
|
1241
|
-
fetcher.spec
|
1445
|
+
fetcher.spec "a", 2
|
1242
1446
|
|
1243
|
-
fetcher.spec
|
1447
|
+
fetcher.spec "a", 2 do |s|
|
1244
1448
|
s.platform = local
|
1245
1449
|
end
|
1246
1450
|
end
|
@@ -1249,7 +1453,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1249
1453
|
@cmd.options[:args] = %w[a]
|
1250
1454
|
|
1251
1455
|
use_ui @ui do
|
1252
|
-
|
1456
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1253
1457
|
@cmd.execute
|
1254
1458
|
end
|
1255
1459
|
end
|
@@ -1264,9 +1468,9 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1264
1468
|
def test_explain_platform_local_ignore_dependencies
|
1265
1469
|
local = Gem::Platform.local
|
1266
1470
|
spec_fetcher do |fetcher|
|
1267
|
-
fetcher.spec
|
1471
|
+
fetcher.spec "a", 3
|
1268
1472
|
|
1269
|
-
fetcher.spec
|
1473
|
+
fetcher.spec "a", 3 do |s|
|
1270
1474
|
s.platform = local
|
1271
1475
|
end
|
1272
1476
|
end
|
@@ -1276,7 +1480,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1276
1480
|
@cmd.options[:args] = %w[a]
|
1277
1481
|
|
1278
1482
|
use_ui @ui do
|
1279
|
-
|
1483
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1280
1484
|
@cmd.execute
|
1281
1485
|
end
|
1282
1486
|
end
|
@@ -1291,9 +1495,9 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1291
1495
|
def test_explain_platform_ruby
|
1292
1496
|
local = Gem::Platform.local
|
1293
1497
|
spec_fetcher do |fetcher|
|
1294
|
-
fetcher.spec
|
1498
|
+
fetcher.spec "a", 2
|
1295
1499
|
|
1296
|
-
fetcher.spec
|
1500
|
+
fetcher.spec "a", 2 do |s|
|
1297
1501
|
s.platform = local
|
1298
1502
|
end
|
1299
1503
|
end
|
@@ -1305,7 +1509,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1305
1509
|
@cmd.options[:args] = %w[a]
|
1306
1510
|
|
1307
1511
|
use_ui @ui do
|
1308
|
-
|
1512
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1309
1513
|
@cmd.execute
|
1310
1514
|
end
|
1311
1515
|
end
|
@@ -1320,9 +1524,9 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1320
1524
|
def test_explain_platform_ruby_ignore_dependencies
|
1321
1525
|
local = Gem::Platform.local
|
1322
1526
|
spec_fetcher do |fetcher|
|
1323
|
-
fetcher.spec
|
1527
|
+
fetcher.spec "a", 3
|
1324
1528
|
|
1325
|
-
fetcher.spec
|
1529
|
+
fetcher.spec "a", 3 do |s|
|
1326
1530
|
s.platform = local
|
1327
1531
|
end
|
1328
1532
|
end
|
@@ -1335,7 +1539,7 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1335
1539
|
@cmd.options[:args] = %w[a]
|
1336
1540
|
|
1337
1541
|
use_ui @ui do
|
1338
|
-
|
1542
|
+
assert_raise Gem::MockGemUi::SystemExitException, @ui.error do
|
1339
1543
|
@cmd.execute
|
1340
1544
|
end
|
1341
1545
|
end
|
@@ -1346,5 +1550,4 @@ ERROR: Possible alternatives: non_existent_with_hint
|
|
1346
1550
|
assert_equal " a-3", out.shift
|
1347
1551
|
assert_empty out
|
1348
1552
|
end
|
1349
|
-
|
1350
1553
|
end
|