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
@@ -4,7 +4,6 @@
|
|
4
4
|
# used by both Specification and StubSpecification.
|
5
5
|
|
6
6
|
class Gem::BasicSpecification
|
7
|
-
|
8
7
|
##
|
9
8
|
# Allows installation of extensions for git: gems.
|
10
9
|
|
@@ -39,10 +38,8 @@ class Gem::BasicSpecification
|
|
39
38
|
end
|
40
39
|
|
41
40
|
class << self
|
42
|
-
|
43
41
|
extend Gem::Deprecate
|
44
|
-
|
45
|
-
|
42
|
+
rubygems_deprecate :default_specifications_dir, "Gem.default_specifications_dir"
|
46
43
|
end
|
47
44
|
|
48
45
|
##
|
@@ -50,7 +47,7 @@ class Gem::BasicSpecification
|
|
50
47
|
# directory.
|
51
48
|
|
52
49
|
def gem_build_complete_path # :nodoc:
|
53
|
-
File.join extension_dir,
|
50
|
+
File.join extension_dir, "gem.build_complete"
|
54
51
|
end
|
55
52
|
|
56
53
|
##
|
@@ -80,7 +77,7 @@ class Gem::BasicSpecification
|
|
80
77
|
|
81
78
|
if Gem::Platform::RUBY == platform || Gem::Platform.local === platform
|
82
79
|
warn "Ignoring #{full_name} because its extensions are not built. " +
|
83
|
-
|
80
|
+
"Try: gem pristine #{name} --version #{version}"
|
84
81
|
end
|
85
82
|
|
86
83
|
return false
|
@@ -106,7 +103,7 @@ class Gem::BasicSpecification
|
|
106
103
|
|
107
104
|
def extensions_dir
|
108
105
|
Gem.default_ext_dir_for(base_dir) ||
|
109
|
-
File.join(base_dir,
|
106
|
+
File.join(base_dir, "extensions", Gem::Platform.local.to_s,
|
110
107
|
Gem.extension_api_version)
|
111
108
|
end
|
112
109
|
|
@@ -134,7 +131,7 @@ class Gem::BasicSpecification
|
|
134
131
|
# default Ruby platform.
|
135
132
|
|
136
133
|
def full_name
|
137
|
-
if platform == Gem::Platform::RUBY
|
134
|
+
if platform == Gem::Platform::RUBY || platform.nil?
|
138
135
|
"#{name}-#{version}".dup.tap(&Gem::UNTAINT)
|
139
136
|
else
|
140
137
|
"#{name}-#{version}-#{platform}".dup.tap(&Gem::UNTAINT)
|
@@ -274,10 +271,16 @@ class Gem::BasicSpecification
|
|
274
271
|
# Return all files in this gem that match for +glob+.
|
275
272
|
|
276
273
|
def matches_for_glob(glob) # TODO: rename?
|
277
|
-
# TODO: do we need these?? Kill it
|
278
274
|
glob = File.join(self.lib_dirs_glob, glob)
|
279
275
|
|
280
|
-
Dir[glob].map {
|
276
|
+
Dir[glob].map {|f| f.tap(&Gem::UNTAINT) } # FIX our tests are broken, run w/ SAFE=1
|
277
|
+
end
|
278
|
+
|
279
|
+
##
|
280
|
+
# Returns the list of plugins in this spec.
|
281
|
+
|
282
|
+
def plugins
|
283
|
+
matches_for_glob("rubygems#{Gem.plugin_suffix_pattern}")
|
281
284
|
end
|
282
285
|
|
283
286
|
##
|
@@ -286,14 +289,14 @@ class Gem::BasicSpecification
|
|
286
289
|
|
287
290
|
def lib_dirs_glob
|
288
291
|
dirs = if self.raw_require_paths
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
292
|
+
if self.raw_require_paths.size > 1
|
293
|
+
"{#{self.raw_require_paths.join(',')}}"
|
294
|
+
else
|
295
|
+
self.raw_require_paths.first
|
296
|
+
end
|
297
|
+
else
|
298
|
+
"lib" # default value for require_paths for bundler/inline
|
299
|
+
end
|
297
300
|
|
298
301
|
"#{self.full_gem_path}/#{dirs}".dup.tap(&Gem::UNTAINT)
|
299
302
|
end
|
@@ -329,15 +332,14 @@ class Gem::BasicSpecification
|
|
329
332
|
def have_file?(file, suffixes)
|
330
333
|
return true if raw_require_paths.any? do |path|
|
331
334
|
base = File.join(gems_dir, full_name, path.tap(&Gem::UNTAINT), file).tap(&Gem::UNTAINT)
|
332
|
-
suffixes.any? {
|
335
|
+
suffixes.any? {|suf| File.file? base + suf }
|
333
336
|
end
|
334
337
|
|
335
338
|
if have_extensions?
|
336
339
|
base = File.join extension_dir, file
|
337
|
-
suffixes.any? {
|
340
|
+
suffixes.any? {|suf| File.file? base + suf }
|
338
341
|
else
|
339
342
|
false
|
340
343
|
end
|
341
344
|
end
|
342
|
-
|
343
345
|
end
|
@@ -1,52 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "rubygems/util"
|
4
|
-
|
5
3
|
module Gem::BundlerVersionFinder
|
6
4
|
def self.bundler_version
|
7
|
-
|
8
|
-
|
9
|
-
return unless version
|
5
|
+
v = ENV["BUNDLER_VERSION"]
|
10
6
|
|
11
|
-
|
12
|
-
|
7
|
+
v ||= bundle_update_bundler_version
|
8
|
+
return if v == true
|
13
9
|
|
14
|
-
|
15
|
-
|
16
|
-
return [v, "`$BUNDLER_VERSION`"]
|
17
|
-
end
|
18
|
-
if v = bundle_update_bundler_version
|
19
|
-
return if v == true
|
20
|
-
return [v, "`bundle update --bundler`"]
|
21
|
-
end
|
22
|
-
v, lockfile = lockfile_version
|
23
|
-
if v
|
24
|
-
return [v, "your #{lockfile}"]
|
25
|
-
end
|
26
|
-
end
|
10
|
+
v ||= lockfile_version
|
11
|
+
return unless v
|
27
12
|
|
28
|
-
|
29
|
-
return unless vr = bundler_version_with_reason
|
30
|
-
<<-EOS
|
31
|
-
Could not find 'bundler' (#{vr.first}) required by #{vr.last}.
|
32
|
-
To update to the latest version installed on your system, run `bundle update --bundler`.
|
33
|
-
To install the missing version, run `gem install bundler:#{vr.first}`
|
34
|
-
EOS
|
13
|
+
Gem::Version.new(v)
|
35
14
|
end
|
36
15
|
|
37
|
-
def self.
|
38
|
-
|
39
|
-
return true unless bundler_version = self.bundler_version
|
40
|
-
|
41
|
-
spec.version.segments.first == bundler_version.segments.first
|
42
|
-
end
|
43
|
-
|
44
|
-
def self.filter!(specs)
|
45
|
-
return unless bundler_version = self.bundler_version
|
46
|
-
|
47
|
-
specs.reject! { |spec| spec.version.segments.first != bundler_version.segments.first }
|
48
|
-
|
49
|
-
exact_match_index = specs.find_index { |spec| spec.version == bundler_version }
|
16
|
+
def self.prioritize!(specs)
|
17
|
+
exact_match_index = specs.find_index {|spec| spec.version == bundler_version }
|
50
18
|
return unless exact_match_index
|
51
19
|
|
52
20
|
specs.unshift(specs.delete_at(exact_match_index))
|
@@ -70,35 +38,40 @@ To install the missing version, run `gem install bundler:#{vr.first}`
|
|
70
38
|
private_class_method :bundle_update_bundler_version
|
71
39
|
|
72
40
|
def self.lockfile_version
|
73
|
-
return unless
|
74
|
-
lockfile, contents = lockfile
|
75
|
-
lockfile ||= "lockfile"
|
41
|
+
return unless contents = lockfile_contents
|
76
42
|
regexp = /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/
|
77
43
|
return unless contents =~ regexp
|
78
|
-
|
44
|
+
$1
|
79
45
|
end
|
80
46
|
private_class_method :lockfile_version
|
81
47
|
|
82
48
|
def self.lockfile_contents
|
83
49
|
gemfile = ENV["BUNDLE_GEMFILE"]
|
84
50
|
gemfile = nil if gemfile && gemfile.empty?
|
85
|
-
Gem::Util.traverse_parents Dir.pwd do |directory|
|
86
|
-
next unless gemfile = Gem::GEM_DEP_FILES.find { |f| File.file?(f.tap(&Gem::UNTAINT)) }
|
87
51
|
|
88
|
-
|
89
|
-
|
90
|
-
|
52
|
+
unless gemfile
|
53
|
+
begin
|
54
|
+
Gem::Util.traverse_parents(Dir.pwd) do |directory|
|
55
|
+
next unless gemfile = Gem::GEM_DEP_FILES.find {|f| File.file?(f.tap(&Gem::UNTAINT)) }
|
56
|
+
|
57
|
+
gemfile = File.join directory, gemfile
|
58
|
+
break
|
59
|
+
end
|
60
|
+
rescue Errno::ENOENT
|
61
|
+
return
|
62
|
+
end
|
63
|
+
end
|
91
64
|
|
92
65
|
return unless gemfile
|
93
66
|
|
94
67
|
lockfile = case gemfile
|
95
|
-
|
96
|
-
|
97
|
-
|
68
|
+
when "gems.rb" then "gems.locked"
|
69
|
+
else "#{gemfile}.lock"
|
70
|
+
end.dup.tap(&Gem::UNTAINT)
|
98
71
|
|
99
72
|
return unless File.file?(lockfile)
|
100
73
|
|
101
|
-
|
74
|
+
File.read(lockfile)
|
102
75
|
end
|
103
76
|
private_class_method :lockfile_contents
|
104
77
|
end
|
data/lib/rubygems/command.rb
CHANGED
@@ -5,9 +5,9 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
require_relative "optparse"
|
9
|
+
require_relative "requirement"
|
10
|
+
require_relative "user_interaction"
|
11
11
|
|
12
12
|
##
|
13
13
|
# Base class for all Gem commands. When creating a new gem command, define
|
@@ -17,10 +17,9 @@ require 'rubygems/user_interaction'
|
|
17
17
|
# A very good example to look at is Gem::Commands::ContentsCommand
|
18
18
|
|
19
19
|
class Gem::Command
|
20
|
-
|
21
20
|
include Gem::UserInteraction
|
22
21
|
|
23
|
-
OptionParser.accept Symbol do |value|
|
22
|
+
Gem::OptionParser.accept Symbol do |value|
|
24
23
|
value.to_sym
|
25
24
|
end
|
26
25
|
|
@@ -77,7 +76,7 @@ class Gem::Command
|
|
77
76
|
when Array
|
78
77
|
@extra_args = value
|
79
78
|
when String
|
80
|
-
@extra_args = value.split
|
79
|
+
@extra_args = value.split(" ")
|
81
80
|
end
|
82
81
|
end
|
83
82
|
|
@@ -125,7 +124,7 @@ class Gem::Command
|
|
125
124
|
@program_name = "gem #{command}"
|
126
125
|
@defaults = defaults
|
127
126
|
@options = defaults.dup
|
128
|
-
@option_groups = Hash.new {
|
127
|
+
@option_groups = Hash.new {|h,k| h[k] = [] }
|
129
128
|
@deprecated_options = { command => {} }
|
130
129
|
@parser = nil
|
131
130
|
@when_invoked = nil
|
@@ -160,11 +159,11 @@ class Gem::Command
|
|
160
159
|
gem = "'#{gem_name}' (#{version})"
|
161
160
|
msg = String.new "Could not find a valid gem #{gem}"
|
162
161
|
|
163
|
-
if errors
|
162
|
+
if errors && !errors.empty?
|
164
163
|
msg << ", here is why:\n"
|
165
|
-
errors.each {
|
164
|
+
errors.each {|x| msg << " #{x.wordy}\n" }
|
166
165
|
else
|
167
|
-
if required_by
|
166
|
+
if required_by && gem != required_by
|
168
167
|
msg << " (required by #{required_by}) in any repository"
|
169
168
|
else
|
170
169
|
msg << " in any repository"
|
@@ -174,8 +173,7 @@ class Gem::Command
|
|
174
173
|
alert_error msg
|
175
174
|
|
176
175
|
unless suppress_suggestions
|
177
|
-
suggestions = Gem::SpecFetcher.fetcher.suggest_gems_from_name
|
178
|
-
|
176
|
+
suggestions = Gem::SpecFetcher.fetcher.suggest_gems_from_name(gem_name, :latest, 10)
|
179
177
|
unless suggestions.empty?
|
180
178
|
alert_error "Possible alternatives: #{suggestions.join(", ")}"
|
181
179
|
end
|
@@ -188,12 +186,12 @@ class Gem::Command
|
|
188
186
|
def get_all_gem_names
|
189
187
|
args = options[:args]
|
190
188
|
|
191
|
-
if args.nil?
|
189
|
+
if args.nil? || args.empty?
|
192
190
|
raise Gem::CommandLineError,
|
193
191
|
"Please specify at least one gem name (e.g. gem build GEMNAME)"
|
194
192
|
end
|
195
193
|
|
196
|
-
args.select {
|
194
|
+
args.select {|arg| arg !~ /^-/ }
|
197
195
|
end
|
198
196
|
|
199
197
|
##
|
@@ -218,7 +216,7 @@ class Gem::Command
|
|
218
216
|
def get_one_gem_name
|
219
217
|
args = options[:args]
|
220
218
|
|
221
|
-
if args.nil?
|
219
|
+
if args.nil? || args.empty?
|
222
220
|
raise Gem::CommandLineError,
|
223
221
|
"Please specify a gem name on the command line (e.g. gem build GEMNAME)"
|
224
222
|
end
|
@@ -346,7 +344,7 @@ class Gem::Command
|
|
346
344
|
##
|
347
345
|
# Add a command-line option and handler to the command.
|
348
346
|
#
|
349
|
-
# See OptionParser#make_switch for an explanation of +opts+.
|
347
|
+
# See Gem::OptionParser#make_switch for an explanation of +opts+.
|
350
348
|
#
|
351
349
|
# +handler+ will be called with two values, the value of the argument and
|
352
350
|
# the options hash.
|
@@ -357,6 +355,8 @@ class Gem::Command
|
|
357
355
|
def add_option(*opts, &handler) # :yields: value, options
|
358
356
|
group_name = Symbol === opts.first ? opts.shift : :options
|
359
357
|
|
358
|
+
raise "Do not pass an empty string in opts" if opts.include?("")
|
359
|
+
|
360
360
|
@option_groups[group_name] << [opts, handler]
|
361
361
|
end
|
362
362
|
|
@@ -365,7 +365,7 @@ class Gem::Command
|
|
365
365
|
|
366
366
|
def remove_option(name)
|
367
367
|
@option_groups.each do |_, option_list|
|
368
|
-
option_list.reject! {
|
368
|
+
option_list.reject! {|args, _| args.any? {|x| x.is_a?(String) && x =~ /^#{name}/ } }
|
369
369
|
end
|
370
370
|
end
|
371
371
|
|
@@ -398,10 +398,10 @@ class Gem::Command
|
|
398
398
|
version_to_expire = deprecation["rg_version_to_expire"]
|
399
399
|
|
400
400
|
deprecate_option_msg = if version_to_expire
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
401
|
+
"The \"#{option}\" option has been deprecated and will be removed in Rubygems #{version_to_expire}."
|
402
|
+
else
|
403
|
+
"The \"#{option}\" option has been deprecated and will be removed in future versions of Rubygems."
|
404
|
+
end
|
405
405
|
|
406
406
|
extra_msg = deprecation["extra_msg"]
|
407
407
|
|
@@ -418,7 +418,7 @@ class Gem::Command
|
|
418
418
|
|
419
419
|
def merge_options(new_options)
|
420
420
|
@options = @defaults.clone
|
421
|
-
new_options.each {
|
421
|
+
new_options.each {|k,v| @options[k] = v }
|
422
422
|
end
|
423
423
|
|
424
424
|
##
|
@@ -457,7 +457,7 @@ class Gem::Command
|
|
457
457
|
until extra.empty? do
|
458
458
|
ex = []
|
459
459
|
ex << extra.shift
|
460
|
-
ex << extra.shift if extra.first.to_s =~ /^[^-]/
|
460
|
+
ex << extra.shift if extra.first.to_s =~ /^[^-]/ # rubocop:disable Performance/StartWith
|
461
461
|
result << ex if handles?(ex)
|
462
462
|
end
|
463
463
|
|
@@ -466,6 +466,10 @@ class Gem::Command
|
|
466
466
|
result
|
467
467
|
end
|
468
468
|
|
469
|
+
def deprecated?
|
470
|
+
false
|
471
|
+
end
|
472
|
+
|
469
473
|
private
|
470
474
|
|
471
475
|
def option_is_deprecated?(option)
|
@@ -493,7 +497,7 @@ class Gem::Command
|
|
493
497
|
|
494
498
|
configure_options "", regular_options
|
495
499
|
|
496
|
-
@option_groups.sort_by {
|
500
|
+
@option_groups.sort_by {|n,_| n.to_s }.each do |group_name, option_list|
|
497
501
|
@parser.separator nil
|
498
502
|
configure_options group_name, option_list
|
499
503
|
end
|
@@ -536,7 +540,7 @@ class Gem::Command
|
|
536
540
|
# command.
|
537
541
|
|
538
542
|
def create_option_parser
|
539
|
-
@parser = OptionParser.new
|
543
|
+
@parser = Gem::OptionParser.new
|
540
544
|
|
541
545
|
add_parser_options
|
542
546
|
|
@@ -550,9 +554,9 @@ class Gem::Command
|
|
550
554
|
end
|
551
555
|
|
552
556
|
def configure_options(header, option_list)
|
553
|
-
return if option_list.nil?
|
557
|
+
return if option_list.nil? || option_list.empty?
|
554
558
|
|
555
|
-
header = header.to_s.empty? ?
|
559
|
+
header = header.to_s.empty? ? "" : "#{header} "
|
556
560
|
@parser.separator " #{header}Options:"
|
557
561
|
|
558
562
|
option_list.each do |args, handler|
|
@@ -561,7 +565,7 @@ class Gem::Command
|
|
561
565
|
end
|
562
566
|
end
|
563
567
|
|
564
|
-
@parser.separator
|
568
|
+
@parser.separator ""
|
565
569
|
end
|
566
570
|
|
567
571
|
##
|
@@ -574,22 +578,22 @@ class Gem::Command
|
|
574
578
|
# ----------------------------------------------------------------
|
575
579
|
# Add the options common to all commands.
|
576
580
|
|
577
|
-
add_common_option(
|
578
|
-
|
581
|
+
add_common_option("-h", "--help",
|
582
|
+
"Get help on this command") do |value, options|
|
579
583
|
options[:help] = true
|
580
584
|
end
|
581
585
|
|
582
|
-
add_common_option(
|
583
|
-
|
586
|
+
add_common_option("-V", "--[no-]verbose",
|
587
|
+
"Set the verbose level of output") do |value, options|
|
584
588
|
# Set us to "really verbose" so the progress meter works
|
585
|
-
if Gem.configuration.verbose
|
589
|
+
if Gem.configuration.verbose && value
|
586
590
|
Gem.configuration.verbose = 1
|
587
591
|
else
|
588
592
|
Gem.configuration.verbose = value
|
589
593
|
end
|
590
594
|
end
|
591
595
|
|
592
|
-
add_common_option(
|
596
|
+
add_common_option("-q", "--quiet", "Silence command progress meter") do |value, options|
|
593
597
|
Gem.configuration.verbose = false
|
594
598
|
end
|
595
599
|
|
@@ -602,27 +606,26 @@ class Gem::Command
|
|
602
606
|
# commands. Both options are actually handled before the other
|
603
607
|
# options get parsed.
|
604
608
|
|
605
|
-
add_common_option(
|
606
|
-
|
609
|
+
add_common_option("--config-file FILE",
|
610
|
+
"Use this config file instead of default") do
|
607
611
|
end
|
608
612
|
|
609
|
-
add_common_option(
|
610
|
-
|
613
|
+
add_common_option("--backtrace",
|
614
|
+
"Show stack backtrace on errors") do
|
611
615
|
end
|
612
616
|
|
613
|
-
add_common_option(
|
614
|
-
|
617
|
+
add_common_option("--debug",
|
618
|
+
"Turn on Ruby debugging") do
|
615
619
|
end
|
616
620
|
|
617
|
-
add_common_option(
|
618
|
-
|
621
|
+
add_common_option("--norc",
|
622
|
+
"Avoid loading any .gemrc file") do
|
619
623
|
end
|
620
624
|
|
621
625
|
# :stopdoc:
|
622
626
|
|
623
627
|
HELP = <<-HELP.freeze
|
624
|
-
RubyGems is a
|
625
|
-
basic help message containing pointers to more information.
|
628
|
+
RubyGems is a package manager for Ruby.
|
626
629
|
|
627
630
|
Usage:
|
628
631
|
gem -h/--help
|
@@ -633,6 +636,7 @@ basic help message containing pointers to more information.
|
|
633
636
|
gem install rake
|
634
637
|
gem list --local
|
635
638
|
gem build package.gemspec
|
639
|
+
gem push package-0.0.1.gem
|
636
640
|
gem help install
|
637
641
|
|
638
642
|
Further help:
|
@@ -650,7 +654,6 @@ basic help message containing pointers to more information.
|
|
650
654
|
HELP
|
651
655
|
|
652
656
|
# :startdoc:
|
653
|
-
|
654
657
|
end
|
655
658
|
|
656
659
|
##
|
@@ -5,9 +5,9 @@
|
|
5
5
|
# See LICENSE.txt for permissions.
|
6
6
|
#++
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
require_relative "command"
|
9
|
+
require_relative "user_interaction"
|
10
|
+
require_relative "text"
|
11
11
|
|
12
12
|
##
|
13
13
|
# The command manager registers and installs all the individual sub-commands
|
@@ -32,7 +32,6 @@ require 'rubygems/text'
|
|
32
32
|
# See Gem::Command for instructions on writing gem commands.
|
33
33
|
|
34
34
|
class Gem::CommandManager
|
35
|
-
|
36
35
|
include Gem::Text
|
37
36
|
include Gem::UserInteraction
|
38
37
|
|
@@ -74,7 +73,9 @@ class Gem::CommandManager
|
|
74
73
|
].freeze
|
75
74
|
|
76
75
|
ALIAS_COMMANDS = {
|
77
|
-
|
76
|
+
"i" => "install",
|
77
|
+
"login" => "signin",
|
78
|
+
"logout" => "signout",
|
78
79
|
}.freeze
|
79
80
|
|
80
81
|
##
|
@@ -103,7 +104,7 @@ class Gem::CommandManager
|
|
103
104
|
# Register all the subcommands supported by the gem command.
|
104
105
|
|
105
106
|
def initialize
|
106
|
-
require
|
107
|
+
require "timeout"
|
107
108
|
@commands = {}
|
108
109
|
|
109
110
|
BUILTIN_COMMANDS.each do |name|
|
@@ -138,7 +139,7 @@ class Gem::CommandManager
|
|
138
139
|
# Return a sorted list of all command names as strings.
|
139
140
|
|
140
141
|
def command_names
|
141
|
-
@commands.keys.collect {|key| key.to_s}.sort
|
142
|
+
@commands.keys.collect {|key| key.to_s }.sort
|
142
143
|
end
|
143
144
|
|
144
145
|
##
|
@@ -147,7 +148,12 @@ class Gem::CommandManager
|
|
147
148
|
def run(args, build_args=nil)
|
148
149
|
process_args(args, build_args)
|
149
150
|
rescue StandardError, Timeout::Error => ex
|
150
|
-
|
151
|
+
if ex.respond_to?(:detailed_message)
|
152
|
+
msg = ex.detailed_message(highlight: false).sub(/\A(.*?)(?: \(.+?\))/) { $1 }
|
153
|
+
else
|
154
|
+
msg = ex.message
|
155
|
+
end
|
156
|
+
alert_error clean_text("While executing gem ... (#{ex.class})\n #{msg}")
|
151
157
|
ui.backtrace ex
|
152
158
|
|
153
159
|
terminate_interaction(1)
|
@@ -163,10 +169,10 @@ class Gem::CommandManager
|
|
163
169
|
end
|
164
170
|
|
165
171
|
case args.first
|
166
|
-
when
|
172
|
+
when "-h", "--help" then
|
167
173
|
say Gem::Command::HELP
|
168
174
|
terminate_interaction 0
|
169
|
-
when
|
175
|
+
when "-v", "--version" then
|
170
176
|
say Gem::VERSION
|
171
177
|
terminate_interaction 0
|
172
178
|
when /^-/ then
|
@@ -175,6 +181,7 @@ class Gem::CommandManager
|
|
175
181
|
else
|
176
182
|
cmd_name = args.shift.downcase
|
177
183
|
cmd = find_command cmd_name
|
184
|
+
cmd.deprecation_warning if cmd.deprecated?
|
178
185
|
cmd.invoke_with_build_args args, build_args
|
179
186
|
end
|
180
187
|
end
|
@@ -188,7 +195,7 @@ class Gem::CommandManager
|
|
188
195
|
raise Gem::CommandLineError,
|
189
196
|
"Ambiguous command #{cmd_name} matches [#{possibilities.join(', ')}]"
|
190
197
|
elsif possibilities.empty?
|
191
|
-
raise Gem::
|
198
|
+
raise Gem::UnknownCommandError.new(cmd_name)
|
192
199
|
end
|
193
200
|
|
194
201
|
self[possibilities.first]
|
@@ -202,9 +209,9 @@ class Gem::CommandManager
|
|
202
209
|
def find_command_possibilities(cmd_name)
|
203
210
|
len = cmd_name.length
|
204
211
|
|
205
|
-
found = command_names.select {
|
212
|
+
found = command_names.select {|name| cmd_name == name[0, len] }
|
206
213
|
|
207
|
-
exact = found.find {
|
214
|
+
exact = found.find {|name| name == cmd_name }
|
208
215
|
|
209
216
|
exact ? [exact] : found
|
210
217
|
end
|
@@ -230,5 +237,4 @@ class Gem::CommandManager
|
|
230
237
|
ui.backtrace e
|
231
238
|
end
|
232
239
|
end
|
233
|
-
|
234
240
|
end
|