rubygems-update 2.7.11 → 3.0.9
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/.rubocop.yml +67 -0
- data/.travis.yml +24 -18
- data/CODE_OF_CONDUCT.md +10 -8
- data/CONTRIBUTING.md +148 -0
- data/History.txt +458 -8
- data/MAINTAINERS.txt +1 -0
- data/Manifest.txt +16 -9
- data/POLICIES.md +92 -0
- data/README.md +53 -26
- data/Rakefile +77 -211
- data/{UPGRADING.rdoc → UPGRADING.md} +31 -32
- data/appveyor.yml +20 -45
- data/bin/gem +1 -2
- data/bin/update_rubygems +2 -3
- data/bundler/CHANGELOG.md +65 -0
- data/bundler/bundler.gemspec +7 -1
- data/bundler/lib/bundler/build_metadata.rb +1 -1
- data/bundler/lib/bundler/cli/add.rb +15 -5
- data/bundler/lib/bundler/cli/binstubs.rb +8 -2
- data/bundler/lib/bundler/cli/doctor.rb +47 -1
- data/bundler/lib/bundler/cli/install.rb +8 -5
- data/bundler/lib/bundler/cli/list.rb +41 -5
- data/bundler/lib/bundler/cli/outdated.rb +7 -1
- data/bundler/lib/bundler/cli/pristine.rb +4 -0
- data/bundler/lib/bundler/cli/remove.rb +18 -0
- data/bundler/lib/bundler/cli.rb +63 -21
- data/bundler/lib/bundler/definition.rb +15 -16
- data/bundler/lib/bundler/dependency.rb +2 -2
- data/bundler/lib/bundler/dsl.rb +19 -3
- data/bundler/lib/bundler/feature_flag.rb +7 -0
- data/bundler/lib/bundler/gem_version_promoter.rb +4 -2
- data/bundler/lib/bundler/injector.rb +168 -9
- data/bundler/lib/bundler/installer/parallel_installer.rb +5 -0
- data/bundler/lib/bundler/installer.rb +29 -6
- data/bundler/lib/bundler/plugin/events.rb +61 -0
- data/bundler/lib/bundler/plugin.rb +10 -3
- data/bundler/lib/bundler/resolver.rb +2 -2
- data/bundler/lib/bundler/rubygems_gem_installer.rb +7 -0
- data/bundler/lib/bundler/runtime.rb +8 -2
- data/bundler/lib/bundler/settings/validator.rb +23 -0
- data/bundler/lib/bundler/settings.rb +24 -3
- data/bundler/lib/bundler/shared_helpers.rb +19 -3
- data/bundler/lib/bundler/source/metadata.rb +2 -3
- data/bundler/lib/bundler/source.rb +9 -9
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +1 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler.rb +26 -8
- data/bundler/man/bundle-add.ronn +13 -2
- data/bundler/man/bundle-config.ronn +21 -0
- data/bundler/man/bundle-install.ronn +1 -1
- data/bundler/man/bundle-list.ronn +19 -1
- data/bundler/man/bundle-outdated.ronn +4 -0
- data/bundler/man/bundle-remove.ronn +23 -0
- data/bundler/man/bundle-update.ronn +1 -1
- data/bundler/man/bundle.ronn +3 -0
- data/lib/rubygems/available_set.rb +1 -1
- data/lib/rubygems/basic_specification.rb +12 -12
- data/lib/rubygems/bundler_version_finder.rb +3 -3
- data/lib/rubygems/command.rb +22 -15
- data/lib/rubygems/command_manager.rb +22 -5
- data/lib/rubygems/commands/build_command.rb +41 -7
- data/lib/rubygems/commands/cert_command.rb +45 -24
- data/lib/rubygems/commands/check_command.rb +1 -1
- data/lib/rubygems/commands/cleanup_command.rb +14 -7
- data/lib/rubygems/commands/contents_command.rb +14 -15
- data/lib/rubygems/commands/dependency_command.rb +17 -17
- data/lib/rubygems/commands/environment_command.rb +20 -1
- data/lib/rubygems/commands/fetch_command.rb +2 -3
- data/lib/rubygems/commands/generate_index_command.rb +2 -3
- data/lib/rubygems/commands/help_command.rb +12 -13
- data/lib/rubygems/commands/info_command.rb +33 -0
- data/lib/rubygems/commands/install_command.rb +21 -17
- data/lib/rubygems/commands/list_command.rb +0 -1
- data/lib/rubygems/commands/lock_command.rb +3 -4
- data/lib/rubygems/commands/open_command.rb +16 -10
- data/lib/rubygems/commands/owner_command.rb +21 -7
- data/lib/rubygems/commands/pristine_command.rb +23 -16
- data/lib/rubygems/commands/push_command.rb +19 -8
- data/lib/rubygems/commands/query_command.rb +24 -24
- data/lib/rubygems/commands/rdoc_command.rb +3 -4
- data/lib/rubygems/commands/search_command.rb +0 -1
- data/lib/rubygems/commands/server_command.rb +1 -2
- data/lib/rubygems/commands/setup_command.rb +86 -48
- data/lib/rubygems/commands/signin_command.rb +2 -1
- data/lib/rubygems/commands/signout_command.rb +2 -2
- data/lib/rubygems/commands/sources_command.rb +11 -12
- data/lib/rubygems/commands/specification_command.rb +7 -7
- data/lib/rubygems/commands/uninstall_command.rb +50 -18
- data/lib/rubygems/commands/unpack_command.rb +16 -7
- data/lib/rubygems/commands/update_command.rb +28 -23
- data/lib/rubygems/commands/which_command.rb +5 -8
- data/lib/rubygems/commands/yank_command.rb +1 -2
- data/lib/rubygems/compatibility.rb +1 -21
- data/lib/rubygems/config_file.rb +36 -36
- data/lib/rubygems/core_ext/kernel_require.rb +6 -6
- data/lib/rubygems/core_ext/kernel_warn.rb +45 -0
- data/lib/rubygems/defaults.rb +31 -19
- data/lib/rubygems/dependency.rb +15 -15
- data/lib/rubygems/dependency_installer.rb +30 -33
- data/lib/rubygems/dependency_list.rb +9 -10
- data/lib/rubygems/deprecate.rb +2 -3
- data/lib/rubygems/doctor.rb +5 -6
- data/lib/rubygems/errors.rb +3 -3
- data/lib/rubygems/exceptions.rb +11 -8
- data/lib/rubygems/ext/build_error.rb +0 -1
- data/lib/rubygems/ext/builder.rb +50 -23
- data/lib/rubygems/ext/cmake_builder.rb +2 -2
- data/lib/rubygems/ext/configure_builder.rb +2 -3
- data/lib/rubygems/ext/ext_conf_builder.rb +8 -7
- data/lib/rubygems/ext/rake_builder.rb +16 -18
- data/lib/rubygems/ext.rb +0 -1
- data/lib/rubygems/gem_runner.rb +2 -2
- data/lib/rubygems/gemcutter_utilities.rb +46 -12
- data/lib/rubygems/indexer.rb +19 -12
- data/lib/rubygems/install_default_message.rb +0 -1
- data/lib/rubygems/install_message.rb +0 -1
- data/lib/rubygems/install_update_options.rb +3 -29
- data/lib/rubygems/installer.rb +97 -55
- data/lib/rubygems/installer_test_case.rb +2 -16
- data/lib/rubygems/local_remote_options.rb +5 -4
- data/lib/rubygems/mock_gem_ui.rb +3 -4
- data/lib/rubygems/name_tuple.rb +4 -4
- data/lib/rubygems/package/digest_io.rb +3 -4
- data/lib/rubygems/package/file_source.rb +3 -4
- data/lib/rubygems/package/io_source.rb +1 -2
- data/lib/rubygems/package/old.rb +8 -16
- data/lib/rubygems/package/source.rb +0 -1
- data/lib/rubygems/package/tar_header.rb +13 -4
- data/lib/rubygems/package/tar_reader/entry.rb +20 -4
- data/lib/rubygems/package/tar_reader.rb +2 -4
- data/lib/rubygems/package/tar_test_case.rb +2 -8
- data/lib/rubygems/package/tar_writer.rb +13 -15
- data/lib/rubygems/package.rb +90 -63
- data/lib/rubygems/package_task.rb +0 -1
- data/lib/rubygems/path_support.rb +16 -6
- data/lib/rubygems/platform.rb +4 -5
- data/lib/rubygems/psych_tree.rb +1 -1
- data/lib/rubygems/rdoc.rb +2 -313
- data/lib/rubygems/remote_fetcher.rb +29 -82
- data/lib/rubygems/request/connection_pools.rb +24 -13
- data/lib/rubygems/request/http_pool.rb +3 -4
- data/lib/rubygems/request/https_pool.rb +1 -3
- data/lib/rubygems/request.rb +17 -16
- data/lib/rubygems/request_set/gem_dependency_api.rb +46 -49
- data/lib/rubygems/request_set/lockfile/parser.rb +18 -29
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +9 -9
- data/lib/rubygems/request_set/lockfile.rb +12 -12
- data/lib/rubygems/request_set.rb +52 -25
- data/lib/rubygems/requirement.rb +32 -21
- data/lib/rubygems/resolver/activation_request.rb +6 -6
- data/lib/rubygems/resolver/api_set.rb +5 -6
- data/lib/rubygems/resolver/api_specification.rb +2 -3
- data/lib/rubygems/resolver/best_set.rb +5 -6
- data/lib/rubygems/resolver/composed_set.rb +5 -6
- data/lib/rubygems/resolver/conflict.rb +5 -5
- data/lib/rubygems/resolver/current_set.rb +1 -2
- data/lib/rubygems/resolver/dependency_request.rb +4 -4
- data/lib/rubygems/resolver/git_set.rb +5 -6
- data/lib/rubygems/resolver/git_specification.rb +4 -5
- data/lib/rubygems/resolver/index_set.rb +5 -6
- data/lib/rubygems/resolver/index_specification.rb +3 -4
- data/lib/rubygems/resolver/installed_specification.rb +3 -4
- data/lib/rubygems/resolver/installer_set.rb +12 -12
- data/lib/rubygems/resolver/local_specification.rb +1 -2
- data/lib/rubygems/resolver/lock_set.rb +5 -6
- data/lib/rubygems/resolver/lock_specification.rb +7 -8
- data/lib/rubygems/resolver/requirement_list.rb +1 -1
- data/lib/rubygems/resolver/set.rb +2 -2
- data/lib/rubygems/resolver/source_set.rb +4 -5
- data/lib/rubygems/resolver/spec_specification.rb +1 -2
- data/lib/rubygems/resolver/specification.rb +10 -7
- data/lib/rubygems/resolver/stats.rb +1 -1
- data/lib/rubygems/resolver/vendor_set.rb +4 -5
- data/lib/rubygems/resolver/vendor_specification.rb +2 -3
- data/lib/rubygems/resolver.rb +14 -16
- data/lib/rubygems/s3_uri_signer.rb +183 -0
- data/lib/rubygems/safe_yaml.rb +18 -10
- data/lib/rubygems/security/policies.rb +1 -2
- data/lib/rubygems/security/policy.rb +25 -25
- data/lib/rubygems/security/signer.rb +72 -24
- data/lib/rubygems/security/trust_dir.rb +10 -10
- data/lib/rubygems/security.rb +21 -22
- data/lib/rubygems/security_option.rb +0 -1
- data/lib/rubygems/server.rb +21 -21
- data/lib/rubygems/source/git.rb +9 -10
- data/lib/rubygems/source/installed.rb +3 -4
- data/lib/rubygems/source/local.rb +7 -7
- data/lib/rubygems/source/lock.rb +4 -4
- data/lib/rubygems/source/specific_file.rb +5 -5
- data/lib/rubygems/source/vendor.rb +2 -3
- data/lib/rubygems/source.rb +16 -25
- data/lib/rubygems/source_list.rb +2 -2
- data/lib/rubygems/source_local.rb +0 -1
- data/lib/rubygems/spec_fetcher.rb +5 -6
- data/lib/rubygems/specification.rb +219 -558
- data/lib/rubygems/specification_policy.rb +407 -0
- data/lib/rubygems/stub_specification.rb +12 -17
- data/lib/rubygems/test_case.rb +161 -75
- data/lib/rubygems/test_utilities.rb +20 -35
- data/lib/rubygems/text.rb +6 -6
- data/lib/rubygems/uninstaller.rb +38 -27
- data/lib/rubygems/uri_formatter.rb +1 -2
- data/lib/rubygems/user_interaction.rb +37 -89
- data/lib/rubygems/util/licenses.rb +27 -1
- data/lib/rubygems/util/list.rb +1 -1
- data/lib/rubygems/util.rb +32 -14
- data/lib/rubygems/validator.rb +4 -5
- data/lib/rubygems/version.rb +15 -15
- data/lib/rubygems/version_option.rb +2 -3
- data/lib/rubygems.rb +71 -102
- data/rubygems-update.gemspec +43 -0
- data/setup.rb +2 -8
- data/test/rubygems/ca_cert.pem +74 -65
- data/test/rubygems/client.pem +103 -45
- data/test/rubygems/rubygems_plugin.rb +0 -1
- data/test/rubygems/simple_gem.rb +1 -1
- data/test/rubygems/ssl_cert.pem +78 -17
- data/test/rubygems/ssl_key.pem +25 -13
- data/test/rubygems/test_bundled_ca.rb +1 -1
- data/test/rubygems/test_config.rb +7 -2
- data/test/rubygems/test_gem.rb +205 -132
- data/test/rubygems/test_gem_bundler_version_finder.rb +4 -0
- data/test/rubygems/test_gem_command.rb +0 -1
- data/test/rubygems/test_gem_command_manager.rb +18 -3
- data/test/rubygems/test_gem_commands_build_command.rb +220 -15
- data/test/rubygems/test_gem_commands_cert_command.rb +69 -8
- data/test/rubygems/test_gem_commands_check_command.rb +1 -1
- data/test/rubygems/test_gem_commands_cleanup_command.rb +27 -1
- data/test/rubygems/test_gem_commands_contents_command.rb +1 -2
- data/test/rubygems/test_gem_commands_dependency_command.rb +33 -34
- data/test/rubygems/test_gem_commands_environment_command.rb +1 -0
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -1
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -1
- data/test/rubygems/test_gem_commands_help_command.rb +7 -4
- data/test/rubygems/test_gem_commands_info_command.rb +44 -0
- data/test/rubygems/test_gem_commands_install_command.rb +79 -12
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -1
- data/test/rubygems/test_gem_commands_open_command.rb +29 -0
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -1
- data/test/rubygems/test_gem_commands_owner_command.rb +93 -57
- data/test/rubygems/test_gem_commands_pristine_command.rb +65 -30
- data/test/rubygems/test_gem_commands_push_command.rb +54 -0
- data/test/rubygems/test_gem_commands_query_command.rb +102 -100
- data/test/rubygems/test_gem_commands_search_command.rb +0 -1
- data/test/rubygems/test_gem_commands_server_command.rb +0 -1
- data/test/rubygems/test_gem_commands_setup_command.rb +50 -15
- data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -1
- data/test/rubygems/test_gem_commands_specification_command.rb +2 -3
- data/test/rubygems/test_gem_commands_stale_command.rb +3 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +161 -8
- data/test/rubygems/test_gem_commands_unpack_command.rb +17 -1
- data/test/rubygems/test_gem_commands_update_command.rb +19 -2
- data/test/rubygems/test_gem_commands_which_command.rb +0 -1
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -1
- data/test/rubygems/test_gem_config_file.rb +4 -2
- data/test/rubygems/test_gem_dependency.rb +0 -1
- data/test/rubygems/test_gem_dependency_installer.rb +8 -5
- data/test/rubygems/test_gem_dependency_list.rb +6 -7
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -1
- data/test/rubygems/test_gem_doctor.rb +1 -2
- data/test/rubygems/test_gem_ext_builder.rb +10 -23
- data/test/rubygems/test_gem_ext_cmake_builder.rb +5 -4
- data/test/rubygems/test_gem_ext_configure_builder.rb +3 -3
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +8 -9
- data/test/rubygems/test_gem_ext_rake_builder.rb +20 -5
- data/test/rubygems/test_gem_gem_runner.rb +0 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +32 -6
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -1
- data/test/rubygems/test_gem_indexer.rb +16 -10
- data/test/rubygems/test_gem_install_update_options.rb +1 -20
- data/test/rubygems/test_gem_installer.rb +154 -119
- data/test/rubygems/test_gem_local_remote_options.rb +3 -3
- data/test/rubygems/test_gem_name_tuple.rb +0 -1
- data/test/rubygems/test_gem_package.rb +77 -31
- data/test/rubygems/test_gem_package_old.rb +0 -1
- data/test/rubygems/test_gem_package_tar_header.rb +42 -2
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -1
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +11 -0
- data/test/rubygems/test_gem_package_tar_writer.rb +43 -7
- data/test/rubygems/test_gem_package_task.rb +2 -2
- data/test/rubygems/test_gem_path_support.rb +28 -11
- data/test/rubygems/test_gem_platform.rb +4 -5
- data/test/rubygems/test_gem_rdoc.rb +1 -136
- data/test/rubygems/test_gem_remote_fetcher.rb +241 -141
- data/test/rubygems/test_gem_request.rb +9 -9
- data/test/rubygems/test_gem_request_connection_pools.rb +24 -3
- data/test/rubygems/test_gem_request_set.rb +5 -5
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +82 -64
- data/test/rubygems/test_gem_request_set_lockfile.rb +1 -2
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +4 -9
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
- data/test/rubygems/test_gem_requirement.rb +24 -4
- data/test/rubygems/test_gem_resolver.rb +13 -17
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -1
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -1
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -1
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_installer_set.rb +2 -3
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -1
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -1
- data/test/rubygems/test_gem_resolver_specification.rb +1 -2
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -1
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -1
- data/test/rubygems/test_gem_security.rb +1 -3
- data/test/rubygems/test_gem_security_policy.rb +5 -6
- data/test/rubygems/test_gem_security_signer.rb +4 -3
- data/test/rubygems/test_gem_security_trust_dir.rb +1 -2
- data/test/rubygems/test_gem_server.rb +4 -4
- data/test/rubygems/test_gem_source.rb +0 -13
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
- data/test/rubygems/test_gem_source_git.rb +0 -1
- data/test/rubygems/test_gem_source_installed.rb +0 -1
- data/test/rubygems/test_gem_source_lock.rb +0 -1
- data/test/rubygems/test_gem_source_vendor.rb +0 -1
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -1
- data/test/rubygems/test_gem_specification.rb +366 -198
- data/test/rubygems/test_gem_stream_ui.rb +15 -32
- data/test/rubygems/test_gem_stub_specification.rb +0 -2
- data/test/rubygems/test_gem_text.rb +4 -0
- data/test/rubygems/test_gem_uninstaller.rb +42 -3
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -1
- data/test/rubygems/test_gem_uri_formatter.rb +0 -1
- data/test/rubygems/test_gem_util.rb +31 -11
- data/test/rubygems/test_gem_validator.rb +0 -1
- data/test/rubygems/test_gem_version.rb +11 -11
- data/test/rubygems/test_gem_version_option.rb +0 -1
- data/test/rubygems/test_remote_fetch_error.rb +0 -1
- data/test/rubygems/test_require.rb +67 -52
- data/util/CL2notes +1 -2
- data/util/ci +20 -12
- data/util/cops/deprecations.rb +52 -0
- data/util/create_certs.rb +6 -7
- data/util/create_certs.sh +27 -0
- data/util/create_encrypted_key.rb +4 -5
- data/util/patch_with_prs.rb +1 -1
- data/util/rubocop +8 -0
- data/util/update_bundled_ca_certificates.rb +12 -13
- data/util/update_changelog.rb +1 -1
- metadata +61 -51
- data/.autotest +0 -71
- data/.document +0 -5
- data/CONTRIBUTING.rdoc +0 -130
- data/CVE-2013-4287.txt +0 -35
- data/CVE-2013-4363.txt +0 -45
- data/CVE-2015-3900.txt +0 -40
- data/POLICIES.rdoc +0 -74
- data/test/rubygems/fix_openssl_warnings.rb +0 -13
data/lib/rubygems/test_case.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# TODO: $SAFE = 1
|
3
3
|
|
4
4
|
begin
|
5
|
-
gem 'minitest', '~>
|
5
|
+
gem 'minitest', '~> 5.0'
|
6
6
|
rescue NoMethodError, Gem::LoadError
|
7
7
|
# for ruby tests
|
8
8
|
end
|
@@ -13,11 +13,30 @@ else
|
|
13
13
|
require 'rubygems'
|
14
14
|
end
|
15
15
|
|
16
|
+
# If bundler gemspec exists, add to stubs
|
17
|
+
bundler_gemspec = File.expand_path("../../../bundler/bundler.gemspec", __FILE__)
|
18
|
+
if File.exist?(bundler_gemspec)
|
19
|
+
Gem::Specification.dirs.unshift File.dirname(bundler_gemspec)
|
20
|
+
Gem::Specification.class_variable_set :@@stubs, nil
|
21
|
+
Gem::Specification.stubs
|
22
|
+
Gem::Specification.dirs.shift
|
23
|
+
end
|
24
|
+
|
16
25
|
begin
|
17
26
|
gem 'minitest'
|
18
27
|
rescue Gem::LoadError
|
19
28
|
end
|
20
29
|
|
30
|
+
begin
|
31
|
+
require 'simplecov'
|
32
|
+
SimpleCov.start do
|
33
|
+
add_filter "/test/"
|
34
|
+
add_filter "/bundler/"
|
35
|
+
add_filter "/lib/rubygems/resolver/molinillo"
|
36
|
+
end
|
37
|
+
rescue LoadError
|
38
|
+
end
|
39
|
+
|
21
40
|
# We have to load these up front because otherwise we'll try to load
|
22
41
|
# them while we're testing rubygems, and thus we can't actually load them.
|
23
42
|
unless Gem::Dependency.new('rdoc', '>= 3.10').matching_specs.empty?
|
@@ -65,7 +84,7 @@ module Gem
|
|
65
84
|
# Allows setting path to Ruby. This method is available when requiring
|
66
85
|
# 'rubygems/test_case'
|
67
86
|
|
68
|
-
def self.ruby=
|
87
|
+
def self.ruby=(ruby)
|
69
88
|
@ruby = ruby
|
70
89
|
end
|
71
90
|
|
@@ -96,7 +115,9 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
96
115
|
|
97
116
|
attr_accessor :uri # :nodoc:
|
98
117
|
|
99
|
-
|
118
|
+
TEST_PATH = ENV.fetch('RUBYGEMS_TEST_PATH', File.expand_path('../../../test/rubygems', __FILE__))
|
119
|
+
|
120
|
+
def assert_activate(expected, *specs)
|
100
121
|
specs.each do |spec|
|
101
122
|
case spec
|
102
123
|
when String then
|
@@ -114,22 +135,28 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
114
135
|
end
|
115
136
|
|
116
137
|
# TODO: move to minitest
|
117
|
-
def assert_path_exists
|
138
|
+
def assert_path_exists(path, msg = nil)
|
118
139
|
msg = message(msg) { "Expected path '#{path}' to exist" }
|
119
140
|
assert File.exist?(path), msg
|
120
141
|
end
|
121
142
|
|
143
|
+
def assert_directory_exists(path, msg = nil)
|
144
|
+
msg = message(msg) { "Expected path '#{path}' to be a directory" }
|
145
|
+
assert_path_exists path
|
146
|
+
assert File.directory?(path), msg
|
147
|
+
end
|
148
|
+
|
122
149
|
##
|
123
150
|
# Sets the ENABLE_SHARED entry in RbConfig::CONFIG to +value+ and restores
|
124
151
|
# the original value when the block ends
|
125
152
|
|
126
|
-
def enable_shared
|
153
|
+
def enable_shared(value)
|
127
154
|
enable_shared = RbConfig::CONFIG['ENABLE_SHARED']
|
128
155
|
RbConfig::CONFIG['ENABLE_SHARED'] = value
|
129
156
|
|
130
157
|
yield
|
131
158
|
ensure
|
132
|
-
if enable_shared
|
159
|
+
if enable_shared
|
133
160
|
RbConfig::CONFIG['enable_shared'] = enable_shared
|
134
161
|
else
|
135
162
|
RbConfig::CONFIG.delete 'enable_shared'
|
@@ -137,7 +164,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
137
164
|
end
|
138
165
|
|
139
166
|
# TODO: move to minitest
|
140
|
-
def refute_path_exists
|
167
|
+
def refute_path_exists(path, msg = nil)
|
141
168
|
msg = message(msg) { "Expected path '#{path}' to not exist" }
|
142
169
|
refute File.exist?(path), msg
|
143
170
|
end
|
@@ -235,6 +262,8 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
235
262
|
@orig_gem_env_requirements = ENV.to_hash
|
236
263
|
|
237
264
|
ENV['GEM_VENDOR'] = nil
|
265
|
+
ENV['GEMRC'] = nil
|
266
|
+
ENV['SOURCE_DATE_EPOCH'] = nil
|
238
267
|
|
239
268
|
@current_dir = Dir.pwd
|
240
269
|
@fetcher = nil
|
@@ -251,7 +280,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
251
280
|
tmpdir = File.expand_path Dir.tmpdir
|
252
281
|
tmpdir.untaint
|
253
282
|
|
254
|
-
if ENV['KEEP_FILES']
|
283
|
+
if ENV['KEEP_FILES']
|
255
284
|
@tempdir = File.join(tmpdir, "test_rubygems_#{$$}.#{Time.now.to_i}")
|
256
285
|
else
|
257
286
|
@tempdir = File.join(tmpdir, "test_rubygems_#{$$}")
|
@@ -285,7 +314,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
285
314
|
@userhome = File.join @tempdir, 'userhome'
|
286
315
|
ENV["GEM_SPEC_CACHE"] = File.join @tempdir, 'spec_cache'
|
287
316
|
|
288
|
-
@orig_ruby = if ENV['RUBY']
|
317
|
+
@orig_ruby = if ENV['RUBY']
|
289
318
|
ruby = Gem.ruby
|
290
319
|
Gem.ruby = ENV['RUBY']
|
291
320
|
ruby
|
@@ -372,6 +401,11 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
372
401
|
util_set_arch 'i686-darwin8.10.1'
|
373
402
|
end
|
374
403
|
|
404
|
+
@orig_hooks = {}
|
405
|
+
%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|
|
406
|
+
@orig_hooks[name] = Gem.send(name).dup
|
407
|
+
end
|
408
|
+
|
375
409
|
@marshal_version = "#{Marshal::MAJOR_VERSION}.#{Marshal::MINOR_VERSION}"
|
376
410
|
@orig_LOADED_FEATURES = $LOADED_FEATURES.dup
|
377
411
|
end
|
@@ -402,7 +436,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
402
436
|
end
|
403
437
|
RbConfig::CONFIG['arch'] = @orig_arch
|
404
438
|
|
405
|
-
if defined? Gem::RemoteFetcher
|
439
|
+
if defined? Gem::RemoteFetcher
|
406
440
|
Gem::RemoteFetcher.fetcher = nil
|
407
441
|
end
|
408
442
|
|
@@ -425,7 +459,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
425
459
|
|
426
460
|
Gem.ruby = @orig_ruby if @orig_ruby
|
427
461
|
|
428
|
-
if @orig_ENV_HOME
|
462
|
+
if @orig_ENV_HOME
|
429
463
|
ENV['HOME'] = @orig_ENV_HOME
|
430
464
|
else
|
431
465
|
ENV.delete 'HOME'
|
@@ -439,6 +473,10 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
439
473
|
Gem::Specification.unresolved_deps.clear
|
440
474
|
Gem::refresh
|
441
475
|
|
476
|
+
@orig_hooks.each do |name, hooks|
|
477
|
+
Gem.send(name).replace hooks
|
478
|
+
end
|
479
|
+
|
442
480
|
@back_ui.close
|
443
481
|
end
|
444
482
|
|
@@ -485,7 +523,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
485
523
|
#
|
486
524
|
# Yields the +specification+ to the block, if given
|
487
525
|
|
488
|
-
def git_gem
|
526
|
+
def git_gem(name = 'a', version = 1)
|
489
527
|
have_git?
|
490
528
|
|
491
529
|
directory = File.join 'git', name
|
@@ -506,7 +544,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
506
544
|
head = nil
|
507
545
|
|
508
546
|
Dir.chdir directory do
|
509
|
-
unless File.exist? '.git'
|
547
|
+
unless File.exist? '.git'
|
510
548
|
system @git, 'init', '--quiet'
|
511
549
|
system @git, 'config', 'user.name', 'RubyGems Tests'
|
512
550
|
system @git, 'config', 'user.email', 'rubygems@example'
|
@@ -529,7 +567,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
529
567
|
skip 'cannot find git executable, use GIT environment variable to set'
|
530
568
|
end
|
531
569
|
|
532
|
-
def in_path?
|
570
|
+
def in_path?(executable) # :nodoc:
|
533
571
|
return true if %r%\A([A-Z]:|/)% =~ executable and File.exist? executable
|
534
572
|
|
535
573
|
ENV['PATH'].split(File::PATH_SEPARATOR).any? do |directory|
|
@@ -540,12 +578,12 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
540
578
|
##
|
541
579
|
# Builds and installs the Gem::Specification +spec+
|
542
580
|
|
543
|
-
def install_gem
|
581
|
+
def install_gem(spec, options = {})
|
544
582
|
require 'rubygems/installer'
|
545
583
|
|
546
584
|
gem = File.join @tempdir, "gems", "#{spec.full_name}.gem"
|
547
585
|
|
548
|
-
unless File.exist? gem
|
586
|
+
unless File.exist? gem
|
549
587
|
use_ui Gem::MockGemUi.new do
|
550
588
|
Dir.chdir @tempdir do
|
551
589
|
Gem::Package.build spec
|
@@ -561,17 +599,17 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
561
599
|
##
|
562
600
|
# Builds and installs the Gem::Specification +spec+ into the user dir
|
563
601
|
|
564
|
-
def install_gem_user
|
602
|
+
def install_gem_user(spec)
|
565
603
|
install_gem spec, :user_install => true
|
566
604
|
end
|
567
605
|
|
568
606
|
##
|
569
607
|
# Uninstalls the Gem::Specification +spec+
|
570
|
-
def uninstall_gem
|
608
|
+
def uninstall_gem(spec)
|
571
609
|
require 'rubygems/uninstaller'
|
572
610
|
|
573
611
|
Class.new(Gem::Uninstaller) {
|
574
|
-
def ask_if_ok
|
612
|
+
def ask_if_ok(spec)
|
575
613
|
true
|
576
614
|
end
|
577
615
|
}.new(spec.name, :executables => true, :user_install => true).uninstall
|
@@ -595,7 +633,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
595
633
|
def mu_pp(obj)
|
596
634
|
s = String.new
|
597
635
|
s = PP.pp obj, s
|
598
|
-
s = s.force_encoding(Encoding.default_external)
|
636
|
+
s = s.force_encoding(Encoding.default_external)
|
599
637
|
s.chomp
|
600
638
|
end
|
601
639
|
|
@@ -676,7 +714,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
676
714
|
##
|
677
715
|
# TODO: remove in RubyGems 4.0
|
678
716
|
|
679
|
-
def quick_spec
|
717
|
+
def quick_spec(name, version = '2') # :nodoc:
|
680
718
|
util_spec name, version
|
681
719
|
end
|
682
720
|
deprecate :quick_spec, :util_spec, 2018, 12
|
@@ -715,13 +753,18 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
715
753
|
# Removes all installed gems from +@gemhome+.
|
716
754
|
|
717
755
|
def util_clear_gems
|
718
|
-
FileUtils.rm_rf File.join(@gemhome, "gems")
|
756
|
+
FileUtils.rm_rf File.join(@gemhome, "gems")
|
719
757
|
FileUtils.mkdir File.join(@gemhome, "gems")
|
720
758
|
FileUtils.rm_rf File.join(@gemhome, "specifications")
|
721
759
|
FileUtils.mkdir File.join(@gemhome, "specifications")
|
722
760
|
Gem::Specification.reset
|
723
761
|
end
|
724
762
|
|
763
|
+
def util_clear_default_gems
|
764
|
+
FileUtils.rm_rf @default_spec_dir
|
765
|
+
FileUtils.mkdir @default_spec_dir
|
766
|
+
end
|
767
|
+
|
725
768
|
##
|
726
769
|
# Install the provided specs
|
727
770
|
|
@@ -780,7 +823,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
780
823
|
#
|
781
824
|
# TODO: remove in RubyGems 4.0
|
782
825
|
|
783
|
-
def new_spec
|
826
|
+
def new_spec(name, version, deps = nil, *files) # :nodoc:
|
784
827
|
require 'rubygems/specification'
|
785
828
|
|
786
829
|
spec = Gem::Specification.new do |s|
|
@@ -804,7 +847,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
804
847
|
|
805
848
|
spec.loaded_from = spec.spec_file
|
806
849
|
|
807
|
-
unless files.empty?
|
850
|
+
unless files.empty?
|
808
851
|
write_file spec.spec_file do |io|
|
809
852
|
io.write spec.to_ruby_for_cache
|
810
853
|
end
|
@@ -819,8 +862,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
819
862
|
|
820
863
|
spec
|
821
864
|
end
|
822
|
-
|
823
|
-
# deprecate :new_spec, :none, 2018, 12
|
865
|
+
deprecate :new_spec, :none, 2018, 12
|
824
866
|
|
825
867
|
def new_default_spec(name, version, deps = nil, *files)
|
826
868
|
spec = util_spec name, version, deps
|
@@ -845,7 +887,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
845
887
|
# Creates a spec with +name+, +version+. +deps+ can specify the dependency
|
846
888
|
# or a +block+ can be given for full customization of the specification.
|
847
889
|
|
848
|
-
def util_spec
|
890
|
+
def util_spec(name, version = 2, deps = nil, *files) # :yields: specification
|
849
891
|
raise "deps or block, not both" if deps and block_given?
|
850
892
|
|
851
893
|
spec = Gem::Specification.new do |s|
|
@@ -858,10 +900,12 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
858
900
|
s.summary = "this is a summary"
|
859
901
|
s.description = "This is a test description"
|
860
902
|
|
903
|
+
s.files.push(*files) unless files.empty?
|
904
|
+
|
861
905
|
yield s if block_given?
|
862
906
|
end
|
863
907
|
|
864
|
-
if deps
|
908
|
+
if deps
|
865
909
|
# Since Hash#each is unordered in 1.8, sort the keys and iterate that
|
866
910
|
# way so the tests are deterministic on all implementations.
|
867
911
|
deps.keys.sort.each do |n|
|
@@ -869,6 +913,19 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
869
913
|
end
|
870
914
|
end
|
871
915
|
|
916
|
+
unless files.empty?
|
917
|
+
write_file spec.spec_file do |io|
|
918
|
+
io.write spec.to_ruby_for_cache
|
919
|
+
end
|
920
|
+
|
921
|
+
util_build_gem spec
|
922
|
+
|
923
|
+
cache_file = File.join @tempdir, 'gems', "#{spec.full_name}.gem"
|
924
|
+
FileUtils.mkdir_p File.dirname cache_file
|
925
|
+
FileUtils.mv spec.cache_file, cache_file
|
926
|
+
FileUtils.rm spec.spec_file
|
927
|
+
end
|
928
|
+
|
872
929
|
Gem::Specification.reset
|
873
930
|
|
874
931
|
return spec
|
@@ -881,10 +938,7 @@ class Gem::TestCase < (defined?(Minitest::Test) ? Minitest::Test : MiniTest::Uni
|
|
881
938
|
# location are returned.
|
882
939
|
|
883
940
|
def util_gem(name, version, deps = nil, &block)
|
884
|
-
|
885
|
-
raise "deps or block, not both" if deps and block
|
886
|
-
|
887
|
-
if deps then
|
941
|
+
if deps
|
888
942
|
block = proc do |s|
|
889
943
|
# Since Hash#each is unordered in 1.8, sort
|
890
944
|
# the keys and iterate that way so the tests are
|
@@ -1014,6 +1068,8 @@ Also, a list:
|
|
1014
1068
|
Gem.instance_variable_set :@platforms, nil
|
1015
1069
|
Gem::Platform.instance_variable_set :@local, nil
|
1016
1070
|
|
1071
|
+
yield if block_given?
|
1072
|
+
|
1017
1073
|
platform
|
1018
1074
|
end
|
1019
1075
|
|
@@ -1080,7 +1136,7 @@ Also, a list:
|
|
1080
1136
|
end
|
1081
1137
|
|
1082
1138
|
# HACK for test_download_to_cache
|
1083
|
-
unless Gem::RemoteFetcher === @fetcher
|
1139
|
+
unless Gem::RemoteFetcher === @fetcher
|
1084
1140
|
v = Gem.marshal_version
|
1085
1141
|
|
1086
1142
|
specs = all.map { |spec| spec.name_tuple }
|
@@ -1119,35 +1175,51 @@ Also, a list:
|
|
1119
1175
|
Zlib::Deflate.deflate data
|
1120
1176
|
end
|
1121
1177
|
|
1122
|
-
def util_set_RUBY_VERSION(version, patchlevel = nil, revision = nil)
|
1178
|
+
def util_set_RUBY_VERSION(version, patchlevel = nil, revision = nil, description = nil, engine = "ruby", engine_version = nil)
|
1123
1179
|
if Gem.instance_variables.include? :@ruby_version or
|
1124
|
-
Gem.instance_variables.include? '@ruby_version'
|
1180
|
+
Gem.instance_variables.include? '@ruby_version'
|
1125
1181
|
Gem.send :remove_instance_variable, :@ruby_version
|
1126
1182
|
end
|
1127
1183
|
|
1128
|
-
@RUBY_VERSION
|
1129
|
-
@RUBY_PATCHLEVEL
|
1130
|
-
@RUBY_REVISION
|
1184
|
+
@RUBY_VERSION = RUBY_VERSION
|
1185
|
+
@RUBY_PATCHLEVEL = RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
|
1186
|
+
@RUBY_REVISION = RUBY_REVISION if defined?(RUBY_REVISION)
|
1187
|
+
@RUBY_DESCRIPTION = RUBY_DESCRIPTION if defined?(RUBY_DESCRIPTION)
|
1188
|
+
@RUBY_ENGINE = RUBY_ENGINE
|
1189
|
+
@RUBY_ENGINE_VERSION = RUBY_ENGINE_VERSION if defined?(RUBY_ENGINE_VERSION)
|
1131
1190
|
|
1132
|
-
|
1133
|
-
Object.send :remove_const, :RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
|
1134
|
-
Object.send :remove_const, :RUBY_REVISION if defined?(RUBY_REVISION)
|
1191
|
+
util_clear_RUBY_VERSION
|
1135
1192
|
|
1136
|
-
Object.const_set :RUBY_VERSION,
|
1137
|
-
Object.const_set :RUBY_PATCHLEVEL,
|
1138
|
-
Object.const_set :RUBY_REVISION,
|
1193
|
+
Object.const_set :RUBY_VERSION, version
|
1194
|
+
Object.const_set :RUBY_PATCHLEVEL, patchlevel if patchlevel
|
1195
|
+
Object.const_set :RUBY_REVISION, revision if revision
|
1196
|
+
Object.const_set :RUBY_DESCRIPTION, description if description
|
1197
|
+
Object.const_set :RUBY_ENGINE, engine
|
1198
|
+
Object.const_set :RUBY_ENGINE_VERSION, engine_version if engine_version
|
1139
1199
|
end
|
1140
1200
|
|
1141
1201
|
def util_restore_RUBY_VERSION
|
1142
|
-
|
1143
|
-
Object.send :remove_const, :RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
|
1144
|
-
Object.send :remove_const, :RUBY_REVISION if defined?(RUBY_REVISION)
|
1202
|
+
util_clear_RUBY_VERSION
|
1145
1203
|
|
1146
|
-
Object.const_set :RUBY_VERSION,
|
1147
|
-
Object.const_set :RUBY_PATCHLEVEL,
|
1204
|
+
Object.const_set :RUBY_VERSION, @RUBY_VERSION
|
1205
|
+
Object.const_set :RUBY_PATCHLEVEL, @RUBY_PATCHLEVEL if
|
1148
1206
|
defined?(@RUBY_PATCHLEVEL)
|
1149
|
-
Object.const_set :RUBY_REVISION,
|
1207
|
+
Object.const_set :RUBY_REVISION, @RUBY_REVISION if
|
1150
1208
|
defined?(@RUBY_REVISION)
|
1209
|
+
Object.const_set :RUBY_DESCRIPTION, @RUBY_DESCRIPTION if
|
1210
|
+
defined?(@RUBY_DESCRIPTION)
|
1211
|
+
Object.const_set :RUBY_ENGINE, @RUBY_ENGINE
|
1212
|
+
Object.const_set :RUBY_ENGINE_VERSION, @RUBY_ENGINE_VERSION if
|
1213
|
+
defined?(@RUBY_ENGINE_VERSION)
|
1214
|
+
end
|
1215
|
+
|
1216
|
+
def util_clear_RUBY_VERSION
|
1217
|
+
Object.send :remove_const, :RUBY_VERSION
|
1218
|
+
Object.send :remove_const, :RUBY_PATCHLEVEL if defined?(RUBY_PATCHLEVEL)
|
1219
|
+
Object.send :remove_const, :RUBY_REVISION if defined?(RUBY_REVISION)
|
1220
|
+
Object.send :remove_const, :RUBY_DESCRIPTION if defined?(RUBY_DESCRIPTION)
|
1221
|
+
Object.send :remove_const, :RUBY_ENGINE
|
1222
|
+
Object.send :remove_const, :RUBY_ENGINE_VERSION if defined?(RUBY_ENGINE_VERSION)
|
1151
1223
|
end
|
1152
1224
|
|
1153
1225
|
##
|
@@ -1277,14 +1349,30 @@ Also, a list:
|
|
1277
1349
|
end
|
1278
1350
|
end
|
1279
1351
|
|
1352
|
+
class << self
|
1353
|
+
# :nodoc:
|
1354
|
+
##
|
1355
|
+
# Return the join path, with escaping backticks, dollars, and
|
1356
|
+
# double-quotes. Unlike `shellescape`, equal-sign is not escaped.
|
1357
|
+
private
|
1358
|
+
def escape_path(*path)
|
1359
|
+
path = File.join(*path)
|
1360
|
+
if %r'\A[-+:/=@,.\w]+\z' =~ path
|
1361
|
+
path
|
1362
|
+
else
|
1363
|
+
"\"#{path.gsub(/[`$"]/, '\\&')}\""
|
1364
|
+
end
|
1365
|
+
end
|
1366
|
+
end
|
1367
|
+
|
1280
1368
|
@@ruby = rubybin
|
1281
|
-
@@good_rake = "#{rubybin}
|
1282
|
-
@@bad_rake = "#{rubybin}
|
1369
|
+
@@good_rake = "#{rubybin} #{escape_path(TEST_PATH, 'good_rake.rb')}"
|
1370
|
+
@@bad_rake = "#{rubybin} #{escape_path(TEST_PATH, 'bad_rake.rb')}"
|
1283
1371
|
|
1284
1372
|
##
|
1285
1373
|
# Construct a new Gem::Dependency.
|
1286
1374
|
|
1287
|
-
def dep
|
1375
|
+
def dep(name, *requirements)
|
1288
1376
|
Gem::Dependency.new name, *requirements
|
1289
1377
|
end
|
1290
1378
|
|
@@ -1293,10 +1381,10 @@ Also, a list:
|
|
1293
1381
|
# Gem::Dependency +dep+, a +from_name+ and +from_version+ requesting the
|
1294
1382
|
# dependency and a +parent+ DependencyRequest
|
1295
1383
|
|
1296
|
-
def dependency_request
|
1384
|
+
def dependency_request(dep, from_name, from_version, parent = nil)
|
1297
1385
|
remote = Gem::Source.new @uri
|
1298
1386
|
|
1299
|
-
unless parent
|
1387
|
+
unless parent
|
1300
1388
|
parent_dep = dep from_name, from_version
|
1301
1389
|
parent = Gem::Resolver::DependencyRequest.new parent_dep, nil
|
1302
1390
|
end
|
@@ -1311,7 +1399,7 @@ Also, a list:
|
|
1311
1399
|
##
|
1312
1400
|
# Constructs a new Gem::Requirement.
|
1313
1401
|
|
1314
|
-
def req
|
1402
|
+
def req(*requirements)
|
1315
1403
|
return requirements.first if Gem::Requirement === requirements.first
|
1316
1404
|
Gem::Requirement.create requirements
|
1317
1405
|
end
|
@@ -1319,7 +1407,7 @@ Also, a list:
|
|
1319
1407
|
##
|
1320
1408
|
# Constructs a new Gem::Specification.
|
1321
1409
|
|
1322
|
-
def spec
|
1410
|
+
def spec(name, version, &block)
|
1323
1411
|
Gem::Specification.new name, v(version), &block
|
1324
1412
|
end
|
1325
1413
|
|
@@ -1343,7 +1431,7 @@ Also, a list:
|
|
1343
1431
|
# end
|
1344
1432
|
# end
|
1345
1433
|
|
1346
|
-
def spec_fetcher
|
1434
|
+
def spec_fetcher(repository = @gem_repo)
|
1347
1435
|
Gem::TestCase::SpecFetcherSetup.declare self, repository do |spec_fetcher_setup|
|
1348
1436
|
yield spec_fetcher_setup if block_given?
|
1349
1437
|
end
|
@@ -1352,7 +1440,7 @@ Also, a list:
|
|
1352
1440
|
##
|
1353
1441
|
# Construct a new Gem::Version.
|
1354
1442
|
|
1355
|
-
def v
|
1443
|
+
def v(string)
|
1356
1444
|
Gem::Version.create string
|
1357
1445
|
end
|
1358
1446
|
|
@@ -1362,7 +1450,7 @@ Also, a list:
|
|
1362
1450
|
#
|
1363
1451
|
# Yields the +specification+ to the block, if given
|
1364
1452
|
|
1365
|
-
def vendor_gem
|
1453
|
+
def vendor_gem(name = 'a', version = 1)
|
1366
1454
|
directory = File.join 'vendor', name
|
1367
1455
|
|
1368
1456
|
FileUtils.mkdir_p directory
|
@@ -1376,7 +1464,7 @@ Also, a list:
|
|
1376
1464
|
#
|
1377
1465
|
# Yields the +specification+ to the block, if given
|
1378
1466
|
|
1379
|
-
def save_gemspec
|
1467
|
+
def save_gemspec(name = 'a', version = 1, directory = '.')
|
1380
1468
|
vendor_spec = Gem::Specification.new name, version do |specification|
|
1381
1469
|
yield specification if block_given?
|
1382
1470
|
end
|
@@ -1413,7 +1501,7 @@ Also, a list:
|
|
1413
1501
|
##
|
1414
1502
|
# Adds +spec+ to this set.
|
1415
1503
|
|
1416
|
-
def add
|
1504
|
+
def add(spec)
|
1417
1505
|
@specs << spec
|
1418
1506
|
end
|
1419
1507
|
|
@@ -1437,7 +1525,7 @@ Also, a list:
|
|
1437
1525
|
# Loads a Gem::Specification from this set which has the given +name+,
|
1438
1526
|
# version +ver+, +platform+. The +source+ is ignored.
|
1439
1527
|
|
1440
|
-
def load_spec
|
1528
|
+
def load_spec(name, ver, platform, source)
|
1441
1529
|
dep = Gem::Dependency.new name, ver
|
1442
1530
|
spec = find_spec dep
|
1443
1531
|
|
@@ -1446,14 +1534,14 @@ Also, a list:
|
|
1446
1534
|
end
|
1447
1535
|
end
|
1448
1536
|
|
1449
|
-
def prefetch
|
1537
|
+
def prefetch(reqs) # :nodoc:
|
1450
1538
|
end
|
1451
1539
|
end
|
1452
1540
|
|
1453
1541
|
##
|
1454
1542
|
# Loads certificate named +cert_name+ from <tt>test/rubygems/</tt>.
|
1455
1543
|
|
1456
|
-
def self.load_cert
|
1544
|
+
def self.load_cert(cert_name)
|
1457
1545
|
cert_file = cert_path cert_name
|
1458
1546
|
|
1459
1547
|
cert = File.read cert_file
|
@@ -1465,22 +1553,20 @@ Also, a list:
|
|
1465
1553
|
# Returns the path to the certificate named +cert_name+ from
|
1466
1554
|
# <tt>test/rubygems/</tt>.
|
1467
1555
|
|
1468
|
-
def self.cert_path
|
1469
|
-
if 32 == (Time.at(2**32) rescue 32)
|
1470
|
-
cert_file =
|
1471
|
-
File.expand_path "../../../test/rubygems/#{cert_name}_cert_32.pem",
|
1472
|
-
__FILE__
|
1556
|
+
def self.cert_path(cert_name)
|
1557
|
+
if 32 == (Time.at(2**32) rescue 32)
|
1558
|
+
cert_file = "#{TEST_PATH}/#{cert_name}_cert_32.pem"
|
1473
1559
|
|
1474
1560
|
return cert_file if File.exist? cert_file
|
1475
1561
|
end
|
1476
1562
|
|
1477
|
-
|
1563
|
+
"#{TEST_PATH}/#{cert_name}_cert.pem"
|
1478
1564
|
end
|
1479
1565
|
|
1480
1566
|
##
|
1481
1567
|
# Loads an RSA private key named +key_name+ with +passphrase+ in <tt>test/rubygems/</tt>
|
1482
1568
|
|
1483
|
-
def self.load_key
|
1569
|
+
def self.load_key(key_name, passphrase = nil)
|
1484
1570
|
key_file = key_path key_name
|
1485
1571
|
|
1486
1572
|
key = File.read key_file
|
@@ -1491,14 +1577,14 @@ Also, a list:
|
|
1491
1577
|
##
|
1492
1578
|
# Returns the path to the key named +key_name+ from <tt>test/rubygems</tt>
|
1493
1579
|
|
1494
|
-
def self.key_path
|
1495
|
-
|
1580
|
+
def self.key_path(key_name)
|
1581
|
+
"#{TEST_PATH}/#{key_name}_key.pem"
|
1496
1582
|
end
|
1497
1583
|
|
1498
1584
|
# :stopdoc:
|
1499
1585
|
# only available in RubyGems tests
|
1500
1586
|
|
1501
|
-
PRIVATE_KEY_PASSPHRASE = 'Foo bar'
|
1587
|
+
PRIVATE_KEY_PASSPHRASE = 'Foo bar'.freeze
|
1502
1588
|
|
1503
1589
|
begin
|
1504
1590
|
PRIVATE_KEY = load_key 'private'
|