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
data/test/rubygems/helper.rb
CHANGED
|
@@ -1,53 +1,28 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
|
|
5
|
-
# If bundler gemspec exists, add to stubs
|
|
6
|
-
bundler_gemspec = File.expand_path("../../../bundler/bundler.gemspec", __FILE__)
|
|
7
|
-
if File.exist?(bundler_gemspec)
|
|
8
|
-
Gem::Specification.dirs.unshift File.dirname(bundler_gemspec)
|
|
9
|
-
Gem::Specification.class_variable_set :@@stubs, nil
|
|
10
|
-
Gem::Specification.stubs
|
|
11
|
-
Gem::Specification.dirs.shift
|
|
12
|
-
end
|
|
3
|
+
require "rubygems"
|
|
13
4
|
|
|
14
5
|
begin
|
|
15
|
-
gem
|
|
6
|
+
gem "test-unit", "~> 3.0"
|
|
16
7
|
rescue Gem::LoadError
|
|
17
8
|
end
|
|
18
9
|
|
|
19
|
-
|
|
20
|
-
require 'simplecov'
|
|
21
|
-
SimpleCov.start do
|
|
22
|
-
add_filter "/test/"
|
|
23
|
-
add_filter "/bundler/"
|
|
24
|
-
add_filter "/lib/rubygems/resolver/molinillo"
|
|
25
|
-
end
|
|
26
|
-
rescue LoadError
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
if File.exist?(bundler_gemspec)
|
|
30
|
-
require_relative '../../bundler/lib/bundler'
|
|
31
|
-
else
|
|
32
|
-
require 'bundler'
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
require 'test/unit'
|
|
10
|
+
require "test/unit"
|
|
36
11
|
|
|
37
12
|
ENV["JARS_SKIP"] = "true" if Gem.java_platform? # avoid unnecessary and noisy `jar-dependencies` post install hook
|
|
38
13
|
|
|
39
|
-
require
|
|
14
|
+
require "rubygems/deprecate"
|
|
40
15
|
|
|
41
|
-
require
|
|
42
|
-
require
|
|
43
|
-
require
|
|
44
|
-
require
|
|
45
|
-
require
|
|
46
|
-
require
|
|
47
|
-
require
|
|
48
|
-
require
|
|
49
|
-
require
|
|
50
|
-
require
|
|
16
|
+
require "fileutils"
|
|
17
|
+
require "pathname"
|
|
18
|
+
require "pp"
|
|
19
|
+
require "rubygems/package"
|
|
20
|
+
require "shellwords"
|
|
21
|
+
require "tmpdir"
|
|
22
|
+
require "uri"
|
|
23
|
+
require "zlib"
|
|
24
|
+
require "benchmark" # stdlib
|
|
25
|
+
require "rubygems/mock_gem_ui"
|
|
51
26
|
|
|
52
27
|
module Gem
|
|
53
28
|
|
|
@@ -129,6 +104,12 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
129
104
|
assert File.directory?(path), msg
|
|
130
105
|
end
|
|
131
106
|
|
|
107
|
+
def refute_directory_exists(path, msg = nil)
|
|
108
|
+
msg = build_message(msg, "Expected path '#{path}' not to be a directory")
|
|
109
|
+
assert_path_not_exist path
|
|
110
|
+
refute File.directory?(path), msg
|
|
111
|
+
end
|
|
112
|
+
|
|
132
113
|
# https://github.com/seattlerb/minitest/blob/21d9e804b63c619f602f3f4ece6c71b48974707a/lib/minitest/assertions.rb#L188
|
|
133
114
|
def _synchronize
|
|
134
115
|
yield
|
|
@@ -153,15 +134,13 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
153
134
|
|
|
154
135
|
return captured_stdout.read, captured_stderr.read
|
|
155
136
|
ensure
|
|
156
|
-
captured_stdout.unlink
|
|
157
|
-
captured_stderr.unlink
|
|
158
137
|
$stdout.reopen orig_stdout
|
|
159
138
|
$stderr.reopen orig_stderr
|
|
160
139
|
|
|
161
140
|
orig_stdout.close
|
|
162
141
|
orig_stderr.close
|
|
163
|
-
captured_stdout.close
|
|
164
|
-
captured_stderr.close
|
|
142
|
+
captured_stdout.close!
|
|
143
|
+
captured_stderr.close!
|
|
165
144
|
end
|
|
166
145
|
end
|
|
167
146
|
end
|
|
@@ -171,15 +150,15 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
171
150
|
# the original value when the block ends
|
|
172
151
|
|
|
173
152
|
def enable_shared(value)
|
|
174
|
-
enable_shared = RbConfig::CONFIG[
|
|
175
|
-
RbConfig::CONFIG[
|
|
153
|
+
enable_shared = RbConfig::CONFIG["ENABLE_SHARED"]
|
|
154
|
+
RbConfig::CONFIG["ENABLE_SHARED"] = value
|
|
176
155
|
|
|
177
156
|
yield
|
|
178
157
|
ensure
|
|
179
158
|
if enable_shared
|
|
180
|
-
RbConfig::CONFIG[
|
|
159
|
+
RbConfig::CONFIG["ENABLE_SHARED"] = enable_shared
|
|
181
160
|
else
|
|
182
|
-
RbConfig::CONFIG.delete
|
|
161
|
+
RbConfig::CONFIG.delete "ENABLE_SHARED"
|
|
183
162
|
end
|
|
184
163
|
end
|
|
185
164
|
|
|
@@ -188,20 +167,20 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
188
167
|
# original value when the block ends
|
|
189
168
|
#
|
|
190
169
|
def vendordir(value)
|
|
191
|
-
vendordir = RbConfig::CONFIG[
|
|
170
|
+
vendordir = RbConfig::CONFIG["vendordir"]
|
|
192
171
|
|
|
193
172
|
if value
|
|
194
|
-
RbConfig::CONFIG[
|
|
173
|
+
RbConfig::CONFIG["vendordir"] = value
|
|
195
174
|
else
|
|
196
|
-
RbConfig::CONFIG.delete
|
|
175
|
+
RbConfig::CONFIG.delete "vendordir"
|
|
197
176
|
end
|
|
198
177
|
|
|
199
178
|
yield
|
|
200
179
|
ensure
|
|
201
180
|
if vendordir
|
|
202
|
-
RbConfig::CONFIG[
|
|
181
|
+
RbConfig::CONFIG["vendordir"] = vendordir
|
|
203
182
|
else
|
|
204
|
-
RbConfig::CONFIG.delete
|
|
183
|
+
RbConfig::CONFIG.delete "vendordir"
|
|
205
184
|
end
|
|
206
185
|
end
|
|
207
186
|
|
|
@@ -211,21 +190,21 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
211
190
|
#
|
|
212
191
|
def bindir(value)
|
|
213
192
|
with_clean_path_to_ruby do
|
|
214
|
-
bindir = RbConfig::CONFIG[
|
|
193
|
+
bindir = RbConfig::CONFIG["bindir"]
|
|
215
194
|
|
|
216
195
|
if value
|
|
217
|
-
RbConfig::CONFIG[
|
|
196
|
+
RbConfig::CONFIG["bindir"] = value
|
|
218
197
|
else
|
|
219
|
-
RbConfig::CONFIG.delete
|
|
198
|
+
RbConfig::CONFIG.delete "bindir"
|
|
220
199
|
end
|
|
221
200
|
|
|
222
201
|
begin
|
|
223
202
|
yield
|
|
224
203
|
ensure
|
|
225
204
|
if bindir
|
|
226
|
-
RbConfig::CONFIG[
|
|
205
|
+
RbConfig::CONFIG["bindir"] = bindir
|
|
227
206
|
else
|
|
228
|
-
RbConfig::CONFIG.delete
|
|
207
|
+
RbConfig::CONFIG.delete "bindir"
|
|
229
208
|
end
|
|
230
209
|
end
|
|
231
210
|
end
|
|
@@ -236,20 +215,20 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
236
215
|
# original value when the block ends
|
|
237
216
|
#
|
|
238
217
|
def exeext(value)
|
|
239
|
-
exeext = RbConfig::CONFIG[
|
|
218
|
+
exeext = RbConfig::CONFIG["EXEEXT"]
|
|
240
219
|
|
|
241
220
|
if value
|
|
242
|
-
RbConfig::CONFIG[
|
|
221
|
+
RbConfig::CONFIG["EXEEXT"] = value
|
|
243
222
|
else
|
|
244
|
-
RbConfig::CONFIG.delete
|
|
223
|
+
RbConfig::CONFIG.delete "EXEEXT"
|
|
245
224
|
end
|
|
246
225
|
|
|
247
226
|
yield
|
|
248
227
|
ensure
|
|
249
228
|
if exeext
|
|
250
|
-
RbConfig::CONFIG[
|
|
229
|
+
RbConfig::CONFIG["EXEEXT"] = exeext
|
|
251
230
|
else
|
|
252
|
-
RbConfig::CONFIG.delete
|
|
231
|
+
RbConfig::CONFIG.delete "EXEEXT"
|
|
253
232
|
end
|
|
254
233
|
end
|
|
255
234
|
|
|
@@ -257,52 +236,45 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
257
236
|
output.scan(/^#{Regexp.escape make_command}(?:[[:blank:]].*)?$/)
|
|
258
237
|
end
|
|
259
238
|
|
|
260
|
-
def
|
|
261
|
-
|
|
239
|
+
def parse_make_command_line_targets(line)
|
|
240
|
+
args = line.sub(/^#{Regexp.escape make_command}/, "").shellsplit
|
|
262
241
|
|
|
263
242
|
targets = []
|
|
264
|
-
macros = {}
|
|
265
243
|
|
|
266
244
|
args.each do |arg|
|
|
267
245
|
case arg
|
|
268
246
|
when /\A(\w+)=/
|
|
269
|
-
macros[$1] = $'
|
|
270
247
|
else
|
|
271
248
|
targets << arg
|
|
272
249
|
end
|
|
273
250
|
end
|
|
274
251
|
|
|
275
|
-
targets <<
|
|
252
|
+
targets << "" if targets.empty?
|
|
276
253
|
|
|
277
|
-
|
|
278
|
-
:command => command,
|
|
279
|
-
:targets => targets,
|
|
280
|
-
:macros => macros,
|
|
281
|
-
}
|
|
254
|
+
targets
|
|
282
255
|
end
|
|
283
256
|
|
|
284
257
|
def assert_contains_make_command(target, output, msg = nil)
|
|
285
|
-
if output.
|
|
258
|
+
if output.include?("\n")
|
|
286
259
|
msg = build_message(msg,
|
|
287
260
|
"Expected output containing make command \"%s\", but was \n\nBEGIN_OF_OUTPUT\n%sEND_OF_OUTPUT" % [
|
|
288
|
-
(
|
|
261
|
+
("%s %s" % [make_command, target]).rstrip,
|
|
289
262
|
output,
|
|
290
263
|
]
|
|
291
264
|
)
|
|
292
265
|
else
|
|
293
266
|
msg = build_message(msg,
|
|
294
|
-
'Expected make command "%s"
|
|
295
|
-
(
|
|
267
|
+
'Expected make command "%s", but was "%s"' % [
|
|
268
|
+
("%s %s" % [make_command, target]).rstrip,
|
|
296
269
|
output,
|
|
297
270
|
]
|
|
298
271
|
)
|
|
299
272
|
end
|
|
300
273
|
|
|
301
274
|
assert scan_make_command_lines(output).any? {|line|
|
|
302
|
-
|
|
275
|
+
targets = parse_make_command_line_targets(line)
|
|
303
276
|
|
|
304
|
-
if
|
|
305
|
-
yield make, line if block_given?
|
|
277
|
+
if targets.include?(target)
|
|
306
278
|
true
|
|
307
279
|
else
|
|
308
280
|
false
|
|
@@ -321,18 +293,24 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
321
293
|
# or <tt>i686-darwin8.10.1</tt> otherwise.
|
|
322
294
|
|
|
323
295
|
def setup
|
|
296
|
+
@orig_hooks = {}
|
|
324
297
|
@orig_env = ENV.to_hash
|
|
325
298
|
@tmp = File.expand_path("tmp")
|
|
326
299
|
|
|
327
300
|
FileUtils.mkdir_p @tmp
|
|
328
301
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
ENV[
|
|
333
|
-
ENV[
|
|
334
|
-
ENV[
|
|
335
|
-
ENV[
|
|
302
|
+
@tempdir = Dir.mktmpdir("test_rubygems_", @tmp)
|
|
303
|
+
@tempdir.tap(&Gem::UNTAINT)
|
|
304
|
+
|
|
305
|
+
ENV["GEM_VENDOR"] = nil
|
|
306
|
+
ENV["GEMRC"] = nil
|
|
307
|
+
ENV["XDG_CACHE_HOME"] = nil
|
|
308
|
+
ENV["XDG_CONFIG_HOME"] = nil
|
|
309
|
+
ENV["XDG_DATA_HOME"] = nil
|
|
310
|
+
ENV["XDG_STATE_HOME"] = nil
|
|
311
|
+
ENV["SOURCE_DATE_EPOCH"] = nil
|
|
312
|
+
ENV["BUNDLER_VERSION"] = nil
|
|
313
|
+
ENV["RUBYGEMS_PREVENT_UPDATE_SUGGESTION"] = "true"
|
|
336
314
|
|
|
337
315
|
@current_dir = Dir.pwd
|
|
338
316
|
@fetcher = nil
|
|
@@ -343,27 +321,23 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
343
321
|
# capture output
|
|
344
322
|
Gem::DefaultUserInteraction.ui = Gem::MockGemUi.new
|
|
345
323
|
|
|
346
|
-
@tempdir = Dir.mktmpdir("test_rubygems_", @tmp)
|
|
347
|
-
@tempdir.tap(&Gem::UNTAINT)
|
|
348
|
-
|
|
349
|
-
ENV["TMPDIR"] = @tempdir
|
|
350
|
-
|
|
351
324
|
@orig_SYSTEM_WIDE_CONFIG_FILE = Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE
|
|
352
325
|
Gem::ConfigFile.send :remove_const, :SYSTEM_WIDE_CONFIG_FILE
|
|
353
326
|
Gem::ConfigFile.send :const_set, :SYSTEM_WIDE_CONFIG_FILE,
|
|
354
|
-
File.join(@tempdir,
|
|
327
|
+
File.join(@tempdir, "system-gemrc")
|
|
355
328
|
|
|
356
|
-
@gemhome = File.join @tempdir,
|
|
357
|
-
@userhome = File.join @tempdir,
|
|
358
|
-
|
|
329
|
+
@gemhome = File.join @tempdir, "gemhome"
|
|
330
|
+
@userhome = File.join @tempdir, "userhome"
|
|
331
|
+
@statehome = File.join @tempdir, "statehome"
|
|
332
|
+
ENV["GEM_SPEC_CACHE"] = File.join @tempdir, "spec_cache"
|
|
359
333
|
|
|
360
|
-
@orig_ruby = if ENV[
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
334
|
+
@orig_ruby = if ENV["RUBY"]
|
|
335
|
+
ruby = Gem.ruby
|
|
336
|
+
Gem.ruby = ENV["RUBY"]
|
|
337
|
+
ruby
|
|
338
|
+
end
|
|
365
339
|
|
|
366
|
-
@git = ENV[
|
|
340
|
+
@git = ENV["GIT"] || "git#{RbConfig::CONFIG['EXEEXT']}"
|
|
367
341
|
|
|
368
342
|
Gem.ensure_gem_subdirectories @gemhome
|
|
369
343
|
Gem.ensure_default_gem_subdirectories @gemhome
|
|
@@ -384,11 +358,12 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
384
358
|
|
|
385
359
|
Dir.chdir @tempdir
|
|
386
360
|
|
|
387
|
-
ENV[
|
|
361
|
+
ENV["HOME"] = @userhome
|
|
388
362
|
Gem.instance_variable_set :@config_file, nil
|
|
389
363
|
Gem.instance_variable_set :@user_home, nil
|
|
390
364
|
Gem.instance_variable_set :@config_home, nil
|
|
391
365
|
Gem.instance_variable_set :@data_home, nil
|
|
366
|
+
Gem.instance_variable_set :@state_home, @statehome
|
|
392
367
|
Gem.instance_variable_set :@gemdeps, nil
|
|
393
368
|
Gem.instance_variable_set :@env_requirements_by_name, nil
|
|
394
369
|
Gem.send :remove_instance_variable, :@ruby_version if
|
|
@@ -396,12 +371,12 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
396
371
|
|
|
397
372
|
FileUtils.mkdir_p @userhome
|
|
398
373
|
|
|
399
|
-
ENV[
|
|
374
|
+
ENV["GEM_PRIVATE_KEY_PASSPHRASE"] = PRIVATE_KEY_PASSPHRASE
|
|
400
375
|
|
|
401
376
|
Gem.instance_variable_set(:@default_specifications_dir, nil)
|
|
402
377
|
if Gem.java_platform?
|
|
403
|
-
@orig_default_gem_home = RbConfig::CONFIG[
|
|
404
|
-
RbConfig::CONFIG[
|
|
378
|
+
@orig_default_gem_home = RbConfig::CONFIG["default_gem_home"]
|
|
379
|
+
RbConfig::CONFIG["default_gem_home"] = @gemhome
|
|
405
380
|
else
|
|
406
381
|
Gem.instance_variable_set(:@default_dir, @gemhome)
|
|
407
382
|
end
|
|
@@ -409,13 +384,20 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
409
384
|
@orig_bindir = RbConfig::CONFIG["bindir"]
|
|
410
385
|
RbConfig::CONFIG["bindir"] = File.join @gemhome, "bin"
|
|
411
386
|
|
|
387
|
+
@orig_sitelibdir = RbConfig::CONFIG["sitelibdir"]
|
|
388
|
+
new_sitelibdir = @orig_sitelibdir.sub(RbConfig::CONFIG["prefix"], @gemhome)
|
|
389
|
+
$LOAD_PATH.insert(Gem.load_path_insert_index, new_sitelibdir)
|
|
390
|
+
RbConfig::CONFIG["sitelibdir"] = new_sitelibdir
|
|
391
|
+
|
|
392
|
+
@orig_mandir = RbConfig::CONFIG["mandir"]
|
|
393
|
+
RbConfig::CONFIG["mandir"] = File.join @gemhome, "share", "man"
|
|
394
|
+
|
|
412
395
|
Gem::Specification.unresolved_deps.clear
|
|
413
396
|
Gem.use_paths(@gemhome)
|
|
414
397
|
|
|
415
398
|
Gem.loaded_specs.clear
|
|
416
399
|
Gem.instance_variable_set(:@activated_gem_paths, 0)
|
|
417
400
|
Gem.clear_default_specs
|
|
418
|
-
Bundler.reset!
|
|
419
401
|
|
|
420
402
|
Gem.configuration.verbose = true
|
|
421
403
|
Gem.configuration.update_sources = true
|
|
@@ -429,15 +411,14 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
429
411
|
Gem.searcher = nil
|
|
430
412
|
Gem::SpecFetcher.fetcher = nil
|
|
431
413
|
|
|
432
|
-
@orig_arch = RbConfig::CONFIG[
|
|
414
|
+
@orig_arch = RbConfig::CONFIG["arch"]
|
|
433
415
|
|
|
434
416
|
if win_platform?
|
|
435
|
-
util_set_arch
|
|
417
|
+
util_set_arch "i386-mswin32"
|
|
436
418
|
else
|
|
437
|
-
util_set_arch
|
|
419
|
+
util_set_arch "i686-darwin8.10.1"
|
|
438
420
|
end
|
|
439
421
|
|
|
440
|
-
@orig_hooks = {}
|
|
441
422
|
%w[post_install_hooks done_installing_hooks post_uninstall_hooks pre_uninstall_hooks pre_install_hooks pre_reset_hooks post_reset_hooks post_build_hooks].each do |name|
|
|
442
423
|
@orig_hooks[name] = Gem.send(name).dup
|
|
443
424
|
end
|
|
@@ -462,7 +443,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
462
443
|
end
|
|
463
444
|
end
|
|
464
445
|
|
|
465
|
-
RbConfig::CONFIG[
|
|
446
|
+
RbConfig::CONFIG["arch"] = @orig_arch
|
|
466
447
|
|
|
467
448
|
if defined? Gem::RemoteFetcher
|
|
468
449
|
Gem::RemoteFetcher.fetcher = nil
|
|
@@ -472,7 +453,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
472
453
|
|
|
473
454
|
FileUtils.rm_rf @tempdir
|
|
474
455
|
|
|
475
|
-
|
|
456
|
+
restore_env
|
|
476
457
|
|
|
477
458
|
Gem::ConfigFile.send :remove_const, :SYSTEM_WIDE_CONFIG_FILE
|
|
478
459
|
Gem::ConfigFile.send :const_set, :SYSTEM_WIDE_CONFIG_FILE,
|
|
@@ -480,16 +461,17 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
480
461
|
|
|
481
462
|
Gem.ruby = @orig_ruby if @orig_ruby
|
|
482
463
|
|
|
483
|
-
RbConfig::CONFIG[
|
|
464
|
+
RbConfig::CONFIG["mandir"] = @orig_mandir
|
|
465
|
+
RbConfig::CONFIG["sitelibdir"] = @orig_sitelibdir
|
|
466
|
+
RbConfig::CONFIG["bindir"] = @orig_bindir
|
|
484
467
|
|
|
485
468
|
Gem.instance_variable_set :@default_specifications_dir, nil
|
|
486
469
|
if Gem.java_platform?
|
|
487
|
-
RbConfig::CONFIG[
|
|
470
|
+
RbConfig::CONFIG["default_gem_home"] = @orig_default_gem_home
|
|
488
471
|
else
|
|
489
472
|
Gem.instance_variable_set :@default_dir, nil
|
|
490
473
|
end
|
|
491
474
|
|
|
492
|
-
Gem::Specification._clear_load_cache
|
|
493
475
|
Gem::Specification.unresolved_deps.clear
|
|
494
476
|
Gem::refresh
|
|
495
477
|
|
|
@@ -501,9 +483,9 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
501
483
|
end
|
|
502
484
|
|
|
503
485
|
def credential_setup
|
|
504
|
-
@temp_cred = File.join(@userhome,
|
|
486
|
+
@temp_cred = File.join(@userhome, ".gem", "credentials")
|
|
505
487
|
FileUtils.mkdir_p File.dirname(@temp_cred)
|
|
506
|
-
File.write @temp_cred,
|
|
488
|
+
File.write @temp_cred, ":rubygems_api_key: 701229f217cdf23b1344c7b4b54ca97"
|
|
507
489
|
File.chmod 0600, @temp_cred
|
|
508
490
|
end
|
|
509
491
|
|
|
@@ -558,10 +540,10 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
558
540
|
#
|
|
559
541
|
# Yields the +specification+ to the block, if given
|
|
560
542
|
|
|
561
|
-
def git_gem(name =
|
|
543
|
+
def git_gem(name = "a", version = 1)
|
|
562
544
|
have_git?
|
|
563
545
|
|
|
564
|
-
directory = File.join
|
|
546
|
+
directory = File.join "git", name
|
|
565
547
|
directory = File.expand_path directory
|
|
566
548
|
|
|
567
549
|
git_spec = Gem::Specification.new name, version do |specification|
|
|
@@ -572,22 +554,22 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
572
554
|
|
|
573
555
|
gemspec = "#{name}.gemspec"
|
|
574
556
|
|
|
575
|
-
File.open File.join(directory, gemspec),
|
|
557
|
+
File.open File.join(directory, gemspec), "w" do |io|
|
|
576
558
|
io.write git_spec.to_ruby
|
|
577
559
|
end
|
|
578
560
|
|
|
579
561
|
head = nil
|
|
580
562
|
|
|
581
563
|
Dir.chdir directory do
|
|
582
|
-
unless File.exist?
|
|
583
|
-
system @git,
|
|
584
|
-
system @git,
|
|
585
|
-
system @git,
|
|
564
|
+
unless File.exist? ".git"
|
|
565
|
+
system @git, "init", "--quiet"
|
|
566
|
+
system @git, "config", "user.name", "RubyGems Tests"
|
|
567
|
+
system @git, "config", "user.email", "rubygems@example"
|
|
586
568
|
end
|
|
587
569
|
|
|
588
|
-
system @git,
|
|
589
|
-
system @git,
|
|
590
|
-
head = Gem::Util.popen(@git,
|
|
570
|
+
system @git, "add", gemspec
|
|
571
|
+
system @git, "commit", "-a", "-m", "a non-empty commit message", "--quiet"
|
|
572
|
+
head = Gem::Util.popen(@git, "rev-parse", "HEAD").strip
|
|
591
573
|
end
|
|
592
574
|
|
|
593
575
|
return name, git_spec.version, directory, head
|
|
@@ -599,13 +581,13 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
599
581
|
def have_git?
|
|
600
582
|
return if in_path? @git
|
|
601
583
|
|
|
602
|
-
|
|
584
|
+
pend "cannot find git executable, use GIT environment variable to set"
|
|
603
585
|
end
|
|
604
586
|
|
|
605
587
|
def in_path?(executable) # :nodoc:
|
|
606
|
-
return true if %r{\A([A-Z]:|/)} =~ executable
|
|
588
|
+
return true if %r{\A([A-Z]:|/)} =~ executable && File.exist?(executable)
|
|
607
589
|
|
|
608
|
-
ENV[
|
|
590
|
+
ENV["PATH"].split(File::PATH_SEPARATOR).any? do |directory|
|
|
609
591
|
File.exist? File.join directory, executable
|
|
610
592
|
end
|
|
611
593
|
end
|
|
@@ -614,7 +596,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
614
596
|
# Builds and installs the Gem::Specification +spec+
|
|
615
597
|
|
|
616
598
|
def install_gem(spec, options = {})
|
|
617
|
-
require
|
|
599
|
+
require "rubygems/installer"
|
|
618
600
|
|
|
619
601
|
gem = spec.cache_file
|
|
620
602
|
|
|
@@ -628,7 +610,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
628
610
|
gem = File.join(@tempdir, File.basename(gem)).tap(&Gem::UNTAINT)
|
|
629
611
|
end
|
|
630
612
|
|
|
631
|
-
Gem::Installer.at(gem, options.merge({:wrappers => true})).install
|
|
613
|
+
Gem::Installer.at(gem, options.merge({ :wrappers => true })).install
|
|
632
614
|
end
|
|
633
615
|
|
|
634
616
|
##
|
|
@@ -641,7 +623,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
641
623
|
##
|
|
642
624
|
# Uninstalls the Gem::Specification +spec+
|
|
643
625
|
def uninstall_gem(spec)
|
|
644
|
-
require
|
|
626
|
+
require "rubygems/uninstaller"
|
|
645
627
|
|
|
646
628
|
Class.new(Gem::Uninstaller) do
|
|
647
629
|
def ask_if_ok(spec)
|
|
@@ -664,7 +646,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
664
646
|
# Reads a Marshal file at +path+
|
|
665
647
|
|
|
666
648
|
def read_cache(path)
|
|
667
|
-
File.open path.dup.tap(&Gem::UNTAINT),
|
|
649
|
+
File.open path.dup.tap(&Gem::UNTAINT), "rb" do |io|
|
|
668
650
|
Marshal.load io.read
|
|
669
651
|
end
|
|
670
652
|
end
|
|
@@ -684,7 +666,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
684
666
|
dir = File.dirname path
|
|
685
667
|
FileUtils.mkdir_p dir unless File.directory? dir
|
|
686
668
|
|
|
687
|
-
File.open path,
|
|
669
|
+
File.open path, "wb" do |io|
|
|
688
670
|
yield io if block_given?
|
|
689
671
|
end
|
|
690
672
|
|
|
@@ -695,10 +677,10 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
695
677
|
# Load a YAML string, the psych 3 way
|
|
696
678
|
|
|
697
679
|
def load_yaml(yaml)
|
|
698
|
-
if
|
|
699
|
-
|
|
680
|
+
if Psych.respond_to?(:unsafe_load)
|
|
681
|
+
Psych.unsafe_load(yaml)
|
|
700
682
|
else
|
|
701
|
-
|
|
683
|
+
Psych.load(yaml)
|
|
702
684
|
end
|
|
703
685
|
end
|
|
704
686
|
|
|
@@ -706,10 +688,10 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
706
688
|
# Load a YAML file, the psych 3 way
|
|
707
689
|
|
|
708
690
|
def load_yaml_file(file)
|
|
709
|
-
if
|
|
710
|
-
|
|
691
|
+
if Psych.respond_to?(:unsafe_load_file)
|
|
692
|
+
Psych.unsafe_load_file(file)
|
|
711
693
|
else
|
|
712
|
-
|
|
694
|
+
Psych.load_file(file)
|
|
713
695
|
end
|
|
714
696
|
end
|
|
715
697
|
|
|
@@ -727,16 +709,16 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
727
709
|
#
|
|
728
710
|
# Use this with #write_file to build an installed gem.
|
|
729
711
|
|
|
730
|
-
def quick_gem(name, version=
|
|
731
|
-
require
|
|
712
|
+
def quick_gem(name, version="2")
|
|
713
|
+
require "rubygems/specification"
|
|
732
714
|
|
|
733
715
|
spec = Gem::Specification.new do |s|
|
|
734
716
|
s.platform = Gem::Platform::RUBY
|
|
735
717
|
s.name = name
|
|
736
718
|
s.version = version
|
|
737
|
-
s.author =
|
|
738
|
-
s.email =
|
|
739
|
-
s.homepage =
|
|
719
|
+
s.author = "A User"
|
|
720
|
+
s.email = "example@example.com"
|
|
721
|
+
s.homepage = "http://example.com"
|
|
740
722
|
s.summary = "this is a summary"
|
|
741
723
|
s.description = "This is a test description"
|
|
742
724
|
|
|
@@ -767,7 +749,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
767
749
|
next if File.exist? file
|
|
768
750
|
FileUtils.mkdir_p File.dirname(file)
|
|
769
751
|
|
|
770
|
-
File.open file,
|
|
752
|
+
File.open file, "w" do |fp|
|
|
771
753
|
fp.puts "# #{file}"
|
|
772
754
|
end
|
|
773
755
|
end
|
|
@@ -853,15 +835,15 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
853
835
|
# or a +block+ can be given for full customization of the specification.
|
|
854
836
|
|
|
855
837
|
def util_spec(name, version = 2, deps = nil, *files) # :yields: specification
|
|
856
|
-
raise "deps or block, not both" if deps
|
|
838
|
+
raise "deps or block, not both" if deps && block_given?
|
|
857
839
|
|
|
858
840
|
spec = Gem::Specification.new do |s|
|
|
859
841
|
s.platform = Gem::Platform::RUBY
|
|
860
842
|
s.name = name
|
|
861
843
|
s.version = version
|
|
862
|
-
s.author =
|
|
863
|
-
s.email =
|
|
864
|
-
s.homepage =
|
|
844
|
+
s.author = "A User"
|
|
845
|
+
s.email = "example@example.com"
|
|
846
|
+
s.homepage = "http://example.com"
|
|
865
847
|
s.summary = "this is a summary"
|
|
866
848
|
s.description = "This is a test description"
|
|
867
849
|
|
|
@@ -872,7 +854,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
872
854
|
|
|
873
855
|
if deps
|
|
874
856
|
deps.keys.each do |n|
|
|
875
|
-
spec.add_dependency n, (deps[n] ||
|
|
857
|
+
spec.add_dependency n, (deps[n] || ">= 0")
|
|
876
858
|
end
|
|
877
859
|
end
|
|
878
860
|
|
|
@@ -899,7 +881,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
899
881
|
if deps
|
|
900
882
|
block = proc do |s|
|
|
901
883
|
deps.keys.each do |n|
|
|
902
|
-
s.add_dependency n, (deps[n] ||
|
|
884
|
+
s.add_dependency n, (deps[n] || ">= 0")
|
|
903
885
|
end
|
|
904
886
|
end
|
|
905
887
|
end
|
|
@@ -908,7 +890,7 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
908
890
|
|
|
909
891
|
util_build_gem spec
|
|
910
892
|
|
|
911
|
-
cache_file = File.join @tempdir,
|
|
893
|
+
cache_file = File.join @tempdir, "gems", "#{spec.original_name}.gem"
|
|
912
894
|
FileUtils.mkdir_p File.dirname cache_file
|
|
913
895
|
FileUtils.mv spec.cache_file, cache_file
|
|
914
896
|
FileUtils.rm spec.spec_file
|
|
@@ -950,11 +932,11 @@ class Gem::TestCase < Test::Unit::TestCase
|
|
|
950
932
|
# TODO: nuke this and fix tests. this should speed up a lot
|
|
951
933
|
|
|
952
934
|
def util_make_gems(prerelease = false)
|
|
953
|
-
@a1 = quick_gem
|
|
935
|
+
@a1 = quick_gem "a", "1" do |s|
|
|
954
936
|
s.files = %w[lib/code.rb]
|
|
955
937
|
s.require_paths = %w[lib]
|
|
956
938
|
s.date = Gem::Specification::TODAY - 86400
|
|
957
|
-
s.homepage =
|
|
939
|
+
s.homepage = "http://a.example.com"
|
|
958
940
|
s.email = %w[example@example.com example2@example.com]
|
|
959
941
|
s.authors = %w[Example Example2]
|
|
960
942
|
s.description = <<-DESC
|
|
@@ -971,27 +953,27 @@ Also, a list:
|
|
|
971
953
|
s.require_paths = %w[lib]
|
|
972
954
|
end
|
|
973
955
|
|
|
974
|
-
@a2 = quick_gem(
|
|
975
|
-
@a3a = quick_gem(
|
|
976
|
-
@a_evil9 = quick_gem(
|
|
977
|
-
@b2 = quick_gem(
|
|
978
|
-
@c1_2 = quick_gem(
|
|
979
|
-
@x = quick_gem(
|
|
980
|
-
@dep_x = quick_gem(
|
|
956
|
+
@a2 = quick_gem("a", "2", &init)
|
|
957
|
+
@a3a = quick_gem("a", "3.a", &init)
|
|
958
|
+
@a_evil9 = quick_gem("a_evil", "9", &init)
|
|
959
|
+
@b2 = quick_gem("b", "2", &init)
|
|
960
|
+
@c1_2 = quick_gem("c", "1.2", &init)
|
|
961
|
+
@x = quick_gem("x", "1", &init)
|
|
962
|
+
@dep_x = quick_gem("dep_x", "1") do |s|
|
|
981
963
|
s.files = %w[lib/code.rb]
|
|
982
964
|
s.require_paths = %w[lib]
|
|
983
|
-
s.add_dependency
|
|
965
|
+
s.add_dependency "x", ">= 1"
|
|
984
966
|
end
|
|
985
967
|
|
|
986
|
-
@pl1 = quick_gem
|
|
968
|
+
@pl1 = quick_gem "pl", "1" do |s| # l for legacy
|
|
987
969
|
s.files = %w[lib/code.rb]
|
|
988
970
|
s.require_paths = %w[lib]
|
|
989
|
-
s.platform = Gem::Platform.new
|
|
990
|
-
s.instance_variable_set :@original_platform,
|
|
971
|
+
s.platform = Gem::Platform.new "i386-linux"
|
|
972
|
+
s.instance_variable_set :@original_platform, "i386-linux"
|
|
991
973
|
end
|
|
992
974
|
|
|
993
975
|
if prerelease
|
|
994
|
-
@a2_pre = quick_gem(
|
|
976
|
+
@a2_pre = quick_gem("a", "2.a", &init)
|
|
995
977
|
write_file File.join(*%W[gems #{@a2_pre.original_name} lib code.rb])
|
|
996
978
|
util_build_gem @a2_pre
|
|
997
979
|
end
|
|
@@ -1017,7 +999,7 @@ Also, a list:
|
|
|
1017
999
|
# Set the platform to +arch+
|
|
1018
1000
|
|
|
1019
1001
|
def util_set_arch(arch)
|
|
1020
|
-
RbConfig::CONFIG[
|
|
1002
|
+
RbConfig::CONFIG["arch"] = arch
|
|
1021
1003
|
platform = Gem::Platform.new arch
|
|
1022
1004
|
|
|
1023
1005
|
Gem.instance_variable_set :@platforms, nil
|
|
@@ -1084,19 +1066,23 @@ Also, a list:
|
|
|
1084
1066
|
@fetcher.data["#{@gem_repo}latest_specs.#{v}.gz"] = l_zip
|
|
1085
1067
|
@fetcher.data["#{@gem_repo}prerelease_specs.#{v}.gz"] = p_zip
|
|
1086
1068
|
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
all_specs.each do |spec|
|
|
1090
|
-
path = "#{@gem_repo}quick/Marshal.#{v}/#{spec.original_name}.gemspec.rz"
|
|
1091
|
-
data = Marshal.dump spec
|
|
1092
|
-
data_deflate = Zlib::Deflate.deflate data
|
|
1093
|
-
@fetcher.data[path] = data_deflate
|
|
1094
|
-
end
|
|
1069
|
+
write_marshalled_gemspecs(*all_specs)
|
|
1095
1070
|
end
|
|
1096
1071
|
|
|
1097
1072
|
nil # force errors
|
|
1098
1073
|
end
|
|
1099
1074
|
|
|
1075
|
+
def write_marshalled_gemspecs(*all_specs)
|
|
1076
|
+
v = Gem.marshal_version
|
|
1077
|
+
|
|
1078
|
+
all_specs.each do |spec|
|
|
1079
|
+
path = "#{@gem_repo}quick/Marshal.#{v}/#{spec.original_name}.gemspec.rz"
|
|
1080
|
+
data = Marshal.dump spec
|
|
1081
|
+
data_deflate = Zlib::Deflate.deflate data
|
|
1082
|
+
@fetcher.data[path] = data_deflate
|
|
1083
|
+
end
|
|
1084
|
+
end
|
|
1085
|
+
|
|
1100
1086
|
##
|
|
1101
1087
|
# Deflates +data+
|
|
1102
1088
|
|
|
@@ -1104,7 +1090,7 @@ Also, a list:
|
|
|
1104
1090
|
Zlib::Deflate.deflate data
|
|
1105
1091
|
end
|
|
1106
1092
|
|
|
1107
|
-
def util_set_RUBY_VERSION(version, patchlevel
|
|
1093
|
+
def util_set_RUBY_VERSION(version, patchlevel, revision, description, engine = "ruby", engine_version = nil)
|
|
1108
1094
|
if Gem.instance_variables.include? :@ruby_version
|
|
1109
1095
|
Gem.send :remove_instance_variable, :@ruby_version
|
|
1110
1096
|
end
|
|
@@ -1112,16 +1098,16 @@ Also, a list:
|
|
|
1112
1098
|
@RUBY_VERSION = RUBY_VERSION
|
|
1113
1099
|
@RUBY_PATCHLEVEL = RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
|
|
1114
1100
|
@RUBY_REVISION = RUBY_REVISION if defined?(RUBY_REVISION)
|
|
1115
|
-
@RUBY_DESCRIPTION = RUBY_DESCRIPTION
|
|
1101
|
+
@RUBY_DESCRIPTION = RUBY_DESCRIPTION
|
|
1116
1102
|
@RUBY_ENGINE = RUBY_ENGINE
|
|
1117
1103
|
@RUBY_ENGINE_VERSION = RUBY_ENGINE_VERSION if defined?(RUBY_ENGINE_VERSION)
|
|
1118
1104
|
|
|
1119
1105
|
util_clear_RUBY_VERSION
|
|
1120
1106
|
|
|
1121
1107
|
Object.const_set :RUBY_VERSION, version
|
|
1122
|
-
Object.const_set :RUBY_PATCHLEVEL, patchlevel
|
|
1123
|
-
Object.const_set :RUBY_REVISION, revision
|
|
1124
|
-
Object.const_set :RUBY_DESCRIPTION, description
|
|
1108
|
+
Object.const_set :RUBY_PATCHLEVEL, patchlevel
|
|
1109
|
+
Object.const_set :RUBY_REVISION, revision
|
|
1110
|
+
Object.const_set :RUBY_DESCRIPTION, description
|
|
1125
1111
|
Object.const_set :RUBY_ENGINE, engine
|
|
1126
1112
|
Object.const_set :RUBY_ENGINE_VERSION, engine_version if engine_version
|
|
1127
1113
|
end
|
|
@@ -1134,8 +1120,7 @@ Also, a list:
|
|
|
1134
1120
|
defined?(@RUBY_PATCHLEVEL)
|
|
1135
1121
|
Object.const_set :RUBY_REVISION, @RUBY_REVISION if
|
|
1136
1122
|
defined?(@RUBY_REVISION)
|
|
1137
|
-
Object.const_set :RUBY_DESCRIPTION, @RUBY_DESCRIPTION
|
|
1138
|
-
defined?(@RUBY_DESCRIPTION)
|
|
1123
|
+
Object.const_set :RUBY_DESCRIPTION, @RUBY_DESCRIPTION
|
|
1139
1124
|
Object.const_set :RUBY_ENGINE, @RUBY_ENGINE
|
|
1140
1125
|
Object.const_set :RUBY_ENGINE_VERSION, @RUBY_ENGINE_VERSION if
|
|
1141
1126
|
defined?(@RUBY_ENGINE_VERSION)
|
|
@@ -1183,7 +1168,7 @@ Also, a list:
|
|
|
1183
1168
|
# Borland) versus Cygwin, Mingw, etc.
|
|
1184
1169
|
|
|
1185
1170
|
def self.vc_windows?
|
|
1186
|
-
RUBY_PLATFORM.match(
|
|
1171
|
+
RUBY_PLATFORM.match("mswin")
|
|
1187
1172
|
end
|
|
1188
1173
|
|
|
1189
1174
|
##
|
|
@@ -1191,7 +1176,15 @@ Also, a list:
|
|
|
1191
1176
|
# Borland) versus Cygwin, Mingw, etc.
|
|
1192
1177
|
|
|
1193
1178
|
def vc_windows?
|
|
1194
|
-
RUBY_PLATFORM.match(
|
|
1179
|
+
RUBY_PLATFORM.match("mswin")
|
|
1180
|
+
end
|
|
1181
|
+
|
|
1182
|
+
##
|
|
1183
|
+
# Is this test being run on a ruby/ruby repository?
|
|
1184
|
+
#
|
|
1185
|
+
|
|
1186
|
+
def ruby_repo?
|
|
1187
|
+
!ENV["GEM_COMMAND"].nil?
|
|
1195
1188
|
end
|
|
1196
1189
|
|
|
1197
1190
|
##
|
|
@@ -1200,7 +1193,7 @@ Also, a list:
|
|
|
1200
1193
|
# other platforms, including Cygwin, it will return 'make'.
|
|
1201
1194
|
|
|
1202
1195
|
def self.make_command
|
|
1203
|
-
ENV["make"] || ENV["MAKE"] || (vc_windows? ?
|
|
1196
|
+
ENV["make"] || ENV["MAKE"] || (vc_windows? ? "nmake" : "make")
|
|
1204
1197
|
end
|
|
1205
1198
|
|
|
1206
1199
|
##
|
|
@@ -1209,14 +1202,14 @@ Also, a list:
|
|
|
1209
1202
|
# other platforms, including Cygwin, it will return 'make'.
|
|
1210
1203
|
|
|
1211
1204
|
def make_command
|
|
1212
|
-
ENV["make"] || ENV["MAKE"] || (vc_windows? ?
|
|
1205
|
+
ENV["make"] || ENV["MAKE"] || (vc_windows? ? "nmake" : "make")
|
|
1213
1206
|
end
|
|
1214
1207
|
|
|
1215
1208
|
##
|
|
1216
1209
|
# Returns whether or not the nmake command could be found.
|
|
1217
1210
|
|
|
1218
1211
|
def nmake_found?
|
|
1219
|
-
system(
|
|
1212
|
+
system("nmake /? 1>NUL 2>&1")
|
|
1220
1213
|
end
|
|
1221
1214
|
|
|
1222
1215
|
# In case we're building docs in a background process, this method waits for
|
|
@@ -1269,13 +1262,13 @@ Also, a list:
|
|
|
1269
1262
|
ruby = ENV["RUBY"]
|
|
1270
1263
|
return ruby if ruby
|
|
1271
1264
|
ruby = "ruby"
|
|
1272
|
-
rubyexe = "#{ruby}
|
|
1265
|
+
rubyexe = "#{ruby}#{RbConfig::CONFIG['EXEEXT']}"
|
|
1273
1266
|
|
|
1274
1267
|
3.times do
|
|
1275
|
-
if File.exist?
|
|
1268
|
+
if File.exist?(ruby) && File.executable?(ruby) && !File.directory?(ruby)
|
|
1276
1269
|
return File.expand_path(ruby)
|
|
1277
1270
|
end
|
|
1278
|
-
if File.exist?
|
|
1271
|
+
if File.exist?(rubyexe) && File.executable?(rubyexe)
|
|
1279
1272
|
return File.expand_path(rubyexe)
|
|
1280
1273
|
end
|
|
1281
1274
|
ruby = File.join("..", ruby)
|
|
@@ -1293,7 +1286,11 @@ Also, a list:
|
|
|
1293
1286
|
end
|
|
1294
1287
|
|
|
1295
1288
|
def rubygems_path
|
|
1296
|
-
$LOAD_PATH.find{|p| p == File.dirname($LOADED_FEATURES.find{|f| f.end_with?("/rubygems.rb") }) }
|
|
1289
|
+
$LOAD_PATH.find {|p| p == File.dirname($LOADED_FEATURES.find {|f| f.end_with?("/rubygems.rb") }) }
|
|
1290
|
+
end
|
|
1291
|
+
|
|
1292
|
+
def bundler_path
|
|
1293
|
+
$LOAD_PATH.find {|p| p == File.dirname($LOADED_FEATURES.find {|f| f.end_with?("/bundler.rb") }) }
|
|
1297
1294
|
end
|
|
1298
1295
|
|
|
1299
1296
|
def with_clean_path_to_ruby
|
|
@@ -1306,6 +1303,22 @@ Also, a list:
|
|
|
1306
1303
|
Gem.instance_variable_set :@ruby, orig_ruby
|
|
1307
1304
|
end
|
|
1308
1305
|
|
|
1306
|
+
def with_internal_encoding(encoding)
|
|
1307
|
+
int_enc = Encoding.default_internal
|
|
1308
|
+
silence_warnings { Encoding.default_internal = encoding }
|
|
1309
|
+
|
|
1310
|
+
yield
|
|
1311
|
+
ensure
|
|
1312
|
+
silence_warnings { Encoding.default_internal = int_enc }
|
|
1313
|
+
end
|
|
1314
|
+
|
|
1315
|
+
def silence_warnings
|
|
1316
|
+
old_verbose, $VERBOSE = $VERBOSE, false
|
|
1317
|
+
yield
|
|
1318
|
+
ensure
|
|
1319
|
+
$VERBOSE = old_verbose
|
|
1320
|
+
end
|
|
1321
|
+
|
|
1309
1322
|
class << self
|
|
1310
1323
|
# :nodoc:
|
|
1311
1324
|
##
|
|
@@ -1408,8 +1421,8 @@ Also, a list:
|
|
|
1408
1421
|
#
|
|
1409
1422
|
# Yields the +specification+ to the block, if given
|
|
1410
1423
|
|
|
1411
|
-
def vendor_gem(name =
|
|
1412
|
-
directory = File.join
|
|
1424
|
+
def vendor_gem(name = "a", version = 1)
|
|
1425
|
+
directory = File.join "vendor", name
|
|
1413
1426
|
|
|
1414
1427
|
FileUtils.mkdir_p directory
|
|
1415
1428
|
|
|
@@ -1422,12 +1435,12 @@ Also, a list:
|
|
|
1422
1435
|
#
|
|
1423
1436
|
# Yields the +specification+ to the block, if given
|
|
1424
1437
|
|
|
1425
|
-
def save_gemspec(name =
|
|
1438
|
+
def save_gemspec(name = "a", version = 1, directory = ".")
|
|
1426
1439
|
vendor_spec = Gem::Specification.new name, version do |specification|
|
|
1427
1440
|
yield specification if block_given?
|
|
1428
1441
|
end
|
|
1429
1442
|
|
|
1430
|
-
File.open File.join(directory, "#{name}.gemspec"),
|
|
1443
|
+
File.open File.join(directory, "#{name}.gemspec"), "w" do |io|
|
|
1431
1444
|
io.write vendor_spec.to_ruby
|
|
1432
1445
|
end
|
|
1433
1446
|
|
|
@@ -1541,25 +1554,42 @@ Also, a list:
|
|
|
1541
1554
|
# :stopdoc:
|
|
1542
1555
|
# only available in RubyGems tests
|
|
1543
1556
|
|
|
1544
|
-
PRIVATE_KEY_PASSPHRASE =
|
|
1557
|
+
PRIVATE_KEY_PASSPHRASE = "Foo bar"
|
|
1545
1558
|
|
|
1546
1559
|
begin
|
|
1547
|
-
PRIVATE_KEY = load_key
|
|
1548
|
-
PRIVATE_KEY_PATH = key_path
|
|
1560
|
+
PRIVATE_KEY = load_key "private"
|
|
1561
|
+
PRIVATE_KEY_PATH = key_path "private"
|
|
1549
1562
|
|
|
1550
1563
|
# ENCRYPTED_PRIVATE_KEY is PRIVATE_KEY encrypted with PRIVATE_KEY_PASSPHRASE
|
|
1551
|
-
ENCRYPTED_PRIVATE_KEY = load_key
|
|
1552
|
-
ENCRYPTED_PRIVATE_KEY_PATH = key_path
|
|
1564
|
+
ENCRYPTED_PRIVATE_KEY = load_key "encrypted_private", PRIVATE_KEY_PASSPHRASE
|
|
1565
|
+
ENCRYPTED_PRIVATE_KEY_PATH = key_path "encrypted_private"
|
|
1553
1566
|
|
|
1554
1567
|
PUBLIC_KEY = PRIVATE_KEY.public_key
|
|
1555
1568
|
|
|
1556
|
-
PUBLIC_CERT = load_cert
|
|
1557
|
-
PUBLIC_CERT_PATH = cert_path
|
|
1569
|
+
PUBLIC_CERT = load_cert "public"
|
|
1570
|
+
PUBLIC_CERT_PATH = cert_path "public"
|
|
1558
1571
|
rescue Errno::ENOENT
|
|
1559
1572
|
PRIVATE_KEY = nil
|
|
1560
1573
|
PUBLIC_KEY = nil
|
|
1561
1574
|
PUBLIC_CERT = nil
|
|
1562
1575
|
end if Gem::HAVE_OPENSSL
|
|
1576
|
+
|
|
1577
|
+
private
|
|
1578
|
+
|
|
1579
|
+
def restore_env
|
|
1580
|
+
unless Gem.win_platform?
|
|
1581
|
+
ENV.replace(@orig_env)
|
|
1582
|
+
return
|
|
1583
|
+
end
|
|
1584
|
+
|
|
1585
|
+
# Fallback logic for Windows below to workaround
|
|
1586
|
+
# https://bugs.ruby-lang.org/issues/16798. Can be dropped once all
|
|
1587
|
+
# supported rubies include the fix for that.
|
|
1588
|
+
|
|
1589
|
+
ENV.clear
|
|
1590
|
+
|
|
1591
|
+
@orig_env.each {|k, v| ENV[k] = v }
|
|
1592
|
+
end
|
|
1563
1593
|
end
|
|
1564
1594
|
|
|
1565
1595
|
# https://github.com/seattlerb/minitest/blob/13c48a03d84a2a87855a4de0c959f96800100357/lib/minitest/mock.rb#L192
|
|
@@ -1569,7 +1599,7 @@ class Object
|
|
|
1569
1599
|
|
|
1570
1600
|
metaclass = class << self; self; end
|
|
1571
1601
|
|
|
1572
|
-
if respond_to?
|
|
1602
|
+
if respond_to?(name) && !methods.map(&:to_s).include?(name.to_s)
|
|
1573
1603
|
metaclass.send :define_method, name do |*args|
|
|
1574
1604
|
super(*args)
|
|
1575
1605
|
end
|
|
@@ -1593,7 +1623,7 @@ class Object
|
|
|
1593
1623
|
metaclass.send :undef_method, name
|
|
1594
1624
|
metaclass.send :alias_method, name, new_name
|
|
1595
1625
|
metaclass.send :undef_method, new_name
|
|
1596
|
-
end
|
|
1626
|
+
end unless method_defined?(:stub) # lib/resolv/test_dns.rb also has the same method definition
|
|
1597
1627
|
end
|
|
1598
1628
|
|
|
1599
|
-
require_relative
|
|
1629
|
+
require_relative "utilities"
|