rubygems-update 3.4.21 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +132 -2
- data/Manifest.txt +39 -221
- data/README.md +1 -3
- data/bundler/CHANGELOG.md +74 -0
- data/bundler/README.md +1 -2
- data/bundler/bundler.gemspec +4 -2
- data/bundler/exe/bundle +1 -10
- data/bundler/lib/bundler/build_metadata.rb +3 -3
- data/bundler/lib/bundler/capistrano.rb +1 -1
- data/bundler/lib/bundler/checksum.rb +245 -0
- data/bundler/lib/bundler/ci_detector.rb +75 -0
- data/bundler/lib/bundler/cli/add.rb +3 -3
- data/bundler/lib/bundler/cli/binstubs.rb +4 -4
- data/bundler/lib/bundler/cli/cache.rb +1 -1
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +9 -1
- data/bundler/lib/bundler/cli/config.rb +8 -7
- data/bundler/lib/bundler/cli/console.rb +3 -2
- data/bundler/lib/bundler/cli/doctor.rb +2 -2
- data/bundler/lib/bundler/cli/exec.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +31 -23
- data/bundler/lib/bundler/cli/info.rb +2 -13
- data/bundler/lib/bundler/cli/install.rb +5 -4
- data/bundler/lib/bundler/cli/issue.rb +1 -1
- data/bundler/lib/bundler/cli/lock.rb +4 -4
- data/bundler/lib/bundler/cli/open.rb +1 -1
- data/bundler/lib/bundler/cli/outdated.rb +6 -6
- data/bundler/lib/bundler/cli/plugin.rb +7 -14
- data/bundler/lib/bundler/cli/pristine.rb +38 -30
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +5 -5
- data/bundler/lib/bundler/cli.rb +215 -263
- data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
- data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
- data/bundler/lib/bundler/compact_index_client.rb +14 -7
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +5 -21
- data/bundler/lib/bundler/definition.rb +43 -16
- data/bundler/lib/bundler/dependency.rb +16 -12
- data/bundler/lib/bundler/digest.rb +2 -2
- data/bundler/lib/bundler/dsl.rb +43 -25
- data/bundler/lib/bundler/endpoint_specification.rb +6 -2
- data/bundler/lib/bundler/env.rb +1 -3
- data/bundler/lib/bundler/errors.rb +58 -0
- data/bundler/lib/bundler/fetcher/base.rb +3 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
- data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
- data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- data/bundler/lib/bundler/fetcher/index.rb +1 -1
- data/bundler/lib/bundler/fetcher.rb +28 -25
- data/bundler/lib/bundler/friendly_errors.rb +5 -5
- data/bundler/lib/bundler/gem_helper.rb +1 -1
- data/bundler/lib/bundler/gem_helpers.rb +12 -2
- data/bundler/lib/bundler/graph.rb +9 -9
- data/bundler/lib/bundler/index.rb +1 -2
- data/bundler/lib/bundler/injector.rb +1 -1
- data/bundler/lib/bundler/inline.rb +3 -3
- data/bundler/lib/bundler/installer/gem_installer.rb +10 -10
- data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
- data/bundler/lib/bundler/installer/standalone.rb +2 -3
- data/bundler/lib/bundler/installer.rb +9 -9
- data/bundler/lib/bundler/lazy_specification.rb +28 -17
- data/bundler/lib/bundler/lockfile_generator.rb +9 -0
- data/bundler/lib/bundler/lockfile_parser.rb +81 -10
- data/bundler/lib/bundler/man/bundle-add.1 +3 -26
- data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
- data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
- data/bundler/lib/bundler/man/bundle-check.1 +3 -12
- data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
- data/bundler/lib/bundler/man/bundle-config.1 +20 -211
- data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
- data/bundler/lib/bundler/man/bundle-console.1 +4 -22
- data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
- data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
- data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
- data/bundler/lib/bundler/man/bundle-help.1 +3 -7
- data/bundler/lib/bundler/man/bundle-info.1 +3 -9
- data/bundler/lib/bundler/man/bundle-init.1 +3 -12
- data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
- data/bundler/lib/bundler/man/bundle-install.1 +27 -125
- data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
- data/bundler/lib/bundler/man/bundle-list.1 +4 -19
- data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
- data/bundler/lib/bundler/man/bundle-open.1 +7 -27
- data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
- data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
- data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
- data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
- data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
- data/bundler/lib/bundler/man/bundle-show.1 +3 -10
- data/bundler/lib/bundler/man/bundle-update.1 +18 -137
- data/bundler/lib/bundler/man/bundle-version.1 +3 -16
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
- data/bundler/lib/bundler/man/bundle.1 +5 -44
- data/bundler/lib/bundler/man/gemfile.5 +24 -301
- data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
- data/bundler/lib/bundler/match_metadata.rb +4 -0
- data/bundler/lib/bundler/match_platform.rb +1 -1
- data/bundler/lib/bundler/plugin/api/source.rb +3 -2
- data/bundler/lib/bundler/plugin/index.rb +8 -0
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin.rb +12 -5
- data/bundler/lib/bundler/resolver/base.rb +1 -1
- data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
- data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
- data/bundler/lib/bundler/resolver.rb +16 -16
- data/bundler/lib/bundler/ruby_dsl.rb +20 -12
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +27 -54
- data/bundler/lib/bundler/rubygems_gem_installer.rb +23 -58
- data/bundler/lib/bundler/rubygems_integration.rb +25 -94
- data/bundler/lib/bundler/runtime.rb +2 -2
- data/bundler/lib/bundler/self_manager.rb +23 -7
- data/bundler/lib/bundler/settings.rb +27 -7
- data/bundler/lib/bundler/setup.rb +4 -1
- data/bundler/lib/bundler/shared_helpers.rb +35 -13
- data/bundler/lib/bundler/source/git/git_proxy.rb +22 -14
- data/bundler/lib/bundler/source/git.rb +4 -3
- data/bundler/lib/bundler/source/metadata.rb +16 -16
- data/bundler/lib/bundler/source/path.rb +7 -6
- data/bundler/lib/bundler/source/rubygems.rb +21 -14
- data/bundler/lib/bundler/source.rb +2 -0
- data/bundler/lib/bundler/spec_set.rb +43 -12
- data/bundler/lib/bundler/stub_specification.rb +1 -0
- data/bundler/lib/bundler/templates/Executable.bundler +1 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
- data/bundler/lib/bundler/ui/shell.rb +2 -2
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +4 -3
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +23 -11
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +36 -36
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +3 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +8 -10
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +15 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions.rb +15 -15
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +140 -14
- data/bundler/lib/bundler/vendor/thor/lib/thor/command.rb +13 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +4 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/error.rb +16 -25
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/nested_context.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +20 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +33 -17
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +27 -8
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +44 -6
- data/bundler/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/runner.rb +40 -30
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +26 -150
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/color.rb +4 -46
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/column_printer.rb +29 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +3 -45
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/lcs_diff.rb +49 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +134 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/terminal.rb +42 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +38 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +8 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +155 -8
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendored_net_http.rb +8 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -4
- data/bundler/lib/bundler/vendored_timeout.rb +8 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/vlad.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +9 -4
- data/bundler/lib/bundler.rb +38 -35
- data/lib/rubygems/available_set.rb +4 -4
- data/lib/rubygems/basic_specification.rb +35 -37
- data/lib/rubygems/bundler_version_finder.rb +4 -4
- data/lib/rubygems/ci_detector.rb +75 -0
- data/lib/rubygems/command.rb +15 -17
- data/lib/rubygems/command_manager.rb +5 -4
- data/lib/rubygems/commands/build_command.rb +2 -2
- data/lib/rubygems/commands/cert_command.rb +2 -3
- data/lib/rubygems/commands/check_command.rb +4 -4
- data/lib/rubygems/commands/cleanup_command.rb +12 -14
- data/lib/rubygems/commands/contents_command.rb +5 -5
- data/lib/rubygems/commands/dependency_command.rb +4 -5
- data/lib/rubygems/commands/environment_command.rb +3 -5
- data/lib/rubygems/commands/exec_command.rb +1 -1
- data/lib/rubygems/commands/fetch_command.rb +2 -2
- data/lib/rubygems/commands/generate_index_command.rb +39 -74
- data/lib/rubygems/commands/help_command.rb +4 -4
- data/lib/rubygems/commands/info_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +8 -16
- data/lib/rubygems/commands/list_command.rb +2 -2
- data/lib/rubygems/commands/lock_command.rb +1 -1
- data/lib/rubygems/commands/open_command.rb +1 -1
- data/lib/rubygems/commands/owner_command.rb +1 -1
- data/lib/rubygems/commands/pristine_command.rb +13 -15
- data/lib/rubygems/commands/push_command.rb +2 -2
- data/lib/rubygems/commands/query_command.rb +4 -5
- data/lib/rubygems/commands/rdoc_command.rb +2 -2
- data/lib/rubygems/commands/search_command.rb +2 -2
- data/lib/rubygems/commands/setup_command.rb +33 -36
- data/lib/rubygems/commands/sources_command.rb +12 -12
- data/lib/rubygems/commands/specification_command.rb +10 -10
- data/lib/rubygems/commands/stale_command.rb +1 -1
- data/lib/rubygems/commands/uninstall_command.rb +13 -14
- data/lib/rubygems/commands/unpack_command.rb +7 -7
- data/lib/rubygems/commands/update_command.rb +11 -13
- data/lib/rubygems/commands/which_command.rb +1 -1
- data/lib/rubygems/commands/yank_command.rb +1 -1
- data/lib/rubygems/compatibility.rb +5 -6
- data/lib/rubygems/config_file.rb +7 -7
- data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
- data/lib/rubygems/core_ext/kernel_require.rb +20 -49
- data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
- data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
- data/lib/rubygems/defaults.rb +15 -3
- data/lib/rubygems/dependency.rb +12 -14
- data/lib/rubygems/dependency_installer.rb +30 -31
- data/lib/rubygems/dependency_list.rb +1 -1
- data/lib/rubygems/deprecate.rb +16 -15
- data/lib/rubygems/doctor.rb +6 -6
- data/lib/rubygems/errors.rb +2 -6
- data/lib/rubygems/exceptions.rb +2 -1
- data/lib/rubygems/ext/builder.rb +15 -10
- data/lib/rubygems/ext/cargo_builder.rb +5 -5
- data/lib/rubygems/ext/ext_conf_builder.rb +2 -4
- data/lib/rubygems/ext/rake_builder.rb +1 -1
- data/lib/rubygems/gem_runner.rb +4 -4
- data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
- data/lib/rubygems/gemcutter_utilities.rb +18 -19
- data/lib/rubygems/install_update_options.rb +18 -19
- data/lib/rubygems/installer.rb +66 -45
- data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
- data/lib/rubygems/local_remote_options.rb +8 -11
- data/lib/rubygems/name_tuple.rb +7 -9
- data/lib/rubygems/net/http.rb +3 -0
- data/lib/rubygems/net-http/LICENSE.txt +22 -0
- data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
- data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
- data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
- data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
- data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
- data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
- data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
- data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
- data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
- data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
- data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
- data/lib/rubygems/net-http/lib/net/https.rb +23 -0
- data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
- data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
- data/lib/rubygems/optparse/lib/optparse.rb +39 -17
- data/lib/rubygems/package/digest_io.rb +1 -1
- data/lib/rubygems/package/old.rb +2 -2
- data/lib/rubygems/package/tar_header.rb +45 -39
- data/lib/rubygems/package/tar_reader/entry.rb +5 -4
- data/lib/rubygems/package/tar_reader.rb +14 -5
- data/lib/rubygems/package/tar_writer.rb +20 -18
- data/lib/rubygems/package.rb +28 -27
- data/lib/rubygems/package_task.rb +2 -2
- data/lib/rubygems/path_support.rb +10 -11
- data/lib/rubygems/platform.rb +65 -48
- data/lib/rubygems/query_utils.rb +7 -9
- data/lib/rubygems/remote_fetcher.rb +17 -17
- data/lib/rubygems/request/connection_pools.rb +3 -3
- data/lib/rubygems/request.rb +20 -17
- data/lib/rubygems/request_set/gem_dependency_api.rb +120 -123
- data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
- data/lib/rubygems/request_set/lockfile.rb +6 -11
- data/lib/rubygems/request_set.rb +5 -5
- data/lib/rubygems/requirement.rb +7 -7
- data/lib/rubygems/resolv/LICENSE.txt +22 -0
- data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
- data/lib/rubygems/resolver/activation_request.rb +1 -3
- data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
- data/lib/rubygems/resolver/best_set.rb +1 -1
- data/lib/rubygems/resolver/composed_set.rb +1 -1
- data/lib/rubygems/resolver/conflict.rb +4 -12
- data/lib/rubygems/resolver/index_set.rb +4 -4
- data/lib/rubygems/resolver/index_specification.rb +2 -2
- data/lib/rubygems/resolver/installer_set.rb +5 -6
- data/lib/rubygems/resolver/lock_set.rb +1 -1
- data/lib/rubygems/resolver.rb +6 -13
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_marshal/elements.rb +138 -0
- data/lib/rubygems/safe_marshal/reader.rb +306 -0
- data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
- data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
- data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
- data/lib/rubygems/safe_marshal.rb +74 -0
- data/lib/rubygems/safe_yaml.rb +5 -28
- data/lib/rubygems/security/policies.rb +36 -38
- data/lib/rubygems/security/policy.rb +7 -11
- data/lib/rubygems/security/signer.rb +1 -1
- data/lib/rubygems/security/trust_dir.rb +4 -4
- data/lib/rubygems/security.rb +8 -22
- data/lib/rubygems/source/git.rb +1 -3
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +7 -9
- data/lib/rubygems/source/lock.rb +1 -3
- data/lib/rubygems/source/specific_file.rb +0 -1
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source.rb +12 -12
- data/lib/rubygems/source_list.rb +5 -5
- data/lib/rubygems/spec_fetcher.rb +31 -31
- data/lib/rubygems/specification.rb +145 -150
- data/lib/rubygems/specification_policy.rb +61 -31
- data/lib/rubygems/stub_specification.rb +4 -5
- data/lib/rubygems/text.rb +1 -2
- data/lib/rubygems/timeout/LICENSE.txt +22 -0
- data/lib/rubygems/timeout/lib/timeout.rb +199 -0
- data/lib/rubygems/timeout.rb +3 -0
- data/lib/rubygems/tsort/lib/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +9 -11
- data/lib/rubygems/update_suggestion.rb +5 -18
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +17 -23
- data/lib/rubygems/util/licenses.rb +113 -35
- data/lib/rubygems/util/list.rb +3 -1
- data/lib/rubygems/util.rb +2 -4
- data/lib/rubygems/validator.rb +6 -4
- data/lib/rubygems/version.rb +35 -29
- data/lib/rubygems/version_option.rb +2 -5
- data/lib/rubygems/yaml_serializer.rb +9 -4
- data/lib/rubygems.rb +42 -42
- data/rubygems-update.gemspec +4 -4
- data/setup.rb +2 -2
- metadata +43 -225
- data/lib/rubygems/indexer.rb +0 -428
- data/lib/rubygems/mock_gem_ui.rb +0 -86
- data/test/rubygems/alternate_cert.pem +0 -19
- data/test/rubygems/alternate_cert_32.pem +0 -19
- data/test/rubygems/alternate_key.pem +0 -27
- data/test/rubygems/bad_rake.rb +0 -3
- data/test/rubygems/bundler_test_gem.rb +0 -424
- data/test/rubygems/ca_cert.pem +0 -77
- data/test/rubygems/child_cert.pem +0 -19
- data/test/rubygems/child_cert_32.pem +0 -19
- data/test/rubygems/child_key.pem +0 -27
- data/test/rubygems/client.pem +0 -107
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/gem-private_key.pem +0 -27
- data/test/rubygems/data/gem-public_cert.pem +0 -20
- 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 +0 -30
- data/test/rubygems/expired_cert.pem +0 -19
- data/test/rubygems/fake_certlib/openssl.rb +0 -9
- data/test/rubygems/foo/discover.rb +0 -1
- data/test/rubygems/future_cert.pem +0 -19
- data/test/rubygems/future_cert_32.pem +0 -19
- data/test/rubygems/good_rake.rb +0 -3
- data/test/rubygems/grandchild_cert.pem +0 -19
- data/test/rubygems/grandchild_cert_32.pem +0 -19
- data/test/rubygems/grandchild_key.pem +0 -27
- data/test/rubygems/helper.rb +0 -1649
- data/test/rubygems/installer_test_case.rb +0 -248
- data/test/rubygems/invalid_client.pem +0 -49
- data/test/rubygems/invalid_issuer_cert.pem +0 -20
- data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
- data/test/rubygems/invalid_key.pem +0 -27
- data/test/rubygems/invalid_signer_cert.pem +0 -19
- data/test/rubygems/invalid_signer_cert_32.pem +0 -19
- data/test/rubygems/invalidchild_cert.pem +0 -19
- data/test/rubygems/invalidchild_cert_32.pem +0 -19
- data/test/rubygems/invalidchild_key.pem +0 -27
- data/test/rubygems/multifactor_auth_utilities.rb +0 -111
- data/test/rubygems/package/tar_test_case.rb +0 -175
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
- data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
- data/test/rubygems/private3072_key.pem +0 -40
- data/test/rubygems/private_ec_key.pem +0 -9
- data/test/rubygems/private_key.pem +0 -27
- data/test/rubygems/public3072_cert.pem +0 -25
- data/test/rubygems/public_cert.pem +0 -20
- data/test/rubygems/public_cert_32.pem +0 -19
- data/test/rubygems/public_key.pem +0 -9
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
- data/test/rubygems/rubygems_plugin.rb +0 -24
- data/test/rubygems/sff/discover.rb +0 -1
- data/test/rubygems/simple_gem.rb +0 -68
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
- data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
- data/test/rubygems/ssl_cert.pem +0 -80
- data/test/rubygems/ssl_key.pem +0 -27
- data/test/rubygems/test_bundled_ca.rb +0 -61
- data/test/rubygems/test_config.rb +0 -28
- data/test/rubygems/test_deprecate.rb +0 -158
- data/test/rubygems/test_exit.rb +0 -17
- data/test/rubygems/test_gem.rb +0 -1799
- data/test/rubygems/test_gem_available_set.rb +0 -130
- data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
- data/test/rubygems/test_gem_command.rb +0 -403
- data/test/rubygems/test_gem_command_manager.rb +0 -400
- data/test/rubygems/test_gem_commands_build_command.rb +0 -739
- data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
- data/test/rubygems/test_gem_commands_check_command.rb +0 -68
- data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
- data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
- data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
- data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
- data/test/rubygems/test_gem_commands_help_command.rb +0 -94
- data/test/rubygems/test_gem_commands_info_command.rb +0 -70
- data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
- data/test/rubygems/test_gem_commands_list_command.rb +0 -33
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
- data/test/rubygems/test_gem_commands_mirror.rb +0 -20
- data/test/rubygems/test_gem_commands_open_command.rb +0 -101
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
- data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
- data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
- data/test/rubygems/test_gem_commands_push_command.rb +0 -603
- data/test/rubygems/test_gem_commands_query_command.rb +0 -858
- data/test/rubygems/test_gem_commands_search_command.rb +0 -16
- data/test/rubygems/test_gem_commands_server_command.rb +0 -20
- data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
- data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
- data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
- data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -522
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
- data/test/rubygems/test_gem_commands_update_command.rb +0 -836
- data/test/rubygems/test_gem_commands_which_command.rb +0 -85
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
- data/test/rubygems/test_gem_config_file.rb +0 -551
- data/test/rubygems/test_gem_dependency.rb +0 -398
- data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
- data/test/rubygems/test_gem_dependency_list.rb +0 -265
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
- data/test/rubygems/test_gem_doctor.rb +0 -195
- data/test/rubygems/test_gem_ext_builder.rb +0 -337
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
- data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
- data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
- data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
- data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
- data/test/rubygems/test_gem_gem_runner.rb +0 -119
- data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
- data/test/rubygems/test_gem_indexer.rb +0 -381
- data/test/rubygems/test_gem_install_update_options.rb +0 -208
- data/test/rubygems/test_gem_installer.rb +0 -2512
- data/test/rubygems/test_gem_local_remote_options.rb +0 -133
- data/test/rubygems/test_gem_name_tuple.rb +0 -43
- data/test/rubygems/test_gem_package.rb +0 -1306
- data/test/rubygems/test_gem_package_old.rb +0 -91
- data/test/rubygems/test_gem_package_tar_header.rb +0 -226
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -135
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
- data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
- data/test/rubygems/test_gem_package_task.rb +0 -118
- data/test/rubygems/test_gem_path_support.rb +0 -139
- data/test/rubygems/test_gem_platform.rb +0 -497
- data/test/rubygems/test_gem_rdoc.rb +0 -137
- data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
- data/test/rubygems/test_gem_request.rb +0 -547
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
- data/test/rubygems/test_gem_request_set.rb +0 -672
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
- data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
- data/test/rubygems/test_gem_requirement.rb +0 -505
- data/test/rubygems/test_gem_resolver.rb +0 -859
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
- data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
- data/test/rubygems/test_gem_resolver_specification.rb +0 -63
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
- data/test/rubygems/test_gem_security.rb +0 -341
- data/test/rubygems/test_gem_security_policy.rb +0 -535
- data/test/rubygems/test_gem_security_signer.rb +0 -218
- data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
- data/test/rubygems/test_gem_silent_ui.rb +0 -123
- data/test/rubygems/test_gem_source.rb +0 -254
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
- data/test/rubygems/test_gem_source_git.rb +0 -310
- data/test/rubygems/test_gem_source_installed.rb +0 -35
- data/test/rubygems/test_gem_source_list.rb +0 -119
- data/test/rubygems/test_gem_source_local.rb +0 -107
- data/test/rubygems/test_gem_source_lock.rb +0 -113
- data/test/rubygems/test_gem_source_specific_file.rb +0 -76
- data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
- data/test/rubygems/test_gem_source_vendor.rb +0 -30
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
- data/test/rubygems/test_gem_specification.rb +0 -3856
- data/test/rubygems/test_gem_stream_ui.rb +0 -255
- data/test/rubygems/test_gem_stub_specification.rb +0 -278
- data/test/rubygems/test_gem_text.rb +0 -103
- data/test/rubygems/test_gem_uninstaller.rb +0 -675
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
- data/test/rubygems/test_gem_update_suggestion.rb +0 -209
- data/test/rubygems/test_gem_uri.rb +0 -41
- data/test/rubygems/test_gem_uri_formatter.rb +0 -27
- data/test/rubygems/test_gem_util.rb +0 -91
- data/test/rubygems/test_gem_validator.rb +0 -42
- data/test/rubygems/test_gem_version.rb +0 -305
- data/test/rubygems/test_gem_version_option.rb +0 -165
- data/test/rubygems/test_kernel.rb +0 -124
- data/test/rubygems/test_project_sanity.rb +0 -49
- data/test/rubygems/test_remote_fetch_error.rb +0 -20
- data/test/rubygems/test_require.rb +0 -732
- data/test/rubygems/test_rubygems.rb +0 -76
- data/test/rubygems/test_webauthn_listener.rb +0 -143
- data/test/rubygems/test_webauthn_listener_response.rb +0 -93
- data/test/rubygems/test_webauthn_poller.rb +0 -124
- data/test/rubygems/utilities.rb +0 -436
- data/test/rubygems/wrong_key_cert.pem +0 -19
- data/test/rubygems/wrong_key_cert_32.pem +0 -19
- data/test/test_changelog_generator.rb +0 -17
@@ -21,7 +21,7 @@ class Gem::Commands::UpdateCommand < Gem::Command
|
|
21
21
|
|
22
22
|
def initialize
|
23
23
|
options = {
|
24
|
-
:
|
24
|
+
force: false,
|
25
25
|
}
|
26
26
|
|
27
27
|
options.merge!(install_update_options)
|
@@ -37,10 +37,10 @@ class Gem::Commands::UpdateCommand < Gem::Command
|
|
37
37
|
end
|
38
38
|
|
39
39
|
add_option("--system [VERSION]", Gem::Version,
|
40
|
-
"Update the RubyGems system software") do |value,
|
41
|
-
value
|
40
|
+
"Update the RubyGems system software") do |value, opts|
|
41
|
+
value ||= true
|
42
42
|
|
43
|
-
|
43
|
+
opts[:system] = value
|
44
44
|
end
|
45
45
|
|
46
46
|
add_local_remote_options
|
@@ -120,7 +120,7 @@ command to remove old versions.
|
|
120
120
|
updated = update_gems gems_to_update
|
121
121
|
|
122
122
|
installed_names = highest_installed_gems.keys
|
123
|
-
updated_names = updated.map
|
123
|
+
updated_names = updated.map(&:name)
|
124
124
|
not_updated_names = options[:args].uniq - updated_names
|
125
125
|
not_installed_names = not_updated_names - installed_names
|
126
126
|
up_to_date_names = not_updated_names - not_installed_names
|
@@ -186,7 +186,9 @@ command to remove old versions.
|
|
186
186
|
system Gem.ruby, "--disable-gems", "setup.rb", *args
|
187
187
|
end
|
188
188
|
|
189
|
-
|
189
|
+
unless options[:silent]
|
190
|
+
say "RubyGems system software updated" if installed
|
191
|
+
end
|
190
192
|
end
|
191
193
|
end
|
192
194
|
|
@@ -231,7 +233,7 @@ command to remove old versions.
|
|
231
233
|
highest_remote_tup = highest_remote_name_tuple(rubygems_update)
|
232
234
|
target = highest_remote_tup ? highest_remote_tup.version : version
|
233
235
|
|
234
|
-
|
236
|
+
[target, requirement]
|
235
237
|
end
|
236
238
|
|
237
239
|
def update_gem(name, version = Gem::Requirement.default)
|
@@ -301,7 +303,7 @@ command to remove old versions.
|
|
301
303
|
def which_to_update(highest_installed_gems, gem_names)
|
302
304
|
result = []
|
303
305
|
|
304
|
-
highest_installed_gems.each do |
|
306
|
+
highest_installed_gems.each do |_l_name, l_spec|
|
305
307
|
next if !gem_names.empty? &&
|
306
308
|
gem_names.none? {|name| name == l_spec.name }
|
307
309
|
|
@@ -326,12 +328,8 @@ command to remove old versions.
|
|
326
328
|
@oldest_supported_version ||=
|
327
329
|
if Gem.ruby_version > Gem::Version.new("3.1.a")
|
328
330
|
Gem::Version.new("3.3.3")
|
329
|
-
elsif Gem.ruby_version > Gem::Version.new("3.0.a")
|
330
|
-
Gem::Version.new("3.2.3")
|
331
|
-
elsif Gem.ruby_version > Gem::Version.new("2.7.a")
|
332
|
-
Gem::Version.new("3.1.2")
|
333
331
|
else
|
334
|
-
Gem::Version.new("3.
|
332
|
+
Gem::Version.new("3.2.3")
|
335
333
|
end
|
336
334
|
end
|
337
335
|
end
|
@@ -5,7 +5,7 @@ require_relative "../command"
|
|
5
5
|
class Gem::Commands::WhichCommand < Gem::Command
|
6
6
|
def initialize
|
7
7
|
super "which", "Find the location of a library file you can require",
|
8
|
-
:
|
8
|
+
search_gems_first: false, show_all: false
|
9
9
|
|
10
10
|
add_option "-a", "--[no-]all", "show all matching files" do |show_all, options|
|
11
11
|
options[:show_all] = show_all
|
@@ -62,7 +62,7 @@ data you will need to change them immediately and yank your gem.
|
|
62
62
|
end
|
63
63
|
|
64
64
|
def yank_gem(version, platform)
|
65
|
-
say "Yanking gem from #{
|
65
|
+
say "Yanking gem from #{host}..."
|
66
66
|
args = [:delete, version, platform, "api/v1/gems/yank"]
|
67
67
|
response = yank_api_request(*args)
|
68
68
|
|
@@ -26,17 +26,16 @@ module Gem
|
|
26
26
|
rubylibdir
|
27
27
|
].freeze
|
28
28
|
|
29
|
-
|
29
|
+
if defined?(ConfigMap)
|
30
|
+
RbConfigPriorities.each do |key|
|
31
|
+
ConfigMap[key.to_sym] = RbConfig::CONFIG[key]
|
32
|
+
end
|
33
|
+
else
|
30
34
|
##
|
31
35
|
# Configuration settings from ::RbConfig
|
32
36
|
ConfigMap = Hash.new do |cm, key|
|
33
37
|
cm[key] = RbConfig::CONFIG[key.to_s]
|
34
38
|
end
|
35
39
|
deprecate_constant(:ConfigMap)
|
36
|
-
else
|
37
|
-
RbConfigPriorities.each do |key|
|
38
|
-
ConfigMap[key.to_sym] = RbConfig::CONFIG[key]
|
39
|
-
end
|
40
40
|
end
|
41
|
-
|
42
41
|
end
|
data/lib/rubygems/config_file.rb
CHANGED
@@ -188,10 +188,10 @@ class Gem::ConfigFile
|
|
188
188
|
operating_system_config = Marshal.load Marshal.dump(OPERATING_SYSTEM_DEFAULTS)
|
189
189
|
platform_config = Marshal.load Marshal.dump(PLATFORM_DEFAULTS)
|
190
190
|
system_config = load_file SYSTEM_WIDE_CONFIG_FILE
|
191
|
-
user_config = load_file config_file_name
|
191
|
+
user_config = load_file config_file_name
|
192
192
|
|
193
|
-
environment_config = (ENV["GEMRC"] || "")
|
194
|
-
|
193
|
+
environment_config = (ENV["GEMRC"] || "").
|
194
|
+
split(File::PATH_SEPARATOR).inject({}) do |result, file|
|
195
195
|
result.merge load_file file
|
196
196
|
end
|
197
197
|
|
@@ -202,7 +202,7 @@ class Gem::ConfigFile
|
|
202
202
|
@hash = @hash.merge environment_config
|
203
203
|
end
|
204
204
|
|
205
|
-
# HACK these override command-line args, which is bad
|
205
|
+
# HACK: these override command-line args, which is bad
|
206
206
|
@backtrace = @hash[:backtrace] if @hash.key? :backtrace
|
207
207
|
@bulk_threshold = @hash[:bulk_threshold] if @hash.key? :bulk_threshold
|
208
208
|
@home = @hash[:gemhome] if @hash.key? :gemhome
|
@@ -473,13 +473,13 @@ if you believe they were disclosed to a third party.
|
|
473
473
|
yaml_hash[:ssl_client_cert] =
|
474
474
|
@hash[:ssl_client_cert] if @hash.key? :ssl_client_cert
|
475
475
|
|
476
|
-
keys = yaml_hash.keys.map
|
476
|
+
keys = yaml_hash.keys.map(&:to_s)
|
477
477
|
keys << "debug"
|
478
478
|
re = Regexp.union(*keys)
|
479
479
|
|
480
480
|
@hash.each do |key, value|
|
481
481
|
key = key.to_s
|
482
|
-
next if key
|
482
|
+
next if key&.match?(re)
|
483
483
|
yaml_hash[key.to_s] = value
|
484
484
|
end
|
485
485
|
|
@@ -581,7 +581,7 @@ if you believe they were disclosed to a third party.
|
|
581
581
|
need_config_file_name = false
|
582
582
|
elsif arg =~ /^--config-file=(.*)/
|
583
583
|
@config_file_name = $1
|
584
|
-
elsif
|
584
|
+
elsif /^--config-file$/.match?(arg)
|
585
585
|
need_config_file_name = true
|
586
586
|
end
|
587
587
|
end
|
@@ -9,13 +9,12 @@
|
|
9
9
|
require "monitor"
|
10
10
|
|
11
11
|
module Kernel
|
12
|
-
|
13
12
|
RUBYGEMS_ACTIVATION_MONITOR = Monitor.new # :nodoc:
|
14
13
|
|
15
14
|
# Make sure we have a reference to Ruby's original Kernel#require
|
16
15
|
unless defined?(gem_original_require)
|
17
16
|
# :stopdoc:
|
18
|
-
|
17
|
+
alias_method :gem_original_require, :require
|
19
18
|
private :gem_original_require
|
20
19
|
# :startdoc:
|
21
20
|
end
|
@@ -37,53 +36,36 @@ module Kernel
|
|
37
36
|
def require(path) # :doc:
|
38
37
|
return gem_original_require(path) unless Gem.discover_gems_on_require
|
39
38
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
path = path.to_path if path.respond_to? :to_path
|
39
|
+
RUBYGEMS_ACTIVATION_MONITOR.synchronize do
|
40
|
+
path = File.path(path)
|
44
41
|
|
45
42
|
if spec = Gem.find_unresolved_default_spec(path)
|
46
43
|
# Ensure -I beats a default gem
|
47
44
|
resolved_path = begin
|
48
45
|
rp = nil
|
49
46
|
load_path_check_index = Gem.load_path_insert_index - Gem.activated_gem_paths
|
50
|
-
Gem.suffixes.
|
51
|
-
$LOAD_PATH[0...load_path_check_index].
|
52
|
-
|
53
|
-
|
54
|
-
if File.symlink? safe_lp # for backward compatibility
|
55
|
-
next
|
56
|
-
end
|
57
|
-
rescue SecurityError
|
58
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
59
|
-
raise
|
47
|
+
Gem.suffixes.find do |s|
|
48
|
+
$LOAD_PATH[0...load_path_check_index].find do |lp|
|
49
|
+
if File.symlink? lp # for backward compatibility
|
50
|
+
next
|
60
51
|
end
|
61
52
|
|
62
|
-
full_path = File.expand_path(File.join(
|
63
|
-
if File.file?(full_path)
|
64
|
-
rp = full_path
|
65
|
-
break
|
66
|
-
end
|
53
|
+
full_path = File.expand_path(File.join(lp, "#{path}#{s}"))
|
54
|
+
rp = full_path if File.file?(full_path)
|
67
55
|
end
|
68
|
-
break if rp
|
69
56
|
end
|
70
57
|
rp
|
71
58
|
end
|
72
59
|
|
73
|
-
|
74
|
-
|
75
|
-
rescue Exception
|
76
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
77
|
-
raise
|
78
|
-
end unless resolved_path
|
60
|
+
Kernel.send(:gem, spec.name, Gem::Requirement.default_prerelease) unless
|
61
|
+
resolved_path
|
79
62
|
end
|
80
63
|
|
81
64
|
# If there are no unresolved deps, then we can use just try
|
82
65
|
# normal require handle loading a gem from the rescue below.
|
83
66
|
|
84
67
|
if Gem::Specification.unresolved_deps.empty?
|
85
|
-
|
86
|
-
return gem_original_require(path)
|
68
|
+
next
|
87
69
|
end
|
88
70
|
|
89
71
|
# If +path+ is for a gem that has already been loaded, don't
|
@@ -93,8 +75,7 @@ module Kernel
|
|
93
75
|
# TODO request access to the C implementation of this to speed up RubyGems
|
94
76
|
|
95
77
|
if Gem::Specification.find_active_stub_by_path(path)
|
96
|
-
|
97
|
-
return gem_original_require(path)
|
78
|
+
next
|
98
79
|
end
|
99
80
|
|
100
81
|
# Attempt to find +path+ in any unresolved gems...
|
@@ -114,9 +95,7 @@ module Kernel
|
|
114
95
|
if found_specs.empty?
|
115
96
|
found_specs = Gem::Specification.find_in_unresolved_tree path
|
116
97
|
|
117
|
-
found_specs.each
|
118
|
-
found_spec.activate
|
119
|
-
end
|
98
|
+
found_specs.each(&:activate)
|
120
99
|
|
121
100
|
# We found +path+ directly in an unresolved gem. Now we figure out, of
|
122
101
|
# the possible found specs, which one we should activate.
|
@@ -127,7 +106,6 @@ module Kernel
|
|
127
106
|
names = found_specs.map(&:name).uniq
|
128
107
|
|
129
108
|
if names.size > 1
|
130
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
131
109
|
raise Gem::LoadError, "#{path} found in multiple gems: #{names.join ", "}"
|
132
110
|
end
|
133
111
|
|
@@ -138,26 +116,20 @@ module Kernel
|
|
138
116
|
unless valid
|
139
117
|
le = Gem::LoadError.new "unable to find a version of '#{names.first}' to activate"
|
140
118
|
le.name = names.first
|
141
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
142
119
|
raise le
|
143
120
|
end
|
144
121
|
|
145
122
|
valid.activate
|
146
123
|
end
|
124
|
+
end
|
147
125
|
|
148
|
-
|
149
|
-
|
126
|
+
begin
|
127
|
+
gem_original_require(path)
|
150
128
|
rescue LoadError => load_error
|
151
|
-
if load_error.path == path
|
152
|
-
|
153
|
-
|
154
|
-
begin
|
155
|
-
require_again = Gem.try_activate(path)
|
156
|
-
ensure
|
157
|
-
RUBYGEMS_ACTIVATION_MONITOR.exit
|
158
|
-
end
|
129
|
+
if load_error.path == path &&
|
130
|
+
RUBYGEMS_ACTIVATION_MONITOR.synchronize { Gem.try_activate(path) }
|
159
131
|
|
160
|
-
return gem_original_require(path)
|
132
|
+
return gem_original_require(path)
|
161
133
|
end
|
162
134
|
|
163
135
|
raise load_error
|
@@ -165,5 +137,4 @@ module Kernel
|
|
165
137
|
end
|
166
138
|
|
167
139
|
private :require
|
168
|
-
|
169
140
|
end
|
@@ -19,7 +19,7 @@ module CoreExtensions
|
|
19
19
|
cond_var = Thread::ConditionVariable.new
|
20
20
|
|
21
21
|
Addrinfo.foreach(host, serv, nil, :STREAM) do |addr|
|
22
|
-
Thread.report_on_exception = false
|
22
|
+
Thread.report_on_exception = false
|
23
23
|
|
24
24
|
threads << Thread.new(addr) do
|
25
25
|
# give head start to ipv6 addresses
|
data/lib/rubygems/defaults.rb
CHANGED
@@ -94,7 +94,7 @@ module Gem
|
|
94
94
|
# The home directory for the user.
|
95
95
|
|
96
96
|
def self.user_home
|
97
|
-
@user_home ||= find_home
|
97
|
+
@user_home ||= find_home
|
98
98
|
end
|
99
99
|
|
100
100
|
##
|
@@ -131,14 +131,14 @@ module Gem
|
|
131
131
|
# The path to standard location of the user's .gemrc file.
|
132
132
|
|
133
133
|
def self.config_file
|
134
|
-
@config_file ||= find_config_file
|
134
|
+
@config_file ||= find_config_file
|
135
135
|
end
|
136
136
|
|
137
137
|
##
|
138
138
|
# The path to standard location of the user's state file.
|
139
139
|
|
140
140
|
def self.state_file
|
141
|
-
@state_file ||= File.join(Gem.state_home, "gem", "last_update_check")
|
141
|
+
@state_file ||= File.join(Gem.state_home, "gem", "last_update_check")
|
142
142
|
end
|
143
143
|
|
144
144
|
##
|
@@ -235,6 +235,18 @@ module Gem
|
|
235
235
|
default_cert_path
|
236
236
|
end
|
237
237
|
|
238
|
+
##
|
239
|
+
# Enables automatic installation into user directory
|
240
|
+
|
241
|
+
def self.default_user_install # :nodoc:
|
242
|
+
if !ENV.key?("GEM_HOME") && (File.exist?(Gem.dir) && !File.writable?(Gem.dir))
|
243
|
+
Gem.ui.say "Defaulting to user installation because default installation directory (#{Gem.dir}) is not writable."
|
244
|
+
return true
|
245
|
+
end
|
246
|
+
|
247
|
+
false
|
248
|
+
end
|
249
|
+
|
238
250
|
##
|
239
251
|
# Install extensions into lib as well as into the extension directory.
|
240
252
|
|
data/lib/rubygems/dependency.rb
CHANGED
@@ -46,10 +46,10 @@ class Gem::Dependency
|
|
46
46
|
end
|
47
47
|
|
48
48
|
type = Symbol === requirements.last ? requirements.pop : :runtime
|
49
|
-
requirements = requirements.first if
|
49
|
+
requirements = requirements.first if requirements.length == 1 # unpack
|
50
50
|
|
51
51
|
unless TYPES.include? type
|
52
|
-
raise ArgumentError, "Valid types are #{TYPES.inspect}, "
|
52
|
+
raise ArgumentError, "Valid types are #{TYPES.inspect}, " \
|
53
53
|
"not #{type.inspect}"
|
54
54
|
end
|
55
55
|
|
@@ -74,11 +74,9 @@ class Gem::Dependency
|
|
74
74
|
|
75
75
|
def inspect # :nodoc:
|
76
76
|
if prerelease?
|
77
|
-
"<%s type=%p name=%p requirements=%p prerelease=ok>"
|
78
|
-
[self.class, self.type, self.name, requirement.to_s]
|
77
|
+
format("<%s type=%p name=%p requirements=%p prerelease=ok>", self.class, type, name, requirement.to_s)
|
79
78
|
else
|
80
|
-
"<%s type=%p name=%p requirements=%p>"
|
81
|
-
[self.class, self.type, self.name, requirement.to_s]
|
79
|
+
format("<%s type=%p name=%p requirements=%p>", self.class, type, name, requirement.to_s)
|
82
80
|
end
|
83
81
|
end
|
84
82
|
|
@@ -169,16 +167,16 @@ class Gem::Dependency
|
|
169
167
|
|
170
168
|
def ==(other) # :nodoc:
|
171
169
|
Gem::Dependency === other &&
|
172
|
-
|
173
|
-
|
174
|
-
|
170
|
+
name == other.name &&
|
171
|
+
type == other.type &&
|
172
|
+
requirement == other.requirement
|
175
173
|
end
|
176
174
|
|
177
175
|
##
|
178
176
|
# Dependencies are ordered by name.
|
179
177
|
|
180
178
|
def <=>(other)
|
181
|
-
|
179
|
+
name <=> other.name
|
182
180
|
end
|
183
181
|
|
184
182
|
##
|
@@ -205,7 +203,7 @@ class Gem::Dependency
|
|
205
203
|
requirement.satisfied_by? version
|
206
204
|
end
|
207
205
|
|
208
|
-
|
206
|
+
alias_method :===, :=~
|
209
207
|
|
210
208
|
##
|
211
209
|
# :call-seq:
|
@@ -263,7 +261,7 @@ class Gem::Dependency
|
|
263
261
|
end
|
264
262
|
|
265
263
|
default = Gem::Requirement.default
|
266
|
-
self_req =
|
264
|
+
self_req = requirement
|
267
265
|
other_req = other.requirement
|
268
266
|
|
269
267
|
return self.class.new name, self_req if other_req == default
|
@@ -324,9 +322,9 @@ class Gem::Dependency
|
|
324
322
|
end
|
325
323
|
|
326
324
|
def to_spec
|
327
|
-
matches =
|
325
|
+
matches = to_specs.compact
|
328
326
|
|
329
|
-
active = matches.find
|
327
|
+
active = matches.find(&:activated?)
|
330
328
|
return active if active
|
331
329
|
|
332
330
|
unless prerelease?
|
@@ -17,18 +17,18 @@ class Gem::DependencyInstaller
|
|
17
17
|
extend Gem::Deprecate
|
18
18
|
|
19
19
|
DEFAULT_OPTIONS = { # :nodoc:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
:
|
25
|
-
:
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
20
|
+
env_shebang: false,
|
21
|
+
document: %w[ri],
|
22
|
+
domain: :both, # HACK: dup
|
23
|
+
force: false,
|
24
|
+
format_executable: false, # HACK: dup
|
25
|
+
ignore_dependencies: false,
|
26
|
+
prerelease: false,
|
27
|
+
security_policy: nil, # HACK: NoSecurity requires OpenSSL. AlmostNo? Low?
|
28
|
+
wrappers: true,
|
29
|
+
build_args: nil,
|
30
|
+
build_docs_in_background: false,
|
31
|
+
install_as_default: false,
|
32
32
|
}.freeze
|
33
33
|
|
34
34
|
##
|
@@ -66,7 +66,7 @@ class Gem::DependencyInstaller
|
|
66
66
|
# :build_args:: See Gem::Installer::new
|
67
67
|
|
68
68
|
def initialize(options = {})
|
69
|
-
@only_install_dir =
|
69
|
+
@only_install_dir = !options[:install_dir].nil?
|
70
70
|
@install_dir = options[:install_dir] || Gem.dir
|
71
71
|
@build_root = options[:build_root]
|
72
72
|
|
@@ -177,7 +177,6 @@ class Gem::DependencyInstaller
|
|
177
177
|
end
|
178
178
|
|
179
179
|
set << specs
|
180
|
-
|
181
180
|
rescue Gem::RemoteFetcher::FetchError => e
|
182
181
|
# FIX if there is a problem talking to the network, we either need to always tell
|
183
182
|
# the user (no really_verbose) or fail hard, not silently tell them that we just
|
@@ -229,22 +228,22 @@ class Gem::DependencyInstaller
|
|
229
228
|
@installed_gems = []
|
230
229
|
|
231
230
|
options = {
|
232
|
-
:
|
233
|
-
:
|
234
|
-
:
|
235
|
-
:
|
236
|
-
:
|
237
|
-
:
|
238
|
-
:
|
239
|
-
:
|
240
|
-
:
|
241
|
-
:
|
242
|
-
:
|
243
|
-
:
|
244
|
-
:
|
245
|
-
:
|
246
|
-
:
|
247
|
-
:
|
231
|
+
bin_dir: @bin_dir,
|
232
|
+
build_args: @build_args,
|
233
|
+
document: @document,
|
234
|
+
env_shebang: @env_shebang,
|
235
|
+
force: @force,
|
236
|
+
format_executable: @format_executable,
|
237
|
+
ignore_dependencies: @ignore_dependencies,
|
238
|
+
prerelease: @prerelease,
|
239
|
+
security_policy: @security_policy,
|
240
|
+
user_install: @user_install,
|
241
|
+
wrappers: @wrappers,
|
242
|
+
build_root: @build_root,
|
243
|
+
install_as_default: @install_as_default,
|
244
|
+
dir_mode: @dir_mode,
|
245
|
+
data_mode: @data_mode,
|
246
|
+
prog_mode: @prog_mode,
|
248
247
|
}
|
249
248
|
options[:install_dir] = @install_dir if @only_install_dir
|
250
249
|
|
@@ -292,7 +291,7 @@ class Gem::DependencyInstaller
|
|
292
291
|
src = Gem::Source::SpecificFile.new dep_or_name
|
293
292
|
installer_set.add_local dep_or_name, src.spec, src
|
294
293
|
version = src.spec.version if version == Gem::Requirement.default
|
295
|
-
elsif dep_or_name =~ /\.gem$/
|
294
|
+
elsif dep_or_name =~ /\.gem$/ # rubocop:disable Performance/RegexpMatch
|
296
295
|
Dir[dep_or_name].each do |name|
|
297
296
|
src = Gem::Source::SpecificFile.new name
|
298
297
|
installer_set.add_local dep_or_name, src.spec, src
|
data/lib/rubygems/deprecate.rb
CHANGED
@@ -70,7 +70,6 @@
|
|
70
70
|
# end
|
71
71
|
|
72
72
|
module Gem::Deprecate
|
73
|
-
|
74
73
|
def self.skip # :nodoc:
|
75
74
|
@skip ||= false
|
76
75
|
end
|
@@ -105,12 +104,13 @@ module Gem::Deprecate
|
|
105
104
|
old = "_deprecated_#{name}"
|
106
105
|
alias_method old, name
|
107
106
|
define_method name do |*args, &block|
|
108
|
-
klass =
|
107
|
+
klass = is_a? Module
|
109
108
|
target = klass ? "#{self}." : "#{self.class}#"
|
110
|
-
msg = [
|
111
|
-
|
112
|
-
|
113
|
-
|
109
|
+
msg = [
|
110
|
+
"NOTE: #{target}#{name} is deprecated",
|
111
|
+
repl == :none ? " with no replacement" : "; use #{repl} instead",
|
112
|
+
format(". It will be removed on or after %4d-%02d.", year, month),
|
113
|
+
"\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
|
114
114
|
]
|
115
115
|
warn "#{msg.join}." unless Gem::Deprecate.skip
|
116
116
|
send old, *args, &block
|
@@ -130,12 +130,13 @@ module Gem::Deprecate
|
|
130
130
|
old = "_deprecated_#{name}"
|
131
131
|
alias_method old, name
|
132
132
|
define_method name do |*args, &block|
|
133
|
-
klass =
|
133
|
+
klass = is_a? Module
|
134
134
|
target = klass ? "#{self}." : "#{self.class}#"
|
135
|
-
msg = [
|
136
|
-
|
137
|
-
|
138
|
-
|
135
|
+
msg = [
|
136
|
+
"NOTE: #{target}#{name} is deprecated",
|
137
|
+
replacement == :none ? " with no replacement" : "; use #{replacement} instead",
|
138
|
+
". It will be removed in Rubygems #{Gem::Deprecate.next_rubygems_major_version}",
|
139
|
+
"\n#{target}#{name} called from #{Gem.location_of_caller.join(":")}",
|
139
140
|
]
|
140
141
|
warn "#{msg.join}." unless Gem::Deprecate.skip
|
141
142
|
send old, *args, &block
|
@@ -152,15 +153,15 @@ module Gem::Deprecate
|
|
152
153
|
end
|
153
154
|
|
154
155
|
define_method "deprecation_warning" do
|
155
|
-
msg = [
|
156
|
-
|
156
|
+
msg = [
|
157
|
+
"#{command} command is deprecated",
|
158
|
+
". It will be removed in Rubygems #{version}.\n",
|
157
159
|
]
|
158
160
|
|
159
|
-
alert_warning
|
161
|
+
alert_warning msg.join.to_s unless Gem::Deprecate.skip
|
160
162
|
end
|
161
163
|
end
|
162
164
|
end
|
163
165
|
|
164
166
|
module_function :rubygems_deprecate, :rubygems_deprecate_command, :skip_during
|
165
|
-
|
166
167
|
end
|