rubygems-update 3.2.30 → 3.4.10
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 +1666 -994
- data/CONTRIBUTING.md +71 -15
- data/Manifest.txt +93 -37
- data/POLICIES.md +65 -16
- data/README.md +28 -13
- data/UPGRADING.md +5 -81
- data/bin/gem +2 -10
- data/bin/update_rubygems +5 -5
- data/bundler/CHANGELOG.md +647 -1
- data/bundler/README.md +3 -6
- data/bundler/UPGRADING.md +11 -4
- data/bundler/bundler.gemspec +8 -10
- data/bundler/exe/bundle +7 -11
- data/bundler/exe/bundler +1 -1
- data/bundler/lib/bundler/.document +1 -0
- data/bundler/lib/bundler/build_metadata.rb +3 -3
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +5 -1
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +4 -2
- data/bundler/lib/bundler/cli/config.rb +10 -1
- data/bundler/lib/bundler/cli/console.rb +2 -2
- data/bundler/lib/bundler/cli/doctor.rb +10 -3
- data/bundler/lib/bundler/cli/gem.rb +136 -42
- data/bundler/lib/bundler/cli/info.rb +17 -3
- data/bundler/lib/bundler/cli/init.rb +6 -2
- data/bundler/lib/bundler/cli/install.rb +15 -33
- data/bundler/lib/bundler/cli/lock.rb +8 -5
- data/bundler/lib/bundler/cli/open.rb +6 -4
- data/bundler/lib/bundler/cli/outdated.rb +13 -6
- data/bundler/lib/bundler/cli/platform.rb +2 -2
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +8 -4
- data/bundler/lib/bundler/cli/viz.rb +1 -1
- data/bundler/lib/bundler/cli.rb +67 -21
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -10
- data/bundler/lib/bundler/compact_index_client/updater.rb +53 -44
- data/bundler/lib/bundler/compact_index_client.rb +0 -6
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +18 -6
- data/bundler/lib/bundler/definition.rb +259 -242
- data/bundler/lib/bundler/dependency.rb +24 -71
- data/bundler/lib/bundler/digest.rb +1 -1
- data/bundler/lib/bundler/dsl.rb +29 -46
- data/bundler/lib/bundler/endpoint_specification.rb +15 -13
- data/bundler/lib/bundler/env.rb +2 -2
- data/bundler/lib/bundler/environment_preserver.rb +7 -3
- data/bundler/lib/bundler/errors.rb +15 -15
- data/bundler/lib/bundler/feature_flag.rb +0 -1
- data/bundler/lib/bundler/fetcher/base.rb +6 -8
- data/bundler/lib/bundler/fetcher/compact_index.rb +18 -25
- data/bundler/lib/bundler/fetcher/dependency.rb +2 -6
- data/bundler/lib/bundler/fetcher/downloader.rb +2 -5
- data/bundler/lib/bundler/fetcher/index.rb +0 -26
- data/bundler/lib/bundler/fetcher.rb +22 -29
- data/bundler/lib/bundler/force_platform.rb +18 -0
- data/bundler/lib/bundler/friendly_errors.rb +21 -7
- data/bundler/lib/bundler/gem_helper.rb +4 -4
- data/bundler/lib/bundler/gem_helpers.rb +9 -2
- data/bundler/lib/bundler/gem_version_promoter.rb +53 -98
- data/bundler/lib/bundler/graph.rb +3 -3
- data/bundler/lib/bundler/index.rb +13 -51
- data/bundler/lib/bundler/injector.rb +18 -4
- data/bundler/lib/bundler/inline.rb +9 -21
- data/bundler/lib/bundler/installer/gem_installer.rb +13 -5
- data/bundler/lib/bundler/installer/parallel_installer.rb +3 -33
- data/bundler/lib/bundler/installer/standalone.rb +42 -11
- data/bundler/lib/bundler/installer.rb +20 -44
- data/bundler/lib/bundler/lazy_specification.rb +72 -55
- data/bundler/lib/bundler/lockfile_generator.rb +3 -3
- data/bundler/lib/bundler/lockfile_parser.rb +28 -26
- data/bundler/lib/bundler/man/bundle-add.1 +21 -5
- data/bundler/lib/bundler/man/bundle-add.1.ronn +16 -4
- data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
- data/bundler/lib/bundler/man/bundle-cache.1 +7 -1
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +7 -0
- data/bundler/lib/bundler/man/bundle-check.1 +1 -1
- data/bundler/lib/bundler/man/bundle-clean.1 +2 -2
- data/bundler/lib/bundler/man/bundle-clean.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +34 -15
- data/bundler/lib/bundler/man/bundle-config.1.ronn +31 -19
- data/bundler/lib/bundler/man/bundle-console.1 +53 -0
- data/bundler/lib/bundler/man/bundle-console.1.ronn +44 -0
- data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/lib/bundler/man/bundle-exec.1 +6 -6
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +6 -6
- data/bundler/lib/bundler/man/bundle-gem.1 +37 -34
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +21 -5
- data/bundler/lib/bundler/man/bundle-help.1 +13 -0
- data/bundler/lib/bundler/man/bundle-help.1.ronn +12 -0
- data/bundler/lib/bundler/man/bundle-info.1 +1 -1
- data/bundler/lib/bundler/man/bundle-init.1 +5 -1
- data/bundler/lib/bundler/man/bundle-init.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle-inject.1 +5 -2
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +3 -1
- data/bundler/lib/bundler/man/bundle-install.1 +6 -31
- data/bundler/lib/bundler/man/bundle-install.1.ronn +8 -31
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
- data/bundler/lib/bundler/man/bundle-open.1 +22 -2
- data/bundler/lib/bundler/man/bundle-open.1.ronn +9 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +3 -10
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -10
- data/bundler/lib/bundler/man/bundle-platform.1 +16 -6
- data/bundler/lib/bundler/man/bundle-platform.1.ronn +14 -7
- data/bundler/lib/bundler/man/bundle-plugin.1 +81 -0
- data/bundler/lib/bundler/man/bundle-plugin.1.ronn +59 -0
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +1 -1
- data/bundler/lib/bundler/man/bundle-update.1 +2 -2
- data/bundler/lib/bundler/man/bundle-update.1.ronn +2 -1
- data/bundler/lib/bundler/man/bundle-version.1 +35 -0
- data/bundler/lib/bundler/man/bundle-version.1.ronn +24 -0
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -1
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +2 -0
- data/bundler/lib/bundler/man/bundle.1 +15 -10
- data/bundler/lib/bundler/man/bundle.1.ronn +12 -7
- data/bundler/lib/bundler/man/gemfile.5 +117 -80
- data/bundler/lib/bundler/man/gemfile.5.ronn +105 -84
- data/bundler/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 +5 -7
- data/bundler/lib/bundler/plugin/api/source.rb +4 -9
- data/bundler/lib/bundler/plugin/index.rb +4 -4
- data/bundler/lib/bundler/plugin/installer/git.rb +0 -4
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +0 -8
- data/bundler/lib/bundler/plugin/installer.rb +6 -3
- data/bundler/lib/bundler/plugin.rb +3 -1
- data/bundler/lib/bundler/process_lock.rb +1 -1
- data/bundler/lib/bundler/remote_specification.rb +7 -5
- data/bundler/lib/bundler/resolver/base.rb +109 -0
- data/bundler/lib/bundler/resolver/candidate.rb +94 -0
- data/bundler/lib/bundler/resolver/incompatibility.rb +15 -0
- data/bundler/lib/bundler/resolver/package.rb +72 -0
- data/bundler/lib/bundler/resolver/root.rb +25 -0
- data/bundler/lib/bundler/resolver/spec_group.rb +43 -71
- data/bundler/lib/bundler/resolver.rb +332 -308
- data/bundler/lib/bundler/ruby_dsl.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +5 -18
- data/bundler/lib/bundler/rubygems_ext.rb +144 -25
- data/bundler/lib/bundler/rubygems_gem_installer.rb +32 -20
- data/bundler/lib/bundler/rubygems_integration.rb +24 -95
- data/bundler/lib/bundler/runtime.rb +2 -7
- data/bundler/lib/bundler/self_manager.rb +168 -0
- data/bundler/lib/bundler/settings.rb +5 -10
- data/bundler/lib/bundler/setup.rb +4 -1
- data/bundler/lib/bundler/shared_helpers.rb +17 -25
- data/bundler/lib/bundler/source/git/git_proxy.rb +219 -71
- data/bundler/lib/bundler/source/git.rb +23 -26
- data/bundler/lib/bundler/source/metadata.rb +3 -4
- data/bundler/lib/bundler/source/path/installer.rb +1 -22
- data/bundler/lib/bundler/source/path.rb +7 -7
- data/bundler/lib/bundler/source/rubygems.rb +91 -130
- data/bundler/lib/bundler/source/rubygems_aggregate.rb +1 -1
- data/bundler/lib/bundler/source.rb +4 -5
- data/bundler/lib/bundler/source_list.rb +19 -31
- data/bundler/lib/bundler/source_map.rb +15 -2
- data/bundler/lib/bundler/spec_set.rb +63 -35
- data/bundler/lib/bundler/stub_specification.rb +5 -3
- data/bundler/lib/bundler/templates/Executable +3 -5
- data/bundler/lib/bundler/templates/Executable.bundler +6 -11
- data/bundler/lib/bundler/templates/Executable.standalone +4 -4
- data/bundler/lib/bundler/templates/Gemfile +0 -2
- data/bundler/lib/bundler/templates/newgem/Cargo.toml.tt +7 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +8 -2
- data/bundler/lib/bundler/templates/newgem/README.md.tt +7 -11
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +27 -3
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +6 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +12 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +13 -3
- data/bundler/lib/bundler/templates/newgem/gitignore.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +13 -4
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +22 -16
- data/bundler/lib/bundler/templates/newgem/sig/newgem.rbs.tt +8 -0
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +3 -0
- data/bundler/lib/bundler/templates/newgem/test/minitest/{newgem_test.rb.tt → test_newgem.rb.tt} +1 -1
- data/bundler/lib/bundler/ui/shell.rb +36 -13
- data/bundler/lib/bundler/ui/silent.rb +21 -5
- data/bundler/lib/bundler/uri_normalizer.rb +23 -0
- data/bundler/lib/bundler/vendor/.document +1 -0
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +3 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +3 -1
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +1350 -408
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +1 -1
- data/bundler/lib/bundler/vendor/pub_grub/LICENSE.txt +21 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/assignment.rb +20 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +189 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/failure_writer.rb +182 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/incompatibility.rb +150 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/package.rb +43 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/partial_solution.rb +121 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/rubygems.rb +45 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/solve_failure.rb +19 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/static_package_source.rb +60 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/term.rb +105 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version.rb +3 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_constraint.rb +129 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_range.rb +411 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_solver.rb +243 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub/version_union.rb +178 -0
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +31 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +6 -6
- 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 +6 -2
- 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 +9 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +19 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +23 -5
- 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/tsort/LICENSE.txt +22 -0
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +452 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +76 -91
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +7 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +32 -13
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +40 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +2 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +2 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +14 -21
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +11 -17
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +83 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +23 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +3 -3
- data/bundler/lib/bundler/vendored_persistent.rb +1 -33
- data/bundler/lib/bundler/{vendored_molinillo.rb → vendored_pub_grub.rb} +1 -1
- data/bundler/lib/bundler/{vendored_tmpdir.rb → vendored_tsort.rb} +1 -1
- data/bundler/lib/bundler/version.rb +5 -1
- data/bundler/lib/bundler/worker.rb +5 -7
- data/bundler/lib/bundler.rb +50 -77
- data/hide_lib_for_update/note.txt +0 -4
- data/lib/rubygems/available_set.rb +3 -3
- data/lib/rubygems/basic_specification.rb +12 -12
- data/lib/rubygems/bundler_version_finder.rb +14 -46
- data/lib/rubygems/command.rb +47 -39
- data/lib/rubygems/command_manager.rb +34 -13
- data/lib/rubygems/commands/build_command.rb +11 -8
- data/lib/rubygems/commands/cert_command.rb +39 -39
- data/lib/rubygems/commands/check_command.rb +20 -20
- data/lib/rubygems/commands/cleanup_command.rb +23 -23
- data/lib/rubygems/commands/contents_command.rb +13 -13
- data/lib/rubygems/commands/dependency_command.rb +35 -45
- data/lib/rubygems/commands/environment_command.rb +10 -7
- data/lib/rubygems/commands/exec_command.rb +248 -0
- data/lib/rubygems/commands/fetch_command.rb +32 -13
- data/lib/rubygems/commands/generate_index_command.rb +17 -17
- data/lib/rubygems/commands/help_command.rb +6 -6
- data/lib/rubygems/commands/info_command.rb +3 -3
- data/lib/rubygems/commands/install_command.rb +31 -24
- data/lib/rubygems/commands/list_command.rb +4 -4
- data/lib/rubygems/commands/lock_command.rb +4 -4
- data/lib/rubygems/commands/mirror_command.rb +3 -3
- data/lib/rubygems/commands/open_command.rb +9 -9
- data/lib/rubygems/commands/outdated_command.rb +5 -5
- data/lib/rubygems/commands/owner_command.rb +17 -12
- data/lib/rubygems/commands/pristine_command.rb +64 -49
- data/lib/rubygems/commands/push_command.rb +16 -16
- data/lib/rubygems/commands/query_command.rb +9 -9
- data/lib/rubygems/commands/rdoc_command.rb +26 -25
- data/lib/rubygems/commands/search_command.rb +4 -4
- data/lib/rubygems/commands/server_command.rb +16 -79
- data/lib/rubygems/commands/setup_command.rb +172 -173
- data/lib/rubygems/commands/signin_command.rb +9 -9
- data/lib/rubygems/commands/signout_command.rb +7 -7
- data/lib/rubygems/commands/sources_command.rb +22 -22
- data/lib/rubygems/commands/specification_command.rb +18 -18
- data/lib/rubygems/commands/stale_command.rb +2 -2
- data/lib/rubygems/commands/uninstall_command.rb +43 -40
- data/lib/rubygems/commands/unpack_command.rb +13 -13
- data/lib/rubygems/commands/update_command.rb +61 -72
- data/lib/rubygems/commands/which_command.rb +7 -7
- data/lib/rubygems/commands/yank_command.rb +11 -11
- data/lib/rubygems/compatibility.rb +4 -2
- data/lib/rubygems/config_file.rb +58 -25
- data/lib/rubygems/core_ext/kernel_gem.rb +1 -6
- data/lib/rubygems/core_ext/kernel_require.rb +108 -115
- data/lib/rubygems/core_ext/kernel_warn.rb +33 -37
- data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
- data/lib/rubygems/defaults.rb +32 -36
- data/lib/rubygems/dependency.rb +20 -17
- data/lib/rubygems/dependency_installer.rb +37 -37
- data/lib/rubygems/dependency_list.rb +7 -7
- data/lib/rubygems/deprecate.rb +55 -8
- data/lib/rubygems/doctor.rb +21 -21
- data/lib/rubygems/errors.rb +3 -6
- data/lib/rubygems/exceptions.rb +35 -7
- data/lib/rubygems/ext/build_error.rb +1 -1
- data/lib/rubygems/ext/builder.rb +51 -22
- data/lib/rubygems/ext/cargo_builder/link_flag_converter.rb +27 -0
- data/lib/rubygems/ext/cargo_builder.rb +360 -0
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +1 -1
- data/lib/rubygems/ext/ext_conf_builder.rb +35 -59
- data/lib/rubygems/ext/rake_builder.rb +3 -3
- data/lib/rubygems/ext.rb +7 -6
- data/lib/rubygems/gem_runner.rb +12 -16
- data/lib/rubygems/gemcutter_utilities.rb +60 -21
- data/lib/rubygems/indexer.rb +30 -28
- data/lib/rubygems/install_default_message.rb +2 -2
- data/lib/rubygems/install_message.rb +2 -2
- data/lib/rubygems/install_update_options.rb +70 -61
- data/lib/rubygems/installer.rb +135 -87
- data/lib/rubygems/installer_uninstaller_utils.rb +2 -2
- data/lib/rubygems/local_remote_options.rb +22 -24
- data/lib/rubygems/mock_gem_ui.rb +2 -2
- data/lib/rubygems/name_tuple.rb +6 -7
- data/lib/rubygems/optparse/.document +1 -0
- data/lib/rubygems/optparse/COPYING +56 -0
- data/lib/rubygems/optparse/lib/optionparser.rb +2 -0
- data/lib/rubygems/optparse/lib/optparse/ac.rb +54 -0
- data/lib/rubygems/optparse/lib/optparse/date.rb +18 -0
- data/lib/rubygems/optparse/lib/optparse/kwargs.rb +22 -0
- data/lib/rubygems/optparse/lib/optparse/shellwords.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/time.rb +11 -0
- data/lib/rubygems/optparse/lib/optparse/uri.rb +7 -0
- data/lib/rubygems/optparse/lib/optparse/version.rb +71 -0
- data/lib/rubygems/optparse/lib/optparse.rb +2308 -0
- data/lib/rubygems/optparse.rb +3 -0
- data/lib/rubygems/package/file_source.rb +2 -2
- data/lib/rubygems/package/old.rb +9 -9
- data/lib/rubygems/package/tar_header.rb +62 -62
- data/lib/rubygems/package/tar_reader/entry.rb +90 -9
- data/lib/rubygems/package/tar_reader.rb +1 -29
- data/lib/rubygems/package/tar_writer.rb +7 -7
- data/lib/rubygems/package.rb +77 -60
- data/lib/rubygems/package_task.rb +4 -4
- data/lib/rubygems/path_support.rb +1 -6
- data/lib/rubygems/platform.rb +94 -61
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/query_utils.rb +49 -51
- data/lib/rubygems/rdoc.rb +2 -2
- data/lib/rubygems/remote_fetcher.rb +27 -27
- data/lib/rubygems/request/connection_pools.rb +4 -4
- data/lib/rubygems/request/http_pool.rb +1 -1
- data/lib/rubygems/request.rb +24 -24
- data/lib/rubygems/request_set/gem_dependency_api.rb +122 -123
- data/lib/rubygems/request_set/lockfile/parser.rb +26 -26
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +4 -4
- data/lib/rubygems/request_set/lockfile.rb +9 -9
- data/lib/rubygems/request_set.rb +18 -18
- data/lib/rubygems/requirement.rb +15 -15
- data/lib/rubygems/resolver/activation_request.rb +3 -3
- data/lib/rubygems/resolver/api_set.rb +4 -4
- data/lib/rubygems/resolver/api_specification.rb +6 -6
- data/lib/rubygems/resolver/best_set.rb +5 -5
- data/lib/rubygems/resolver/conflict.rb +10 -10
- data/lib/rubygems/resolver/dependency_request.rb +2 -2
- data/lib/rubygems/resolver/git_set.rb +2 -2
- data/lib/rubygems/resolver/git_specification.rb +6 -6
- data/lib/rubygems/resolver/index_set.rb +3 -3
- data/lib/rubygems/resolver/index_specification.rb +6 -5
- data/lib/rubygems/resolver/installed_specification.rb +4 -4
- data/lib/rubygems/resolver/installer_set.rb +21 -26
- data/lib/rubygems/resolver/local_specification.rb +2 -2
- data/lib/rubygems/resolver/lock_set.rb +4 -4
- data/lib/rubygems/resolver/lock_specification.rb +4 -4
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +3 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +32 -26
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/lib/rubygems/resolver/molinillo.rb +1 -1
- data/lib/rubygems/resolver/specification.rb +1 -1
- data/lib/rubygems/resolver/stats.rb +1 -1
- data/lib/rubygems/resolver/vendor_set.rb +1 -1
- data/lib/rubygems/resolver/vendor_specification.rb +3 -3
- data/lib/rubygems/resolver.rb +40 -40
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_yaml.rb +10 -10
- data/lib/rubygems/security/policies.rb +47 -47
- data/lib/rubygems/security/policy.rb +19 -21
- data/lib/rubygems/security/signer.rb +5 -5
- data/lib/rubygems/security/trust_dir.rb +4 -4
- data/lib/rubygems/security.rb +37 -43
- data/lib/rubygems/security_option.rb +7 -7
- data/lib/rubygems/source/git.rb +25 -24
- data/lib/rubygems/source/installed.rb +1 -1
- data/lib/rubygems/source/local.rb +2 -2
- data/lib/rubygems/source/specific_file.rb +1 -1
- data/lib/rubygems/source.rb +27 -32
- data/lib/rubygems/source_list.rb +5 -9
- data/lib/rubygems/spec_fetcher.rb +37 -37
- data/lib/rubygems/specification.rb +265 -211
- data/lib/rubygems/specification_policy.rb +49 -30
- data/lib/rubygems/stub_specification.rb +24 -27
- data/lib/rubygems/text.rb +22 -21
- data/lib/rubygems/tsort/.document +1 -0
- data/lib/rubygems/tsort/LICENSE.txt +22 -0
- data/lib/rubygems/tsort/lib/tsort.rb +452 -0
- data/lib/rubygems/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +29 -26
- data/lib/rubygems/unknown_command_spell_checker.rb +21 -0
- data/lib/rubygems/update_suggestion.rb +69 -0
- data/lib/rubygems/uri.rb +45 -30
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +42 -28
- data/lib/rubygems/util/licenses.rb +4 -2
- data/lib/rubygems/util.rb +12 -16
- data/lib/rubygems/validator.rb +6 -6
- data/lib/rubygems/version.rb +28 -17
- data/lib/rubygems/version_option.rb +5 -5
- data/lib/rubygems.rb +129 -117
- data/rubygems-update.gemspec +3 -3
- data/setup.rb +11 -16
- data/test/rubygems/alternate_cert.pem +14 -14
- data/test/rubygems/alternate_cert_32.pem +15 -15
- data/test/rubygems/alternate_key.pem +25 -25
- data/test/rubygems/bundler_test_gem.rb +419 -0
- data/test/rubygems/child_cert.pem +15 -16
- data/test/rubygems/child_cert_32.pem +15 -16
- data/test/rubygems/child_key.pem +25 -25
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +26 -26
- data/test/rubygems/expired_cert.pem +15 -15
- data/test/rubygems/future_cert.pem +15 -15
- data/test/rubygems/future_cert_32.pem +15 -15
- data/test/rubygems/grandchild_cert.pem +15 -16
- data/test/rubygems/grandchild_cert_32.pem +15 -16
- data/test/rubygems/grandchild_key.pem +25 -25
- data/test/rubygems/helper.rb +237 -207
- data/test/rubygems/installer_test_case.rb +13 -13
- data/test/rubygems/invalid_issuer_cert.pem +16 -16
- data/test/rubygems/invalid_issuer_cert_32.pem +16 -16
- data/test/rubygems/invalid_key.pem +25 -25
- data/test/rubygems/invalid_signer_cert.pem +15 -15
- data/test/rubygems/invalid_signer_cert_32.pem +15 -15
- data/test/rubygems/invalidchild_cert.pem +15 -16
- data/test/rubygems/invalidchild_cert_32.pem +15 -16
- data/test/rubygems/invalidchild_key.pem +25 -25
- data/test/rubygems/package/tar_test_case.rb +52 -17
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +1 -1
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +1 -1
- data/test/rubygems/private_key.pem +25 -25
- data/test/rubygems/public_cert.pem +16 -16
- data/test/rubygems/public_cert_32.pem +15 -15
- data/test/rubygems/public_key.pem +7 -7
- data/test/rubygems/rubygems_plugin.rb +2 -2
- data/test/rubygems/simple_gem.rb +1 -1
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +4 -4
- data/test/rubygems/test_bundled_ca.rb +11 -11
- data/test/rubygems/test_config.rb +5 -5
- data/test/rubygems/test_deprecate.rb +3 -3
- data/test/rubygems/test_exit.rb +17 -0
- data/test/rubygems/test_gem.rb +367 -757
- data/test/rubygems/test_gem_available_set.rb +21 -21
- data/test/rubygems/test_gem_bundler_version_finder.rb +27 -47
- data/test/rubygems/test_gem_command.rb +45 -45
- data/test/rubygems/test_gem_command_manager.rb +124 -27
- data/test/rubygems/test_gem_commands_build_command.rb +73 -63
- data/test/rubygems/test_gem_commands_cert_command.rb +105 -107
- data/test/rubygems/test_gem_commands_check_command.rb +4 -4
- data/test/rubygems/test_gem_commands_cleanup_command.rb +40 -40
- data/test/rubygems/test_gem_commands_contents_command.rb +28 -28
- data/test/rubygems/test_gem_commands_dependency_command.rb +36 -36
- data/test/rubygems/test_gem_commands_environment_command.rb +38 -14
- data/test/rubygems/test_gem_commands_exec_command.rb +851 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +159 -26
- data/test/rubygems/test_gem_commands_generate_index_command.rb +7 -7
- data/test/rubygems/test_gem_commands_help_command.rb +13 -13
- data/test/rubygems/test_gem_commands_info_command.rb +28 -2
- data/test/rubygems/test_gem_commands_install_command.rb +200 -132
- data/test/rubygems/test_gem_commands_list_command.rb +4 -4
- data/test/rubygems/test_gem_commands_lock_command.rb +10 -10
- data/test/rubygems/test_gem_commands_mirror.rb +2 -2
- data/test/rubygems/test_gem_commands_open_command.rb +5 -5
- data/test/rubygems/test_gem_commands_outdated_command.rb +9 -9
- data/test/rubygems/test_gem_commands_owner_command.rb +126 -45
- data/test/rubygems/test_gem_commands_pristine_command.rb +141 -92
- data/test/rubygems/test_gem_commands_push_command.rb +85 -59
- data/test/rubygems/test_gem_commands_query_command.rb +73 -73
- data/test/rubygems/test_gem_commands_search_command.rb +2 -2
- data/test/rubygems/test_gem_commands_server_command.rb +6 -48
- data/test/rubygems/test_gem_commands_setup_command.rb +169 -92
- data/test/rubygems/test_gem_commands_signin_command.rb +154 -26
- data/test/rubygems/test_gem_commands_signout_command.rb +3 -3
- data/test/rubygems/test_gem_commands_sources_command.rb +74 -25
- data/test/rubygems/test_gem_commands_specification_command.rb +32 -32
- data/test/rubygems/test_gem_commands_stale_command.rb +4 -4
- data/test/rubygems/test_gem_commands_uninstall_command.rb +99 -82
- data/test/rubygems/test_gem_commands_unpack_command.rb +31 -31
- data/test/rubygems/test_gem_commands_update_command.rb +202 -91
- data/test/rubygems/test_gem_commands_which_command.rb +6 -6
- data/test/rubygems/test_gem_commands_yank_command.rb +43 -43
- data/test/rubygems/test_gem_config_file.rb +93 -81
- data/test/rubygems/test_gem_dependency.rb +78 -80
- data/test/rubygems/test_gem_dependency_installer.rb +165 -165
- data/test/rubygems/test_gem_dependency_list.rb +47 -47
- data/test/rubygems/test_gem_dependency_resolution_error.rb +4 -4
- data/test/rubygems/test_gem_doctor.rb +26 -26
- data/test/rubygems/test_gem_ext_builder.rb +60 -62
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +8 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +233 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +27 -0
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +1 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +247 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +10 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +8 -0
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +51 -0
- data/test/rubygems/test_gem_ext_cargo_builder.rb +166 -0
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +33 -0
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +60 -0
- data/test/rubygems/test_gem_ext_cmake_builder.rb +17 -15
- data/test/rubygems/test_gem_ext_configure_builder.rb +13 -13
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +53 -50
- data/test/rubygems/test_gem_ext_rake_builder.rb +15 -15
- data/test/rubygems/test_gem_gem_runner.rb +13 -8
- data/test/rubygems/test_gem_gemcutter_utilities.rb +71 -65
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +4 -4
- data/test/rubygems/test_gem_indexer.rb +90 -67
- data/test/rubygems/test_gem_install_update_options.rb +18 -18
- data/test/rubygems/test_gem_installer.rb +511 -327
- data/test/rubygems/test_gem_local_remote_options.rb +10 -10
- data/test/rubygems/test_gem_name_tuple.rb +4 -4
- data/test/rubygems/test_gem_package.rb +246 -236
- data/test/rubygems/test_gem_package_old.rb +13 -13
- data/test/rubygems/test_gem_package_tar_header.rb +47 -47
- data/test/rubygems/test_gem_package_tar_reader.rb +55 -8
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +161 -16
- data/test/rubygems/test_gem_package_tar_writer.rb +76 -76
- data/test/rubygems/test_gem_package_task.rb +18 -18
- data/test/rubygems/test_gem_path_support.rb +15 -19
- data/test/rubygems/test_gem_platform.rb +335 -214
- data/test/rubygems/test_gem_rdoc.rb +14 -14
- data/test/rubygems/test_gem_remote_fetcher.rb +169 -154
- data/test/rubygems/test_gem_request.rb +65 -59
- data/test/rubygems/test_gem_request_connection_pools.rb +29 -29
- data/test/rubygems/test_gem_request_set.rb +100 -100
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +209 -211
- data/test/rubygems/test_gem_request_set_lockfile.rb +86 -86
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +58 -58
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +62 -62
- data/test/rubygems/test_gem_requirement.rb +47 -42
- data/test/rubygems/test_gem_resolver.rb +173 -106
- data/test/rubygems/test_gem_resolver_activation_request.rb +6 -6
- data/test/rubygems/test_gem_resolver_api_set.rb +33 -33
- data/test/rubygems/test_gem_resolver_api_specification.rb +47 -47
- data/test/rubygems/test_gem_resolver_best_set.rb +22 -22
- data/test/rubygems/test_gem_resolver_composed_set.rb +1 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +12 -12
- data/test/rubygems/test_gem_resolver_dependency_request.rb +15 -15
- data/test/rubygems/test_gem_resolver_git_set.rb +21 -21
- data/test/rubygems/test_gem_resolver_git_specification.rb +21 -21
- data/test/rubygems/test_gem_resolver_index_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_index_specification.rb +16 -16
- data/test/rubygems/test_gem_resolver_installed_specification.rb +5 -5
- data/test/rubygems/test_gem_resolver_installer_set.rb +79 -35
- data/test/rubygems/test_gem_resolver_local_specification.rb +7 -7
- data/test/rubygems/test_gem_resolver_lock_set.rb +12 -12
- data/test/rubygems/test_gem_resolver_lock_specification.rb +17 -17
- data/test/rubygems/test_gem_resolver_requirement_list.rb +1 -1
- data/test/rubygems/test_gem_resolver_specification.rb +8 -8
- data/test/rubygems/test_gem_resolver_vendor_set.rb +6 -6
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +10 -10
- data/test/rubygems/test_gem_security.rb +69 -69
- data/test/rubygems/test_gem_security_policy.rb +72 -72
- data/test/rubygems/test_gem_security_signer.rb +34 -34
- data/test/rubygems/test_gem_security_trust_dir.rb +6 -6
- data/test/rubygems/test_gem_silent_ui.rb +38 -32
- data/test/rubygems/test_gem_source.rb +44 -44
- data/test/rubygems/test_gem_source_fetch_problem.rb +9 -9
- data/test/rubygems/test_gem_source_git.rb +69 -62
- data/test/rubygems/test_gem_source_installed.rb +16 -16
- data/test/rubygems/test_gem_source_list.rb +5 -5
- data/test/rubygems/test_gem_source_local.rb +14 -14
- data/test/rubygems/test_gem_source_lock.rb +31 -31
- data/test/rubygems/test_gem_source_specific_file.rb +17 -17
- data/test/rubygems/test_gem_source_subpath_problem.rb +7 -7
- data/test/rubygems/test_gem_source_vendor.rb +13 -13
- data/test/rubygems/test_gem_spec_fetcher.rb +72 -72
- data/test/rubygems/test_gem_specification.rb +560 -493
- data/test/rubygems/test_gem_stream_ui.rb +20 -20
- data/test/rubygems/test_gem_stub_specification.rb +32 -48
- data/test/rubygems/test_gem_text.rb +7 -1
- data/test/rubygems/test_gem_uninstaller.rb +113 -113
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +3 -3
- data/test/rubygems/test_gem_update_suggestion.rb +208 -0
- data/test/rubygems/test_gem_uri.rb +4 -4
- data/test/rubygems/test_gem_uri_formatter.rb +14 -14
- data/test/rubygems/test_gem_util.rb +23 -23
- data/test/rubygems/test_gem_validator.rb +8 -8
- data/test/rubygems/test_gem_version.rb +27 -16
- data/test/rubygems/test_gem_version_option.rb +15 -15
- data/test/rubygems/test_kernel.rb +42 -60
- data/test/rubygems/test_project_sanity.rb +2 -2
- data/test/rubygems/test_remote_fetch_error.rb +6 -6
- data/test/rubygems/test_require.rb +132 -174
- data/test/rubygems/test_rubygems.rb +42 -12
- data/test/rubygems/utilities.rb +59 -37
- data/test/rubygems/wrong_key_cert.pem +15 -15
- data/test/rubygems/wrong_key_cert_32.pem +15 -15
- data/test/test_changelog_generator.rb +1 -0
- metadata +97 -41
- data/bundler/lib/bundler/dep_proxy.rb +0 -55
- data/bundler/lib/bundler/gemdeps.rb +0 -29
- data/bundler/lib/bundler/psyched_yaml.rb +0 -22
- data/bundler/lib/bundler/templates/gems.rb +0 -8
- data/bundler/lib/bundler/templates/newgem/travis.yml.tt +0 -6
- data/bundler/lib/bundler/vendor/molinillo/LICENSE +0 -9
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +0 -143
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/state.rb +0 -58
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -11
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +0 -154
- data/bundler/lib/bundler/version_ranges.rb +0 -122
- data/lib/rubygems/psych_additions.rb +0 -10
- data/lib/rubygems/server.rb +0 -882
- 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 -608
- /data/bundler/lib/bundler/templates/newgem/ext/newgem/{extconf.rb.tt → extconf-c.rb.tt} +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
require_relative
|
|
3
|
-
require_relative
|
|
4
|
-
require_relative
|
|
5
|
-
require_relative
|
|
6
|
-
require_relative
|
|
7
|
-
require_relative
|
|
8
|
-
require_relative
|
|
9
|
-
require_relative
|
|
10
|
-
require_relative
|
|
2
|
+
require_relative "../command"
|
|
3
|
+
require_relative "../command_manager"
|
|
4
|
+
require_relative "../dependency_installer"
|
|
5
|
+
require_relative "../install_update_options"
|
|
6
|
+
require_relative "../local_remote_options"
|
|
7
|
+
require_relative "../spec_fetcher"
|
|
8
|
+
require_relative "../version_option"
|
|
9
|
+
require_relative "../install_message" # must come before rdoc for messaging
|
|
10
|
+
require_relative "../rdoc"
|
|
11
11
|
|
|
12
12
|
class Gem::Commands::UpdateCommand < Gem::Command
|
|
13
13
|
include Gem::InstallUpdateOptions
|
|
@@ -19,20 +19,24 @@ class Gem::Commands::UpdateCommand < Gem::Command
|
|
|
19
19
|
attr_reader :updated # :nodoc:
|
|
20
20
|
|
|
21
21
|
def initialize
|
|
22
|
-
|
|
23
|
-
:
|
|
24
|
-
|
|
22
|
+
options = {
|
|
23
|
+
:force => false,
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
options.merge!(install_update_options)
|
|
27
|
+
|
|
28
|
+
super "update", "Update installed gems to the latest version", options
|
|
25
29
|
|
|
26
30
|
add_install_update_options
|
|
27
31
|
|
|
28
|
-
OptionParser.accept Gem::Version do |value|
|
|
32
|
+
Gem::OptionParser.accept Gem::Version do |value|
|
|
29
33
|
Gem::Version.new value
|
|
30
34
|
|
|
31
35
|
value
|
|
32
36
|
end
|
|
33
37
|
|
|
34
|
-
add_option(
|
|
35
|
-
|
|
38
|
+
add_option("--system [VERSION]", Gem::Version,
|
|
39
|
+
"Update the RubyGems system software") do |value, options|
|
|
36
40
|
value = true unless value
|
|
37
41
|
|
|
38
42
|
options[:system] = value
|
|
@@ -51,7 +55,8 @@ class Gem::Commands::UpdateCommand < Gem::Command
|
|
|
51
55
|
end
|
|
52
56
|
|
|
53
57
|
def defaults_str # :nodoc:
|
|
54
|
-
"--
|
|
58
|
+
"--no-force --install-dir #{Gem.dir}\n" +
|
|
59
|
+
install_update_defaults_str
|
|
55
60
|
end
|
|
56
61
|
|
|
57
62
|
def description # :nodoc:
|
|
@@ -113,15 +118,19 @@ command to remove old versions.
|
|
|
113
118
|
|
|
114
119
|
updated = update_gems gems_to_update
|
|
115
120
|
|
|
121
|
+
installed_names = highest_installed_gems.keys
|
|
116
122
|
updated_names = updated.map {|spec| spec.name }
|
|
117
123
|
not_updated_names = options[:args].uniq - updated_names
|
|
124
|
+
not_installed_names = not_updated_names - installed_names
|
|
125
|
+
up_to_date_names = not_updated_names - not_installed_names
|
|
118
126
|
|
|
119
127
|
if updated.empty?
|
|
120
128
|
say "Nothing to update"
|
|
121
129
|
else
|
|
122
130
|
say "Gems updated: #{updated_names.join(' ')}"
|
|
123
|
-
say "Gems already up-to-date: #{not_updated_names.join(' ')}" unless not_updated_names.empty?
|
|
124
131
|
end
|
|
132
|
+
say "Gems already up-to-date: #{up_to_date_names.join(' ')}" unless up_to_date_names.empty?
|
|
133
|
+
say "Gems not currently installed: #{not_installed_names.join(' ')}" unless not_installed_names.empty?
|
|
125
134
|
end
|
|
126
135
|
|
|
127
136
|
def fetch_remote_gems(spec) # :nodoc:
|
|
@@ -146,7 +155,7 @@ command to remove old versions.
|
|
|
146
155
|
Gem::Specification.dirs = Gem.user_dir if options[:user_install]
|
|
147
156
|
|
|
148
157
|
Gem::Specification.each do |spec|
|
|
149
|
-
if hig[spec.name].nil?
|
|
158
|
+
if hig[spec.name].nil? || hig[spec.name].version < spec.version
|
|
150
159
|
hig[spec.name] = spec
|
|
151
160
|
end
|
|
152
161
|
end
|
|
@@ -157,27 +166,23 @@ command to remove old versions.
|
|
|
157
166
|
def highest_remote_name_tuple(spec) # :nodoc:
|
|
158
167
|
spec_tuples = fetch_remote_gems spec
|
|
159
168
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
highest_remote_gem = matching_gems.max
|
|
165
|
-
|
|
166
|
-
highest_remote_gem ||= [Gem::NameTuple.null]
|
|
169
|
+
highest_remote_gem = spec_tuples.max
|
|
170
|
+
return unless highest_remote_gem
|
|
167
171
|
|
|
168
172
|
highest_remote_gem.first
|
|
169
173
|
end
|
|
170
174
|
|
|
171
|
-
def install_rubygems(
|
|
175
|
+
def install_rubygems(spec) # :nodoc:
|
|
172
176
|
args = update_rubygems_arguments
|
|
177
|
+
version = spec.version
|
|
173
178
|
|
|
174
|
-
update_dir = File.join
|
|
179
|
+
update_dir = File.join spec.base_dir, "gems", "rubygems-update-#{version}"
|
|
175
180
|
|
|
176
181
|
Dir.chdir update_dir do
|
|
177
182
|
say "Installing RubyGems #{version}" unless options[:silent]
|
|
178
183
|
|
|
179
184
|
installed = preparing_gem_layout_for(version) do
|
|
180
|
-
system Gem.ruby,
|
|
185
|
+
system Gem.ruby, "--disable-gems", "setup.rb", *args
|
|
181
186
|
end
|
|
182
187
|
|
|
183
188
|
say "RubyGems system software updated" if installed unless options[:silent]
|
|
@@ -208,30 +213,22 @@ command to remove old versions.
|
|
|
208
213
|
version = options[:system]
|
|
209
214
|
update_latest = version == true
|
|
210
215
|
|
|
211
|
-
|
|
212
|
-
version = Gem::Version.new Gem::VERSION
|
|
213
|
-
requirement = Gem::Requirement.new ">= #{Gem::VERSION}"
|
|
214
|
-
else
|
|
216
|
+
unless update_latest
|
|
215
217
|
version = Gem::Version.new version
|
|
216
218
|
requirement = Gem::Requirement.new version
|
|
219
|
+
|
|
220
|
+
return version, requirement
|
|
217
221
|
end
|
|
218
222
|
|
|
223
|
+
version = Gem::Version.new Gem::VERSION
|
|
224
|
+
requirement = Gem::Requirement.new ">= #{Gem::VERSION}"
|
|
225
|
+
|
|
219
226
|
rubygems_update = Gem::Specification.new
|
|
220
|
-
rubygems_update.name =
|
|
227
|
+
rubygems_update.name = "rubygems-update"
|
|
221
228
|
rubygems_update.version = version
|
|
222
229
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
gems_to_update = which_to_update hig, options[:args], :system
|
|
228
|
-
up_ver = gems_to_update.first.version
|
|
229
|
-
|
|
230
|
-
target = if update_latest
|
|
231
|
-
up_ver
|
|
232
|
-
else
|
|
233
|
-
version
|
|
234
|
-
end
|
|
230
|
+
highest_remote_tup = highest_remote_name_tuple(rubygems_update)
|
|
231
|
+
target = highest_remote_tup ? highest_remote_tup.version : version
|
|
235
232
|
|
|
236
233
|
return target, requirement
|
|
237
234
|
end
|
|
@@ -281,40 +278,36 @@ command to remove old versions.
|
|
|
281
278
|
|
|
282
279
|
check_oldest_rubygems version
|
|
283
280
|
|
|
284
|
-
|
|
281
|
+
installed_gems = Gem::Specification.find_all_by_name "rubygems-update", requirement
|
|
282
|
+
installed_gems = update_gem("rubygems-update", version) if installed_gems.empty? || installed_gems.first.version != version
|
|
283
|
+
return if installed_gems.empty?
|
|
285
284
|
|
|
286
|
-
installed_gems
|
|
287
|
-
version = installed_gems.first.version
|
|
288
|
-
|
|
289
|
-
install_rubygems version
|
|
285
|
+
install_rubygems installed_gems.first
|
|
290
286
|
end
|
|
291
287
|
|
|
292
288
|
def update_rubygems_arguments # :nodoc:
|
|
293
289
|
args = []
|
|
294
|
-
args <<
|
|
295
|
-
args <<
|
|
296
|
-
args <<
|
|
297
|
-
args <<
|
|
298
|
-
args <<
|
|
299
|
-
options[:system] == true
|
|
300
|
-
|
|
290
|
+
args << "--silent" if options[:silent]
|
|
291
|
+
args << "--prefix" << Gem.prefix if Gem.prefix
|
|
292
|
+
args << "--no-document" unless options[:document].include?("rdoc") || options[:document].include?("ri")
|
|
293
|
+
args << "--no-format-executable" if options[:no_format_executable]
|
|
294
|
+
args << "--previous-version" << Gem::VERSION if
|
|
295
|
+
options[:system] == true ||
|
|
296
|
+
Gem::Version.new(options[:system]) >= Gem::Version.new(2)
|
|
301
297
|
args
|
|
302
298
|
end
|
|
303
299
|
|
|
304
|
-
def which_to_update(highest_installed_gems, gem_names
|
|
300
|
+
def which_to_update(highest_installed_gems, gem_names)
|
|
305
301
|
result = []
|
|
306
302
|
|
|
307
303
|
highest_installed_gems.each do |l_name, l_spec|
|
|
308
|
-
next if
|
|
304
|
+
next if !gem_names.empty? &&
|
|
309
305
|
gem_names.none? {|name| name == l_spec.name }
|
|
310
306
|
|
|
311
307
|
highest_remote_tup = highest_remote_name_tuple l_spec
|
|
312
|
-
|
|
313
|
-
highest_installed_ver = l_spec.version
|
|
308
|
+
next unless highest_remote_tup
|
|
314
309
|
|
|
315
|
-
|
|
316
|
-
result << Gem::NameTuple.new(l_spec.name, [highest_installed_ver, highest_remote_ver].max, highest_remote_tup.platform)
|
|
317
|
-
end
|
|
310
|
+
result << highest_remote_tup
|
|
318
311
|
end
|
|
319
312
|
|
|
320
313
|
result
|
|
@@ -330,18 +323,14 @@ command to remove old versions.
|
|
|
330
323
|
#
|
|
331
324
|
def oldest_supported_version
|
|
332
325
|
@oldest_supported_version ||=
|
|
333
|
-
if Gem.ruby_version > Gem::Version.new("3.
|
|
326
|
+
if Gem.ruby_version > Gem::Version.new("3.1.a")
|
|
327
|
+
Gem::Version.new("3.3.3")
|
|
328
|
+
elsif Gem.ruby_version > Gem::Version.new("3.0.a")
|
|
334
329
|
Gem::Version.new("3.2.3")
|
|
335
330
|
elsif Gem.ruby_version > Gem::Version.new("2.7.a")
|
|
336
331
|
Gem::Version.new("3.1.2")
|
|
337
|
-
elsif Gem.ruby_version > Gem::Version.new("2.6.a")
|
|
338
|
-
Gem::Version.new("3.0.1")
|
|
339
|
-
elsif Gem.ruby_version > Gem::Version.new("2.5.a")
|
|
340
|
-
Gem::Version.new("2.7.3")
|
|
341
|
-
elsif Gem.ruby_version > Gem::Version.new("2.4.a")
|
|
342
|
-
Gem::Version.new("2.6.8")
|
|
343
332
|
else
|
|
344
|
-
Gem::Version.new("
|
|
333
|
+
Gem::Version.new("3.0.1")
|
|
345
334
|
end
|
|
346
335
|
end
|
|
347
336
|
end
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
require_relative
|
|
2
|
+
require_relative "../command"
|
|
3
3
|
|
|
4
4
|
class Gem::Commands::WhichCommand < Gem::Command
|
|
5
5
|
def initialize
|
|
6
|
-
super
|
|
6
|
+
super "which", "Find the location of a library file you can require",
|
|
7
7
|
:search_gems_first => false, :show_all => false
|
|
8
8
|
|
|
9
|
-
add_option
|
|
9
|
+
add_option "-a", "--[no-]all", "show all matching files" do |show_all, options|
|
|
10
10
|
options[:show_all] = show_all
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
add_option
|
|
14
|
-
|
|
13
|
+
add_option "-g", "--[no-]gems-first",
|
|
14
|
+
"search gems before non-gems" do |gems_first, options|
|
|
15
15
|
options[:search_gems_first] = gems_first
|
|
16
16
|
end
|
|
17
17
|
end
|
|
@@ -39,7 +39,7 @@ requiring to see why it does not behave as you expect.
|
|
|
39
39
|
found = true
|
|
40
40
|
|
|
41
41
|
options[:args].each do |arg|
|
|
42
|
-
arg = arg.sub(/#{Regexp.union(*Gem.suffixes)}$/,
|
|
42
|
+
arg = arg.sub(/#{Regexp.union(*Gem.suffixes)}$/, "")
|
|
43
43
|
dirs = $LOAD_PATH
|
|
44
44
|
|
|
45
45
|
spec = Gem::Specification.find_by_path arg
|
|
@@ -71,7 +71,7 @@ requiring to see why it does not behave as you expect.
|
|
|
71
71
|
dirs.each do |dir|
|
|
72
72
|
Gem.suffixes.each do |ext|
|
|
73
73
|
full_path = File.join dir, "#{package_name}#{ext}"
|
|
74
|
-
if File.exist?
|
|
74
|
+
if File.exist?(full_path) && !File.directory?(full_path)
|
|
75
75
|
result << full_path
|
|
76
76
|
return result unless options[:show_all]
|
|
77
77
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
require_relative
|
|
3
|
-
require_relative
|
|
4
|
-
require_relative
|
|
5
|
-
require_relative
|
|
2
|
+
require_relative "../command"
|
|
3
|
+
require_relative "../local_remote_options"
|
|
4
|
+
require_relative "../version_option"
|
|
5
|
+
require_relative "../gemcutter_utilities"
|
|
6
6
|
|
|
7
7
|
class Gem::Commands::YankCommand < Gem::Command
|
|
8
8
|
include Gem::LocalRemoteOptions
|
|
@@ -28,15 +28,15 @@ data you will need to change them immediately and yank your gem.
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def initialize
|
|
31
|
-
super
|
|
31
|
+
super "yank", "Remove a pushed gem from the index"
|
|
32
32
|
|
|
33
33
|
add_version_option("remove")
|
|
34
34
|
add_platform_option("remove")
|
|
35
35
|
add_otp_option
|
|
36
36
|
|
|
37
|
-
add_option(
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
add_option("--host HOST",
|
|
38
|
+
"Yank from another gemcutter-compatible host",
|
|
39
|
+
" (e.g. https://rubygems.org)") do |value, options|
|
|
40
40
|
options[:host] = value
|
|
41
41
|
end
|
|
42
42
|
|
|
@@ -76,10 +76,10 @@ data you will need to change them immediately and yank your gem.
|
|
|
76
76
|
request.add_field("Authorization", api_key)
|
|
77
77
|
|
|
78
78
|
data = {
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
"gem_name" => name,
|
|
80
|
+
"version" => version,
|
|
81
81
|
}
|
|
82
|
-
data[
|
|
82
|
+
data["platform"] = platform if platform
|
|
83
83
|
|
|
84
84
|
request.set_form_data data
|
|
85
85
|
end
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
# :stopdoc:
|
|
3
2
|
|
|
4
3
|
#--
|
|
5
4
|
# This file contains all sorts of little compatibility hacks that we've
|
|
@@ -8,10 +7,13 @@
|
|
|
8
7
|
#
|
|
9
8
|
# Ruby 1.9.x has introduced some things that are awkward, and we need to
|
|
10
9
|
# support them, so we define some constants to use later.
|
|
10
|
+
#
|
|
11
|
+
# TODO remove at RubyGems 4
|
|
11
12
|
#++
|
|
12
13
|
|
|
13
|
-
# TODO remove at RubyGems 4
|
|
14
14
|
module Gem
|
|
15
|
+
# :stopdoc:
|
|
16
|
+
|
|
15
17
|
RubyGemsVersion = VERSION
|
|
16
18
|
deprecate_constant(:RubyGemsVersion)
|
|
17
19
|
|
data/lib/rubygems/config_file.rb
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
# See LICENSE.txt for permissions.
|
|
6
6
|
#++
|
|
7
7
|
|
|
8
|
-
require_relative
|
|
9
|
-
require
|
|
8
|
+
require_relative "user_interaction"
|
|
9
|
+
require "rbconfig"
|
|
10
10
|
|
|
11
11
|
##
|
|
12
12
|
# Gem::ConfigFile RubyGems options and gem command options from gemrc.
|
|
@@ -39,7 +39,7 @@ require 'rbconfig'
|
|
|
39
39
|
class Gem::ConfigFile
|
|
40
40
|
include Gem::UserInteraction
|
|
41
41
|
|
|
42
|
-
DEFAULT_BACKTRACE =
|
|
42
|
+
DEFAULT_BACKTRACE = true
|
|
43
43
|
DEFAULT_BULK_THRESHOLD = 1000
|
|
44
44
|
DEFAULT_VERBOSITY = true
|
|
45
45
|
DEFAULT_UPDATE_SOURCES = true
|
|
@@ -71,7 +71,7 @@ class Gem::ConfigFile
|
|
|
71
71
|
|
|
72
72
|
# :startdoc:
|
|
73
73
|
|
|
74
|
-
SYSTEM_WIDE_CONFIG_FILE = File.join SYSTEM_CONFIG_PATH,
|
|
74
|
+
SYSTEM_WIDE_CONFIG_FILE = File.join SYSTEM_CONFIG_PATH, "gemrc"
|
|
75
75
|
|
|
76
76
|
##
|
|
77
77
|
# List of arguments supplied to the config file object.
|
|
@@ -182,20 +182,20 @@ class Gem::ConfigFile
|
|
|
182
182
|
@update_sources = DEFAULT_UPDATE_SOURCES
|
|
183
183
|
@concurrent_downloads = DEFAULT_CONCURRENT_DOWNLOADS
|
|
184
184
|
@cert_expiration_length_days = DEFAULT_CERT_EXPIRATION_LENGTH_DAYS
|
|
185
|
-
@ipv4_fallback_enabled = ENV[
|
|
185
|
+
@ipv4_fallback_enabled = ENV["IPV4_FALLBACK_ENABLED"] == "true" || DEFAULT_IPV4_FALLBACK_ENABLED
|
|
186
186
|
|
|
187
187
|
operating_system_config = Marshal.load Marshal.dump(OPERATING_SYSTEM_DEFAULTS)
|
|
188
188
|
platform_config = Marshal.load Marshal.dump(PLATFORM_DEFAULTS)
|
|
189
189
|
system_config = load_file SYSTEM_WIDE_CONFIG_FILE
|
|
190
190
|
user_config = load_file config_file_name.dup.tap(&Gem::UNTAINT)
|
|
191
191
|
|
|
192
|
-
environment_config = (ENV[
|
|
192
|
+
environment_config = (ENV["GEMRC"] || "")
|
|
193
193
|
.split(File::PATH_SEPARATOR).inject({}) do |result, file|
|
|
194
194
|
result.merge load_file file
|
|
195
195
|
end
|
|
196
196
|
|
|
197
197
|
@hash = operating_system_config.merge platform_config
|
|
198
|
-
unless args.index
|
|
198
|
+
unless args.index "--norc"
|
|
199
199
|
@hash = @hash.merge system_config
|
|
200
200
|
@hash = @hash.merge user_config
|
|
201
201
|
@hash = @hash.merge environment_config
|
|
@@ -269,7 +269,7 @@ if you believe they were disclosed to a third party.
|
|
|
269
269
|
# Location of RubyGems.org credentials
|
|
270
270
|
|
|
271
271
|
def credentials_path
|
|
272
|
-
credentials = File.join Gem.user_home,
|
|
272
|
+
credentials = File.join Gem.user_home, ".gem", "credentials"
|
|
273
273
|
if File.exist? credentials
|
|
274
274
|
credentials
|
|
275
275
|
else
|
|
@@ -281,10 +281,10 @@ if you believe they were disclosed to a third party.
|
|
|
281
281
|
check_credentials_permissions
|
|
282
282
|
|
|
283
283
|
@api_keys = if File.exist? credentials_path
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
284
|
+
load_file(credentials_path)
|
|
285
|
+
else
|
|
286
|
+
@hash
|
|
287
|
+
end
|
|
288
288
|
|
|
289
289
|
if @api_keys.key? :rubygems_api_key
|
|
290
290
|
@rubygems_api_key = @api_keys[:rubygems_api_key]
|
|
@@ -320,13 +320,13 @@ if you believe they were disclosed to a third party.
|
|
|
320
320
|
config = load_file(credentials_path).merge(host => api_key)
|
|
321
321
|
|
|
322
322
|
dirname = File.dirname credentials_path
|
|
323
|
-
require
|
|
323
|
+
require "fileutils"
|
|
324
324
|
FileUtils.mkdir_p(dirname)
|
|
325
325
|
|
|
326
326
|
Gem.load_yaml
|
|
327
327
|
|
|
328
328
|
permissions = 0600 & (~File.umask)
|
|
329
|
-
File.open(credentials_path,
|
|
329
|
+
File.open(credentials_path, "w", permissions) do |f|
|
|
330
330
|
f.write config.to_yaml
|
|
331
331
|
end
|
|
332
332
|
|
|
@@ -368,7 +368,21 @@ if you believe they were disclosed to a third party.
|
|
|
368
368
|
|
|
369
369
|
# True if the backtrace option has been specified, or debug is on.
|
|
370
370
|
def backtrace
|
|
371
|
-
@backtrace
|
|
371
|
+
@backtrace || $DEBUG
|
|
372
|
+
end
|
|
373
|
+
|
|
374
|
+
# Check state file is writable. Creates empty file if not present to ensure we can write to it.
|
|
375
|
+
def state_file_writable?
|
|
376
|
+
if File.exist?(state_file_name)
|
|
377
|
+
File.writable?(state_file_name)
|
|
378
|
+
else
|
|
379
|
+
require "fileutils"
|
|
380
|
+
FileUtils.mkdir_p File.dirname(state_file_name)
|
|
381
|
+
File.open(state_file_name, "w") {}
|
|
382
|
+
true
|
|
383
|
+
end
|
|
384
|
+
rescue Errno::EACCES
|
|
385
|
+
false
|
|
372
386
|
end
|
|
373
387
|
|
|
374
388
|
# The name of the configuration file.
|
|
@@ -376,6 +390,25 @@ if you believe they were disclosed to a third party.
|
|
|
376
390
|
@config_file_name || Gem.config_file
|
|
377
391
|
end
|
|
378
392
|
|
|
393
|
+
# The name of the state file.
|
|
394
|
+
def state_file_name
|
|
395
|
+
Gem.state_file
|
|
396
|
+
end
|
|
397
|
+
|
|
398
|
+
# Reads time of last update check from state file
|
|
399
|
+
def last_update_check
|
|
400
|
+
if File.readable?(state_file_name)
|
|
401
|
+
File.read(state_file_name).to_i
|
|
402
|
+
else
|
|
403
|
+
0
|
|
404
|
+
end
|
|
405
|
+
end
|
|
406
|
+
|
|
407
|
+
# Writes time of last update check to state file
|
|
408
|
+
def last_update_check=(timestamp)
|
|
409
|
+
File.write(state_file_name, timestamp.to_s) if state_file_writable?
|
|
410
|
+
end
|
|
411
|
+
|
|
379
412
|
# Delegates to @hash
|
|
380
413
|
def each(&block)
|
|
381
414
|
hash = @hash.dup
|
|
@@ -389,7 +422,7 @@ if you believe they were disclosed to a third party.
|
|
|
389
422
|
yield :backtrace, @backtrace
|
|
390
423
|
yield :bulk_threshold, @bulk_threshold
|
|
391
424
|
|
|
392
|
-
yield
|
|
425
|
+
yield "config_file_name", @config_file_name if @config_file_name
|
|
393
426
|
|
|
394
427
|
hash.each(&block)
|
|
395
428
|
end
|
|
@@ -405,7 +438,7 @@ if you believe they were disclosed to a third party.
|
|
|
405
438
|
when /^--debug$/ then
|
|
406
439
|
$DEBUG = true
|
|
407
440
|
|
|
408
|
-
warn
|
|
441
|
+
warn "NOTE: Debugging mode prints all exceptions even when rescued"
|
|
409
442
|
else
|
|
410
443
|
@args << arg
|
|
411
444
|
end
|
|
@@ -444,7 +477,7 @@ if you believe they were disclosed to a third party.
|
|
|
444
477
|
@hash[:ssl_client_cert] if @hash.key? :ssl_client_cert
|
|
445
478
|
|
|
446
479
|
keys = yaml_hash.keys.map {|key| key.to_s }
|
|
447
|
-
keys <<
|
|
480
|
+
keys << "debug"
|
|
448
481
|
re = Regexp.union(*keys)
|
|
449
482
|
|
|
450
483
|
@hash.each do |key, value|
|
|
@@ -458,10 +491,10 @@ if you believe they were disclosed to a third party.
|
|
|
458
491
|
|
|
459
492
|
# Writes out this config file, replacing its source.
|
|
460
493
|
def write
|
|
461
|
-
require
|
|
494
|
+
require "fileutils"
|
|
462
495
|
FileUtils.mkdir_p File.dirname(config_file_name)
|
|
463
496
|
|
|
464
|
-
File.open config_file_name,
|
|
497
|
+
File.open config_file_name, "w" do |io|
|
|
465
498
|
io.write to_yaml
|
|
466
499
|
end
|
|
467
500
|
end
|
|
@@ -477,11 +510,11 @@ if you believe they were disclosed to a third party.
|
|
|
477
510
|
end
|
|
478
511
|
|
|
479
512
|
def ==(other) # :nodoc:
|
|
480
|
-
self.class === other
|
|
481
|
-
@backtrace == other.backtrace
|
|
482
|
-
@bulk_threshold == other.bulk_threshold
|
|
483
|
-
@verbose == other.verbose
|
|
484
|
-
@update_sources == other.update_sources
|
|
513
|
+
self.class === other &&
|
|
514
|
+
@backtrace == other.backtrace &&
|
|
515
|
+
@bulk_threshold == other.bulk_threshold &&
|
|
516
|
+
@verbose == other.verbose &&
|
|
517
|
+
@update_sources == other.update_sources &&
|
|
485
518
|
@hash == other.hash
|
|
486
519
|
end
|
|
487
520
|
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
##
|
|
3
|
-
# RubyGems adds the #gem method to allow activation of specific gem versions
|
|
4
|
-
# and overrides the #require method on Kernel to make gems appear as if they
|
|
5
|
-
# live on the <code>$LOAD_PATH</code>. See the documentation of these methods
|
|
6
|
-
# for further detail.
|
|
7
2
|
|
|
8
3
|
module Kernel
|
|
9
4
|
|
|
@@ -39,7 +34,7 @@ module Kernel
|
|
|
39
34
|
# GEM_SKIP=libA:libB ruby -I../libA -I../libB ./mycode.rb
|
|
40
35
|
|
|
41
36
|
def gem(gem_name, *requirements) # :doc:
|
|
42
|
-
skip_list = (ENV[
|
|
37
|
+
skip_list = (ENV["GEM_SKIP"] || "").split(/:/)
|
|
43
38
|
raise Gem::LoadError, "skipping #{gem_name}" if skip_list.include? gem_name
|
|
44
39
|
|
|
45
40
|
if gem_name.kind_of? Gem::Dependency
|