rubygems-update 3.4.22 → 3.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +99 -2
- data/Manifest.txt +34 -221
- data/README.md +1 -3
- data/bundler/CHANGELOG.md +53 -0
- data/bundler/bundler.gemspec +4 -2
- data/bundler/exe/bundle +1 -10
- data/bundler/lib/bundler/build_metadata.rb +3 -3
- data/bundler/lib/bundler/capistrano.rb +1 -1
- data/bundler/lib/bundler/checksum.rb +245 -0
- data/bundler/lib/bundler/ci_detector.rb +75 -0
- data/bundler/lib/bundler/cli/add.rb +3 -3
- data/bundler/lib/bundler/cli/binstubs.rb +4 -4
- data/bundler/lib/bundler/cli/cache.rb +1 -1
- data/bundler/lib/bundler/cli/check.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +9 -1
- data/bundler/lib/bundler/cli/config.rb +8 -7
- data/bundler/lib/bundler/cli/console.rb +3 -2
- data/bundler/lib/bundler/cli/doctor.rb +2 -2
- data/bundler/lib/bundler/cli/exec.rb +1 -1
- data/bundler/lib/bundler/cli/gem.rb +28 -23
- data/bundler/lib/bundler/cli/info.rb +2 -13
- data/bundler/lib/bundler/cli/install.rb +5 -4
- data/bundler/lib/bundler/cli/issue.rb +1 -1
- data/bundler/lib/bundler/cli/lock.rb +4 -4
- data/bundler/lib/bundler/cli/open.rb +1 -1
- data/bundler/lib/bundler/cli/outdated.rb +6 -6
- data/bundler/lib/bundler/cli/plugin.rb +7 -14
- data/bundler/lib/bundler/cli/pristine.rb +38 -30
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli/update.rb +5 -5
- data/bundler/lib/bundler/cli.rb +215 -263
- data/bundler/lib/bundler/compact_index_client/cache.rb +29 -9
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +153 -0
- data/bundler/lib/bundler/compact_index_client/gem_parser.rb +7 -3
- data/bundler/lib/bundler/compact_index_client/updater.rb +79 -81
- data/bundler/lib/bundler/compact_index_client.rb +14 -7
- data/bundler/lib/bundler/constants.rb +1 -1
- data/bundler/lib/bundler/current_ruby.rb +5 -21
- data/bundler/lib/bundler/definition.rb +42 -15
- data/bundler/lib/bundler/dependency.rb +16 -12
- data/bundler/lib/bundler/digest.rb +2 -2
- data/bundler/lib/bundler/dsl.rb +43 -25
- data/bundler/lib/bundler/endpoint_specification.rb +5 -1
- data/bundler/lib/bundler/env.rb +1 -3
- data/bundler/lib/bundler/errors.rb +43 -0
- data/bundler/lib/bundler/fetcher/base.rb +3 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +4 -4
- data/bundler/lib/bundler/fetcher/downloader.rb +13 -11
- data/bundler/lib/bundler/fetcher/gem_remote_fetcher.rb +16 -0
- data/bundler/lib/bundler/fetcher/index.rb +1 -1
- data/bundler/lib/bundler/fetcher.rb +28 -25
- data/bundler/lib/bundler/friendly_errors.rb +5 -5
- data/bundler/lib/bundler/gem_helper.rb +1 -1
- data/bundler/lib/bundler/gem_helpers.rb +5 -2
- data/bundler/lib/bundler/graph.rb +9 -9
- data/bundler/lib/bundler/index.rb +1 -2
- data/bundler/lib/bundler/injector.rb +1 -1
- data/bundler/lib/bundler/inline.rb +3 -3
- data/bundler/lib/bundler/installer/gem_installer.rb +5 -5
- data/bundler/lib/bundler/installer/parallel_installer.rb +16 -8
- data/bundler/lib/bundler/installer/standalone.rb +2 -3
- data/bundler/lib/bundler/installer.rb +9 -9
- data/bundler/lib/bundler/lazy_specification.rb +24 -17
- data/bundler/lib/bundler/lockfile_generator.rb +9 -0
- data/bundler/lib/bundler/lockfile_parser.rb +81 -10
- data/bundler/lib/bundler/man/bundle-add.1 +3 -26
- data/bundler/lib/bundler/man/bundle-binstubs.1 +4 -16
- data/bundler/lib/bundler/man/bundle-cache.1 +3 -24
- data/bundler/lib/bundler/man/bundle-check.1 +3 -12
- data/bundler/lib/bundler/man/bundle-clean.1 +3 -10
- data/bundler/lib/bundler/man/bundle-config.1 +20 -211
- data/bundler/lib/bundler/man/bundle-config.1.ronn +6 -0
- data/bundler/lib/bundler/man/bundle-console.1 +4 -22
- data/bundler/lib/bundler/man/bundle-doctor.1 +4 -18
- data/bundler/lib/bundler/man/bundle-exec.1 +12 -73
- data/bundler/lib/bundler/man/bundle-gem.1 +13 -49
- data/bundler/lib/bundler/man/bundle-help.1 +3 -7
- data/bundler/lib/bundler/man/bundle-info.1 +3 -9
- data/bundler/lib/bundler/man/bundle-init.1 +3 -12
- data/bundler/lib/bundler/man/bundle-inject.1 +6 -19
- data/bundler/lib/bundler/man/bundle-install.1 +27 -125
- data/bundler/lib/bundler/man/bundle-install.1.ronn +1 -0
- data/bundler/lib/bundler/man/bundle-list.1 +4 -19
- data/bundler/lib/bundler/man/bundle-lock.1 +5 -29
- data/bundler/lib/bundler/man/bundle-open.1 +7 -27
- data/bundler/lib/bundler/man/bundle-outdated.1 +3 -55
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +1 -0
- data/bundler/lib/bundler/man/bundle-platform.1 +5 -27
- data/bundler/lib/bundler/man/bundle-plugin.1 +3 -29
- data/bundler/lib/bundler/man/bundle-pristine.1 +5 -16
- data/bundler/lib/bundler/man/bundle-remove.1 +4 -14
- data/bundler/lib/bundler/man/bundle-show.1 +3 -10
- data/bundler/lib/bundler/man/bundle-update.1 +18 -137
- data/bundler/lib/bundler/man/bundle-version.1 +3 -16
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -16
- data/bundler/lib/bundler/man/bundle.1 +5 -44
- data/bundler/lib/bundler/man/gemfile.5 +24 -301
- data/bundler/lib/bundler/man/gemfile.5.ronn +4 -0
- data/bundler/lib/bundler/match_metadata.rb +4 -0
- data/bundler/lib/bundler/match_platform.rb +1 -1
- data/bundler/lib/bundler/plugin/api/source.rb +3 -2
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin.rb +3 -3
- data/bundler/lib/bundler/resolver/base.rb +1 -1
- data/bundler/lib/bundler/resolver/incompatibility.rb +1 -1
- data/bundler/lib/bundler/resolver/spec_group.rb +1 -4
- data/bundler/lib/bundler/resolver.rb +16 -16
- data/bundler/lib/bundler/ruby_dsl.rb +20 -12
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +24 -50
- data/bundler/lib/bundler/rubygems_gem_installer.rb +6 -56
- data/bundler/lib/bundler/rubygems_integration.rb +25 -94
- data/bundler/lib/bundler/runtime.rb +2 -2
- data/bundler/lib/bundler/self_manager.rb +23 -7
- data/bundler/lib/bundler/settings.rb +27 -7
- data/bundler/lib/bundler/setup.rb +4 -1
- data/bundler/lib/bundler/shared_helpers.rb +35 -13
- data/bundler/lib/bundler/source/git/git_proxy.rb +15 -15
- data/bundler/lib/bundler/source/git.rb +4 -3
- data/bundler/lib/bundler/source/metadata.rb +15 -15
- data/bundler/lib/bundler/source/path.rb +7 -6
- data/bundler/lib/bundler/source/rubygems.rb +21 -14
- data/bundler/lib/bundler/source.rb +2 -0
- data/bundler/lib/bundler/spec_set.rb +38 -10
- data/bundler/lib/bundler/stub_specification.rb +1 -0
- data/bundler/lib/bundler/templates/Executable.bundler +1 -1
- data/bundler/lib/bundler/templates/newgem/README.md.tt +3 -3
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +2 -6
- data/bundler/lib/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/standard.yml.tt +1 -1
- data/bundler/lib/bundler/ui/shell.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +53 -6
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +8 -20
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +3 -3
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +2 -2
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +1 -1
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +35 -35
- data/bundler/lib/bundler/vendor/tsort/lib/tsort.rb +3 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +256 -132
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +1 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +95 -31
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendored_net_http.rb +8 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -4
- data/bundler/lib/bundler/vendored_timeout.rb +8 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/vlad.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +3 -3
- data/bundler/lib/bundler.rb +38 -27
- data/lib/rubygems/available_set.rb +4 -4
- data/lib/rubygems/basic_specification.rb +35 -37
- data/lib/rubygems/bundler_version_finder.rb +4 -4
- data/lib/rubygems/ci_detector.rb +75 -0
- data/lib/rubygems/command.rb +13 -15
- data/lib/rubygems/command_manager.rb +5 -4
- data/lib/rubygems/commands/build_command.rb +2 -2
- data/lib/rubygems/commands/cert_command.rb +1 -2
- data/lib/rubygems/commands/check_command.rb +4 -4
- data/lib/rubygems/commands/cleanup_command.rb +12 -14
- data/lib/rubygems/commands/contents_command.rb +4 -4
- data/lib/rubygems/commands/dependency_command.rb +4 -5
- data/lib/rubygems/commands/environment_command.rb +1 -3
- data/lib/rubygems/commands/exec_command.rb +1 -1
- data/lib/rubygems/commands/fetch_command.rb +2 -2
- data/lib/rubygems/commands/generate_index_command.rb +39 -74
- data/lib/rubygems/commands/help_command.rb +3 -3
- data/lib/rubygems/commands/info_command.rb +2 -2
- data/lib/rubygems/commands/install_command.rb +8 -16
- data/lib/rubygems/commands/list_command.rb +2 -2
- data/lib/rubygems/commands/lock_command.rb +1 -1
- data/lib/rubygems/commands/open_command.rb +1 -1
- data/lib/rubygems/commands/owner_command.rb +1 -1
- data/lib/rubygems/commands/pristine_command.rb +13 -15
- data/lib/rubygems/commands/push_command.rb +2 -2
- data/lib/rubygems/commands/query_command.rb +4 -5
- data/lib/rubygems/commands/rdoc_command.rb +2 -2
- data/lib/rubygems/commands/search_command.rb +2 -2
- data/lib/rubygems/commands/setup_command.rb +31 -34
- data/lib/rubygems/commands/sources_command.rb +12 -12
- data/lib/rubygems/commands/specification_command.rb +10 -10
- data/lib/rubygems/commands/stale_command.rb +1 -1
- data/lib/rubygems/commands/uninstall_command.rb +9 -10
- data/lib/rubygems/commands/unpack_command.rb +4 -4
- data/lib/rubygems/commands/update_command.rb +10 -12
- data/lib/rubygems/commands/which_command.rb +1 -1
- data/lib/rubygems/commands/yank_command.rb +1 -1
- data/lib/rubygems/compatibility.rb +5 -6
- data/lib/rubygems/config_file.rb +4 -4
- data/lib/rubygems/core_ext/kernel_gem.rb +0 -2
- data/lib/rubygems/core_ext/kernel_require.rb +19 -48
- data/lib/rubygems/core_ext/kernel_warn.rb +1 -1
- data/lib/rubygems/core_ext/tcpsocket_init.rb +1 -1
- data/lib/rubygems/defaults.rb +15 -3
- data/lib/rubygems/dependency.rb +12 -14
- data/lib/rubygems/dependency_installer.rb +29 -30
- data/lib/rubygems/dependency_list.rb +1 -1
- data/lib/rubygems/deprecate.rb +16 -15
- data/lib/rubygems/doctor.rb +5 -5
- data/lib/rubygems/errors.rb +2 -6
- data/lib/rubygems/exceptions.rb +2 -1
- data/lib/rubygems/ext/builder.rb +15 -10
- data/lib/rubygems/ext/cargo_builder.rb +5 -5
- data/lib/rubygems/ext/ext_conf_builder.rb +1 -3
- data/lib/rubygems/gem_runner.rb +4 -4
- data/lib/rubygems/gemcutter_utilities/webauthn_listener/response.rb +3 -3
- data/lib/rubygems/gemcutter_utilities/webauthn_poller.rb +3 -3
- data/lib/rubygems/gemcutter_utilities.rb +18 -19
- data/lib/rubygems/install_update_options.rb +18 -19
- data/lib/rubygems/installer.rb +59 -33
- data/lib/rubygems/installer_uninstaller_utils.rb +0 -2
- data/lib/rubygems/local_remote_options.rb +7 -10
- data/lib/rubygems/name_tuple.rb +7 -9
- data/lib/rubygems/net/http.rb +3 -0
- data/lib/rubygems/net-http/LICENSE.txt +22 -0
- data/lib/rubygems/net-http/lib/net/http/backward.rb +40 -0
- data/lib/rubygems/net-http/lib/net/http/exceptions.rb +34 -0
- data/lib/rubygems/net-http/lib/net/http/generic_request.rb +414 -0
- data/lib/rubygems/net-http/lib/net/http/header.rb +981 -0
- data/lib/rubygems/net-http/lib/net/http/proxy_delta.rb +17 -0
- data/lib/rubygems/net-http/lib/net/http/request.rb +88 -0
- data/lib/rubygems/net-http/lib/net/http/requests.rb +425 -0
- data/lib/rubygems/net-http/lib/net/http/response.rb +738 -0
- data/lib/rubygems/net-http/lib/net/http/responses.rb +1174 -0
- data/lib/rubygems/net-http/lib/net/http/status.rb +84 -0
- data/lib/rubygems/net-http/lib/net/http.rb +2496 -0
- data/lib/rubygems/net-http/lib/net/https.rb +23 -0
- data/lib/rubygems/net-protocol/LICENSE.txt +22 -0
- data/lib/rubygems/net-protocol/lib/net/protocol.rb +544 -0
- data/lib/rubygems/optparse/lib/optparse.rb +39 -17
- data/lib/rubygems/package/old.rb +2 -2
- data/lib/rubygems/package/tar_header.rb +45 -39
- data/lib/rubygems/package/tar_reader/entry.rb +5 -4
- data/lib/rubygems/package/tar_reader.rb +5 -3
- data/lib/rubygems/package/tar_writer.rb +19 -17
- data/lib/rubygems/package.rb +27 -26
- data/lib/rubygems/package_task.rb +2 -2
- data/lib/rubygems/path_support.rb +9 -10
- data/lib/rubygems/platform.rb +60 -45
- data/lib/rubygems/query_utils.rb +7 -9
- data/lib/rubygems/remote_fetcher.rb +15 -15
- data/lib/rubygems/request/connection_pools.rb +3 -3
- data/lib/rubygems/request.rb +20 -17
- data/lib/rubygems/request_set/gem_dependency_api.rb +119 -122
- data/lib/rubygems/request_set/lockfile/parser.rb +9 -9
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +20 -12
- data/lib/rubygems/request_set/lockfile.rb +6 -11
- data/lib/rubygems/request_set.rb +5 -5
- data/lib/rubygems/requirement.rb +7 -7
- data/lib/rubygems/resolv/LICENSE.txt +22 -0
- data/lib/rubygems/resolv/lib/resolv.rb +3387 -0
- data/lib/rubygems/resolver/activation_request.rb +1 -3
- data/lib/rubygems/resolver/api_set/gem_parser.rb +7 -3
- data/lib/rubygems/resolver/best_set.rb +1 -1
- data/lib/rubygems/resolver/composed_set.rb +1 -1
- data/lib/rubygems/resolver/conflict.rb +4 -12
- data/lib/rubygems/resolver/index_set.rb +4 -4
- data/lib/rubygems/resolver/index_specification.rb +2 -2
- data/lib/rubygems/resolver/installer_set.rb +5 -6
- data/lib/rubygems/resolver/lock_set.rb +1 -1
- data/lib/rubygems/resolver.rb +3 -10
- data/lib/rubygems/s3_uri_signer.rb +6 -6
- data/lib/rubygems/safe_marshal/elements.rb +138 -0
- data/lib/rubygems/safe_marshal/reader.rb +306 -0
- data/lib/rubygems/safe_marshal/visitors/stream_printer.rb +31 -0
- data/lib/rubygems/safe_marshal/visitors/to_ruby.rb +385 -0
- data/lib/rubygems/safe_marshal/visitors/visitor.rb +74 -0
- data/lib/rubygems/safe_marshal.rb +74 -0
- data/lib/rubygems/safe_yaml.rb +5 -28
- data/lib/rubygems/security/policies.rb +36 -38
- data/lib/rubygems/security/policy.rb +7 -11
- data/lib/rubygems/security/signer.rb +1 -1
- data/lib/rubygems/security/trust_dir.rb +3 -3
- data/lib/rubygems/security.rb +8 -22
- data/lib/rubygems/source/git.rb +1 -3
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +5 -8
- data/lib/rubygems/source/lock.rb +1 -3
- data/lib/rubygems/source/specific_file.rb +0 -1
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source.rb +12 -12
- data/lib/rubygems/source_list.rb +4 -4
- data/lib/rubygems/spec_fetcher.rb +29 -29
- data/lib/rubygems/specification.rb +125 -138
- data/lib/rubygems/specification_policy.rb +55 -25
- data/lib/rubygems/stub_specification.rb +4 -5
- data/lib/rubygems/text.rb +1 -2
- data/lib/rubygems/timeout/LICENSE.txt +22 -0
- data/lib/rubygems/timeout/lib/timeout.rb +199 -0
- data/lib/rubygems/timeout.rb +3 -0
- data/lib/rubygems/tsort/lib/tsort.rb +3 -0
- data/lib/rubygems/uninstaller.rb +7 -9
- data/lib/rubygems/update_suggestion.rb +5 -18
- data/lib/rubygems/uri_formatter.rb +1 -1
- data/lib/rubygems/user_interaction.rb +15 -21
- data/lib/rubygems/util/licenses.rb +65 -35
- data/lib/rubygems/util/list.rb +3 -1
- data/lib/rubygems/util.rb +2 -4
- data/lib/rubygems/validator.rb +5 -3
- data/lib/rubygems/version.rb +34 -28
- data/lib/rubygems/version_option.rb +2 -5
- data/lib/rubygems/yaml_serializer.rb +3 -3
- data/lib/rubygems.rb +37 -37
- data/rubygems-update.gemspec +4 -4
- data/setup.rb +2 -2
- metadata +38 -225
- data/lib/rubygems/indexer.rb +0 -428
- data/lib/rubygems/mock_gem_ui.rb +0 -86
- data/test/rubygems/alternate_cert.pem +0 -19
- data/test/rubygems/alternate_cert_32.pem +0 -19
- data/test/rubygems/alternate_key.pem +0 -27
- data/test/rubygems/bad_rake.rb +0 -3
- data/test/rubygems/bundler_test_gem.rb +0 -424
- data/test/rubygems/ca_cert.pem +0 -77
- data/test/rubygems/child_cert.pem +0 -19
- data/test/rubygems/child_cert_32.pem +0 -19
- data/test/rubygems/child_key.pem +0 -27
- data/test/rubygems/client.pem +0 -107
- data/test/rubygems/data/excon-0.7.7.gemspec.rz +0 -0
- data/test/rubygems/data/gem-private_key.pem +0 -27
- data/test/rubygems/data/gem-public_cert.pem +0 -20
- data/test/rubygems/data/null-required-ruby-version.gemspec.rz +0 -0
- data/test/rubygems/data/null-required-rubygems-version.gemspec.rz +0 -0
- data/test/rubygems/data/pry-0.4.7.gemspec.rz +0 -0
- data/test/rubygems/encrypted_private_key.pem +0 -30
- data/test/rubygems/expired_cert.pem +0 -19
- data/test/rubygems/fake_certlib/openssl.rb +0 -9
- data/test/rubygems/foo/discover.rb +0 -1
- data/test/rubygems/future_cert.pem +0 -19
- data/test/rubygems/future_cert_32.pem +0 -19
- data/test/rubygems/good_rake.rb +0 -3
- data/test/rubygems/grandchild_cert.pem +0 -19
- data/test/rubygems/grandchild_cert_32.pem +0 -19
- data/test/rubygems/grandchild_key.pem +0 -27
- data/test/rubygems/helper.rb +0 -1649
- data/test/rubygems/installer_test_case.rb +0 -248
- data/test/rubygems/invalid_client.pem +0 -49
- data/test/rubygems/invalid_issuer_cert.pem +0 -20
- data/test/rubygems/invalid_issuer_cert_32.pem +0 -20
- data/test/rubygems/invalid_key.pem +0 -27
- data/test/rubygems/invalid_signer_cert.pem +0 -19
- data/test/rubygems/invalid_signer_cert_32.pem +0 -19
- data/test/rubygems/invalidchild_cert.pem +0 -19
- data/test/rubygems/invalidchild_cert_32.pem +0 -19
- data/test/rubygems/invalidchild_key.pem +0 -27
- data/test/rubygems/multifactor_auth_utilities.rb +0 -111
- data/test/rubygems/package/tar_test_case.rb +0 -175
- data/test/rubygems/packages/Bluebie-legs-0.6.2.gem +0 -0
- data/test/rubygems/packages/ascii_binder-0.1.10.1.gem +0 -0
- data/test/rubygems/packages/ill-formatted-platform-1.0.0.10.gem +0 -0
- data/test/rubygems/plugin/exception/rubygems_plugin.rb +0 -4
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -5
- data/test/rubygems/plugin/standarderror/rubygems_plugin.rb +0 -4
- data/test/rubygems/private3072_key.pem +0 -40
- data/test/rubygems/private_ec_key.pem +0 -9
- data/test/rubygems/private_key.pem +0 -27
- data/test/rubygems/public3072_cert.pem +0 -25
- data/test/rubygems/public_cert.pem +0 -20
- data/test/rubygems/public_cert_32.pem +0 -19
- data/test/rubygems/public_key.pem +0 -9
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -5
- data/test/rubygems/rubygems_plugin.rb +0 -24
- data/test/rubygems/sff/discover.rb +0 -1
- data/test/rubygems/simple_gem.rb +0 -68
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -9
- data/test/rubygems/specifications/foo-0.0.1-x86-mswin32.gemspec +0 -0
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +0 -14
- data/test/rubygems/ssl_cert.pem +0 -80
- data/test/rubygems/ssl_key.pem +0 -27
- data/test/rubygems/test_bundled_ca.rb +0 -61
- data/test/rubygems/test_config.rb +0 -28
- data/test/rubygems/test_deprecate.rb +0 -158
- data/test/rubygems/test_exit.rb +0 -17
- data/test/rubygems/test_gem.rb +0 -1799
- data/test/rubygems/test_gem_available_set.rb +0 -130
- data/test/rubygems/test_gem_bundler_version_finder.rb +0 -127
- data/test/rubygems/test_gem_command.rb +0 -403
- data/test/rubygems/test_gem_command_manager.rb +0 -400
- data/test/rubygems/test_gem_commands_build_command.rb +0 -739
- data/test/rubygems/test_gem_commands_cert_command.rb +0 -866
- data/test/rubygems/test_gem_commands_check_command.rb +0 -68
- data/test/rubygems/test_gem_commands_cleanup_command.rb +0 -292
- data/test/rubygems/test_gem_commands_contents_command.rb +0 -271
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -228
- data/test/rubygems/test_gem_commands_environment_command.rb +0 -169
- data/test/rubygems/test_gem_commands_exec_command.rb +0 -857
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -258
- data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -81
- data/test/rubygems/test_gem_commands_help_command.rb +0 -94
- data/test/rubygems/test_gem_commands_info_command.rb +0 -70
- data/test/rubygems/test_gem_commands_install_command.rb +0 -1573
- data/test/rubygems/test_gem_commands_list_command.rb +0 -33
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -67
- data/test/rubygems/test_gem_commands_mirror.rb +0 -20
- data/test/rubygems/test_gem_commands_open_command.rb +0 -101
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -50
- data/test/rubygems/test_gem_commands_owner_command.rb +0 -503
- data/test/rubygems/test_gem_commands_pristine_command.rb +0 -708
- data/test/rubygems/test_gem_commands_push_command.rb +0 -603
- data/test/rubygems/test_gem_commands_query_command.rb +0 -858
- data/test/rubygems/test_gem_commands_search_command.rb +0 -16
- data/test/rubygems/test_gem_commands_server_command.rb +0 -20
- data/test/rubygems/test_gem_commands_setup_command.rb +0 -474
- data/test/rubygems/test_gem_commands_signin_command.rb +0 -259
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -30
- data/test/rubygems/test_gem_commands_sources_command.rb +0 -534
- data/test/rubygems/test_gem_commands_specification_command.rb +0 -277
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -43
- data/test/rubygems/test_gem_commands_uninstall_command.rb +0 -542
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -224
- data/test/rubygems/test_gem_commands_update_command.rb +0 -836
- data/test/rubygems/test_gem_commands_which_command.rb +0 -85
- data/test/rubygems/test_gem_commands_yank_command.rb +0 -299
- data/test/rubygems/test_gem_config_file.rb +0 -551
- data/test/rubygems/test_gem_dependency.rb +0 -398
- data/test/rubygems/test_gem_dependency_installer.rb +0 -1190
- data/test/rubygems/test_gem_dependency_list.rb +0 -265
- data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -27
- data/test/rubygems/test_gem_doctor.rb +0 -195
- data/test/rubygems/test_gem_ext_builder.rb +0 -337
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/custom_name.gemspec +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.lock +0 -249
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib/src/lib.rs +0 -27
- data/test/rubygems/test_gem_ext_cargo_builder/custom_name/lib/custom_name.rb +0 -3
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/.gitignore +0 -1
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.lock +0 -249
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/Cargo.toml +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/rust_ruby_example.gemspec +0 -10
- data/test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example/src/lib.rs +0 -51
- data/test/rubygems/test_gem_ext_cargo_builder.rb +0 -167
- data/test/rubygems/test_gem_ext_cargo_builder_link_flag_converter.rb +0 -34
- data/test/rubygems/test_gem_ext_cargo_builder_unit.rb +0 -60
- data/test/rubygems/test_gem_ext_cmake_builder.rb +0 -84
- data/test/rubygems/test_gem_ext_configure_builder.rb +0 -80
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +0 -229
- data/test/rubygems/test_gem_ext_rake_builder.rb +0 -113
- data/test/rubygems/test_gem_gem_runner.rb +0 -119
- data/test/rubygems/test_gem_gemcutter_utilities.rb +0 -361
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -60
- data/test/rubygems/test_gem_indexer.rb +0 -381
- data/test/rubygems/test_gem_install_update_options.rb +0 -208
- data/test/rubygems/test_gem_installer.rb +0 -2512
- data/test/rubygems/test_gem_local_remote_options.rb +0 -133
- data/test/rubygems/test_gem_name_tuple.rb +0 -43
- data/test/rubygems/test_gem_package.rb +0 -1306
- data/test/rubygems/test_gem_package_old.rb +0 -91
- data/test/rubygems/test_gem_package_tar_header.rb +0 -226
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -150
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -350
- data/test/rubygems/test_gem_package_tar_writer.rb +0 -331
- data/test/rubygems/test_gem_package_task.rb +0 -118
- data/test/rubygems/test_gem_path_support.rb +0 -139
- data/test/rubygems/test_gem_platform.rb +0 -497
- data/test/rubygems/test_gem_rdoc.rb +0 -137
- data/test/rubygems/test_gem_remote_fetcher.rb +0 -1227
- data/test/rubygems/test_gem_request.rb +0 -547
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -152
- data/test/rubygems/test_gem_request_set.rb +0 -672
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +0 -853
- data/test/rubygems/test_gem_request_set_lockfile.rb +0 -469
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +0 -544
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +0 -307
- data/test/rubygems/test_gem_requirement.rb +0 -505
- data/test/rubygems/test_gem_resolver.rb +0 -859
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -43
- data/test/rubygems/test_gem_resolver_api_set.rb +0 -210
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -167
- data/test/rubygems/test_gem_resolver_best_set.rb +0 -159
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -44
- data/test/rubygems/test_gem_resolver_conflict.rb +0 -82
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -83
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -188
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -114
- data/test/rubygems/test_gem_resolver_index_set.rb +0 -88
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -93
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -47
- data/test/rubygems/test_gem_resolver_installer_set.rb +0 -320
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -44
- data/test/rubygems/test_gem_resolver_lock_set.rb +0 -62
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -98
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -19
- data/test/rubygems/test_gem_resolver_specification.rb +0 -63
- data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -82
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -82
- data/test/rubygems/test_gem_security.rb +0 -341
- data/test/rubygems/test_gem_security_policy.rb +0 -535
- data/test/rubygems/test_gem_security_signer.rb +0 -218
- data/test/rubygems/test_gem_security_trust_dir.rb +0 -99
- data/test/rubygems/test_gem_silent_ui.rb +0 -123
- data/test/rubygems/test_gem_source.rb +0 -254
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -37
- data/test/rubygems/test_gem_source_git.rb +0 -310
- data/test/rubygems/test_gem_source_installed.rb +0 -35
- data/test/rubygems/test_gem_source_list.rb +0 -119
- data/test/rubygems/test_gem_source_local.rb +0 -107
- data/test/rubygems/test_gem_source_lock.rb +0 -113
- data/test/rubygems/test_gem_source_specific_file.rb +0 -76
- data/test/rubygems/test_gem_source_subpath_problem.rb +0 -50
- data/test/rubygems/test_gem_source_vendor.rb +0 -30
- data/test/rubygems/test_gem_spec_fetcher.rb +0 -338
- data/test/rubygems/test_gem_specification.rb +0 -3856
- data/test/rubygems/test_gem_stream_ui.rb +0 -255
- data/test/rubygems/test_gem_stub_specification.rb +0 -278
- data/test/rubygems/test_gem_text.rb +0 -103
- data/test/rubygems/test_gem_uninstaller.rb +0 -675
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -31
- data/test/rubygems/test_gem_update_suggestion.rb +0 -209
- data/test/rubygems/test_gem_uri.rb +0 -41
- data/test/rubygems/test_gem_uri_formatter.rb +0 -27
- data/test/rubygems/test_gem_util.rb +0 -91
- data/test/rubygems/test_gem_validator.rb +0 -42
- data/test/rubygems/test_gem_version.rb +0 -305
- data/test/rubygems/test_gem_version_option.rb +0 -165
- data/test/rubygems/test_kernel.rb +0 -124
- data/test/rubygems/test_project_sanity.rb +0 -49
- data/test/rubygems/test_remote_fetch_error.rb +0 -20
- data/test/rubygems/test_require.rb +0 -732
- data/test/rubygems/test_rubygems.rb +0 -76
- data/test/rubygems/test_webauthn_listener.rb +0 -143
- data/test/rubygems/test_webauthn_listener_response.rb +0 -93
- data/test/rubygems/test_webauthn_poller.rb +0 -124
- data/test/rubygems/utilities.rb +0 -436
- data/test/rubygems/wrong_key_cert.pem +0 -19
- data/test/rubygems/wrong_key_cert_32.pem +0 -19
- data/test/test_changelog_generator.rb +0 -17
@@ -1,255 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "helper"
|
4
|
-
require "rubygems/user_interaction"
|
5
|
-
require "timeout"
|
6
|
-
|
7
|
-
class TestGemStreamUI < Gem::TestCase
|
8
|
-
# increase timeout with RJIT for --jit-wait testing
|
9
|
-
rjit_enabled = defined?(RubyVM::RJIT) && RubyVM::RJIT.enabled?
|
10
|
-
SHORT_TIMEOUT = (RUBY_ENGINE == "ruby" && !rjit_enabled) ? 0.1 : 1.0
|
11
|
-
|
12
|
-
module IsTty
|
13
|
-
attr_accessor :tty
|
14
|
-
|
15
|
-
def tty?
|
16
|
-
@tty = true unless defined? @tty
|
17
|
-
@tty
|
18
|
-
end
|
19
|
-
|
20
|
-
alias_method :isatty, :tty?
|
21
|
-
|
22
|
-
def noecho
|
23
|
-
yield self
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def setup
|
28
|
-
super
|
29
|
-
|
30
|
-
@cfg = Gem.configuration
|
31
|
-
|
32
|
-
@in = StringIO.new
|
33
|
-
@out = StringIO.new
|
34
|
-
@err = StringIO.new
|
35
|
-
|
36
|
-
@in.extend IsTty
|
37
|
-
@out.extend IsTty
|
38
|
-
|
39
|
-
@sui = Gem::StreamUI.new @in, @out, @err, true
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_ask
|
43
|
-
Timeout.timeout(5) do
|
44
|
-
expected_answer = "Arthur, King of the Britons"
|
45
|
-
@in.string = "#{expected_answer}\n"
|
46
|
-
actual_answer = @sui.ask("What is your name?")
|
47
|
-
assert_equal expected_answer, actual_answer
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_ask_no_tty
|
52
|
-
@in.tty = false
|
53
|
-
|
54
|
-
Timeout.timeout(SHORT_TIMEOUT) do
|
55
|
-
answer = @sui.ask("what is your favorite color?")
|
56
|
-
assert_nil answer
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_ask_for_password
|
61
|
-
Timeout.timeout(5) do
|
62
|
-
expected_answer = "Arthur, King of the Britons"
|
63
|
-
@in.string = "#{expected_answer}\n"
|
64
|
-
actual_answer = @sui.ask_for_password("What is your name?")
|
65
|
-
assert_equal expected_answer, actual_answer
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_ask_for_password_no_tty
|
70
|
-
@in.tty = false
|
71
|
-
|
72
|
-
Timeout.timeout(SHORT_TIMEOUT) do
|
73
|
-
answer = @sui.ask_for_password("what is the airspeed velocity of an unladen swallow?")
|
74
|
-
assert_nil answer
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_ask_yes_no_no_tty_with_default
|
79
|
-
@in.tty = false
|
80
|
-
|
81
|
-
Timeout.timeout(SHORT_TIMEOUT) do
|
82
|
-
answer = @sui.ask_yes_no("do coconuts migrate?", false)
|
83
|
-
assert_equal false, answer
|
84
|
-
|
85
|
-
answer = @sui.ask_yes_no("do coconuts migrate?", true)
|
86
|
-
assert_equal true, answer
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
def test_ask_yes_no_no_tty_without_default
|
91
|
-
@in.tty = false
|
92
|
-
|
93
|
-
Timeout.timeout(SHORT_TIMEOUT) do
|
94
|
-
assert_raise(Gem::OperationNotSupportedError) do
|
95
|
-
@sui.ask_yes_no("do coconuts migrate?")
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
def test_choose_from_list
|
101
|
-
@in.puts "1"
|
102
|
-
@in.rewind
|
103
|
-
|
104
|
-
result = @sui.choose_from_list "which one?", %w[foo bar]
|
105
|
-
|
106
|
-
assert_equal ["foo", 0], result
|
107
|
-
assert_equal "which one?\n 1. foo\n 2. bar\n> ", @out.string
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_choose_from_list_EOF
|
111
|
-
result = @sui.choose_from_list "which one?", %w[foo bar]
|
112
|
-
|
113
|
-
assert_equal [nil, nil], result
|
114
|
-
assert_equal "which one?\n 1. foo\n 2. bar\n> ", @out.string
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_choose_from_list_0
|
118
|
-
@in.puts "0"
|
119
|
-
@in.rewind
|
120
|
-
|
121
|
-
result = @sui.choose_from_list "which one?", %w[foo bar]
|
122
|
-
|
123
|
-
assert_equal [nil, nil], result
|
124
|
-
assert_equal "which one?\n 1. foo\n 2. bar\n> ", @out.string
|
125
|
-
end
|
126
|
-
|
127
|
-
def test_choose_from_list_over
|
128
|
-
@in.puts "3"
|
129
|
-
@in.rewind
|
130
|
-
|
131
|
-
result = @sui.choose_from_list "which one?", %w[foo bar]
|
132
|
-
|
133
|
-
assert_equal [nil, nil], result
|
134
|
-
assert_equal "which one?\n 1. foo\n 2. bar\n> ", @out.string
|
135
|
-
end
|
136
|
-
|
137
|
-
def test_choose_from_list_negative
|
138
|
-
@in.puts "-1"
|
139
|
-
@in.rewind
|
140
|
-
|
141
|
-
result = @sui.choose_from_list "which one?", %w[foo bar]
|
142
|
-
|
143
|
-
assert_equal [nil, nil], result
|
144
|
-
assert_equal "which one?\n 1. foo\n 2. bar\n> ", @out.string
|
145
|
-
end
|
146
|
-
|
147
|
-
def test_progress_reporter_silent_nil
|
148
|
-
@cfg.verbose = nil
|
149
|
-
reporter = @sui.progress_reporter 10, "hi"
|
150
|
-
assert_kind_of Gem::StreamUI::SilentProgressReporter, reporter
|
151
|
-
end
|
152
|
-
|
153
|
-
def test_progress_reporter_silent_false
|
154
|
-
@cfg.verbose = false
|
155
|
-
reporter = @sui.progress_reporter 10, "hi"
|
156
|
-
assert_kind_of Gem::StreamUI::SilentProgressReporter, reporter
|
157
|
-
assert_equal "", @out.string
|
158
|
-
end
|
159
|
-
|
160
|
-
def test_progress_reporter_simple
|
161
|
-
@cfg.verbose = true
|
162
|
-
reporter = @sui.progress_reporter 10, "hi"
|
163
|
-
assert_kind_of Gem::StreamUI::SimpleProgressReporter, reporter
|
164
|
-
assert_equal "hi\n", @out.string
|
165
|
-
end
|
166
|
-
|
167
|
-
def test_progress_reporter_verbose
|
168
|
-
@cfg.verbose = 0
|
169
|
-
reporter = @sui.progress_reporter 10, "hi"
|
170
|
-
assert_kind_of Gem::StreamUI::VerboseProgressReporter, reporter
|
171
|
-
assert_equal "hi\n", @out.string
|
172
|
-
end
|
173
|
-
|
174
|
-
def test_download_reporter_silent_nil
|
175
|
-
@cfg.verbose = nil
|
176
|
-
reporter = @sui.download_reporter
|
177
|
-
reporter.fetch "a.gem", 1024
|
178
|
-
assert_kind_of Gem::StreamUI::SilentDownloadReporter, reporter
|
179
|
-
assert_equal "", @out.string
|
180
|
-
end
|
181
|
-
|
182
|
-
def test_download_reporter_silent_false
|
183
|
-
@cfg.verbose = false
|
184
|
-
reporter = @sui.download_reporter
|
185
|
-
reporter.fetch "a.gem", 1024
|
186
|
-
assert_kind_of Gem::StreamUI::SilentDownloadReporter, reporter
|
187
|
-
assert_equal "", @out.string
|
188
|
-
end
|
189
|
-
|
190
|
-
def test_download_reporter_anything
|
191
|
-
@cfg.verbose = 0
|
192
|
-
reporter = @sui.download_reporter
|
193
|
-
assert_kind_of Gem::StreamUI::ThreadedDownloadReporter, reporter
|
194
|
-
end
|
195
|
-
|
196
|
-
def test_threaded_download_reporter
|
197
|
-
@cfg.verbose = true
|
198
|
-
reporter = @sui.download_reporter
|
199
|
-
reporter.fetch "a.gem", 1024
|
200
|
-
assert_equal "Fetching a.gem\n", @out.string
|
201
|
-
end
|
202
|
-
|
203
|
-
def test_verbose_download_reporter_progress
|
204
|
-
@cfg.verbose = true
|
205
|
-
reporter = @sui.download_reporter
|
206
|
-
reporter.fetch "a.gem", 1024
|
207
|
-
reporter.update 512
|
208
|
-
assert_equal "Fetching a.gem\n", @out.string
|
209
|
-
end
|
210
|
-
|
211
|
-
def test_verbose_download_reporter_progress_once
|
212
|
-
@cfg.verbose = true
|
213
|
-
reporter = @sui.download_reporter
|
214
|
-
reporter.fetch "a.gem", 1024
|
215
|
-
reporter.update 510
|
216
|
-
reporter.update 512
|
217
|
-
assert_equal "Fetching a.gem\n", @out.string
|
218
|
-
end
|
219
|
-
|
220
|
-
def test_verbose_download_reporter_progress_complete
|
221
|
-
@cfg.verbose = true
|
222
|
-
reporter = @sui.download_reporter
|
223
|
-
reporter.fetch "a.gem", 1024
|
224
|
-
reporter.update 510
|
225
|
-
reporter.done
|
226
|
-
assert_equal "Fetching a.gem\n", @out.string
|
227
|
-
end
|
228
|
-
|
229
|
-
def test_verbose_download_reporter_progress_nil_length
|
230
|
-
@cfg.verbose = true
|
231
|
-
reporter = @sui.download_reporter
|
232
|
-
reporter.fetch "a.gem", nil
|
233
|
-
reporter.update 1024
|
234
|
-
reporter.done
|
235
|
-
assert_equal "Fetching a.gem\n", @out.string
|
236
|
-
end
|
237
|
-
|
238
|
-
def test_verbose_download_reporter_progress_zero_length
|
239
|
-
@cfg.verbose = true
|
240
|
-
reporter = @sui.download_reporter
|
241
|
-
reporter.fetch "a.gem", 0
|
242
|
-
reporter.update 1024
|
243
|
-
reporter.done
|
244
|
-
assert_equal "Fetching a.gem\n", @out.string
|
245
|
-
end
|
246
|
-
|
247
|
-
def test_verbose_download_reporter_no_tty
|
248
|
-
@out.tty = false
|
249
|
-
|
250
|
-
@cfg.verbose = true
|
251
|
-
reporter = @sui.download_reporter
|
252
|
-
reporter.fetch "a.gem", 1024
|
253
|
-
assert_equal "", @out.string
|
254
|
-
end
|
255
|
-
end
|
@@ -1,278 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "helper"
|
4
|
-
require "rubygems/stub_specification"
|
5
|
-
|
6
|
-
class TestStubSpecification < Gem::TestCase
|
7
|
-
FOO = File.expand_path File.join("specifications", "foo-0.0.1-x86-mswin32.gemspec"), __dir__
|
8
|
-
BAR = File.expand_path File.join("specifications", "bar-0.0.2.gemspec"), __dir__
|
9
|
-
|
10
|
-
def setup
|
11
|
-
super
|
12
|
-
|
13
|
-
@base_dir = __dir__
|
14
|
-
@gems_dir = File.join __dir__, "gem"
|
15
|
-
@foo = Gem::StubSpecification.gemspec_stub FOO, @base_dir, @gems_dir
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_initialize
|
19
|
-
assert_equal "foo", @foo.name
|
20
|
-
assert_equal Gem::Version.new("0.0.1"), @foo.version
|
21
|
-
assert_equal Gem::Platform.new("mswin32"), @foo.platform
|
22
|
-
assert_equal ["lib", "lib/f oo/ext"], @foo.require_paths
|
23
|
-
assert @foo.stubbed?
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_initialize_extension
|
27
|
-
stub = stub_with_extension
|
28
|
-
|
29
|
-
assert_equal "stub_e", stub.name
|
30
|
-
assert_equal v(2), stub.version
|
31
|
-
assert_equal Gem::Platform::RUBY, stub.platform
|
32
|
-
assert_equal [stub.extension_dir, "lib"], stub.require_paths
|
33
|
-
assert_equal %w[ext/stub_e/extconf.rb], stub.extensions
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_initialize_version
|
37
|
-
stub = stub_with_version
|
38
|
-
|
39
|
-
assert_equal "stub_v", stub.name
|
40
|
-
assert_equal v(2), stub.version
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_initialize_with_empty_version
|
44
|
-
stub = stub_without_version
|
45
|
-
|
46
|
-
assert_equal "stub_v", stub.name
|
47
|
-
assert_equal v(0), stub.version
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_initialize_missing_stubline
|
51
|
-
stub = Gem::StubSpecification.gemspec_stub(BAR, @base_dir, @gems_dir)
|
52
|
-
assert_equal "bar", stub.name
|
53
|
-
assert_equal Gem::Version.new("0.0.2"), stub.version
|
54
|
-
assert_equal Gem::Platform.new("ruby"), stub.platform
|
55
|
-
assert_equal ["lib"], stub.require_paths
|
56
|
-
assert !stub.stubbed?
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_contains_requirable_file_eh
|
60
|
-
stub = stub_without_extension
|
61
|
-
code_rb = File.join stub.gem_dir, "lib", "code.rb"
|
62
|
-
FileUtils.mkdir_p File.dirname code_rb
|
63
|
-
FileUtils.touch code_rb
|
64
|
-
|
65
|
-
assert stub.contains_requirable_file? "code"
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_contains_requirable_file_eh_extension
|
69
|
-
pend "I guess making the stub match the running platform should work" if Gem.java_platform?
|
70
|
-
stub_with_extension do |stub|
|
71
|
-
_, err = capture_output do
|
72
|
-
refute stub.contains_requirable_file? "nonexistent"
|
73
|
-
end
|
74
|
-
|
75
|
-
expected = "Ignoring stub_e-2 because its extensions are not built. " +
|
76
|
-
"Try: gem pristine stub_e --version 2\n"
|
77
|
-
|
78
|
-
assert_equal expected, err
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_full_require_paths
|
83
|
-
stub = stub_with_extension
|
84
|
-
|
85
|
-
expected = [
|
86
|
-
File.join(stub.full_gem_path, "lib"),
|
87
|
-
stub.extension_dir,
|
88
|
-
]
|
89
|
-
|
90
|
-
assert_equal expected, stub.full_require_paths
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_lib_dirs_glob
|
94
|
-
stub = stub_without_extension
|
95
|
-
|
96
|
-
assert_equal File.join(stub.full_gem_path, "lib"), stub.lib_dirs_glob
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_lib_dirs_glob_with_extension
|
100
|
-
stub = stub_with_extension
|
101
|
-
|
102
|
-
assert_equal File.join(stub.full_gem_path, "lib"), stub.lib_dirs_glob
|
103
|
-
end
|
104
|
-
|
105
|
-
def test_matches_for_glob
|
106
|
-
stub = stub_without_extension
|
107
|
-
code_rb = File.join stub.gem_dir, "lib", "code.rb"
|
108
|
-
FileUtils.mkdir_p File.dirname code_rb
|
109
|
-
FileUtils.touch code_rb
|
110
|
-
|
111
|
-
assert_equal code_rb, stub.matches_for_glob("code*").first
|
112
|
-
end
|
113
|
-
|
114
|
-
def test_matches_for_glob_with_bundler_inline
|
115
|
-
stub = stub_with_extension
|
116
|
-
code_rb = File.join stub.gem_dir, "lib", "code.rb"
|
117
|
-
FileUtils.mkdir_p File.dirname code_rb
|
118
|
-
FileUtils.touch code_rb
|
119
|
-
|
120
|
-
stub.stub(:raw_require_paths, nil) do
|
121
|
-
assert_equal code_rb, stub.matches_for_glob("code*").first
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
def test_missing_extensions_eh
|
126
|
-
pend "I guess making the stub match the running platform should work" if Gem.java_platform?
|
127
|
-
stub = stub_with_extension do |s|
|
128
|
-
extconf_rb = File.join s.gem_dir, s.extensions.first
|
129
|
-
FileUtils.mkdir_p File.dirname extconf_rb
|
130
|
-
|
131
|
-
File.open extconf_rb, "w" do |f|
|
132
|
-
f.write <<-'RUBY'
|
133
|
-
File.open 'Makefile', 'w' do |f|
|
134
|
-
f.puts "clean:\n\techo clean"
|
135
|
-
f.puts "default:\n\techo built"
|
136
|
-
f.puts "install:\n\techo installed"
|
137
|
-
end
|
138
|
-
RUBY
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
assert stub.missing_extensions?
|
143
|
-
|
144
|
-
stub.build_extensions
|
145
|
-
|
146
|
-
refute stub.missing_extensions?
|
147
|
-
end
|
148
|
-
|
149
|
-
def test_missing_extensions_eh_default_gem
|
150
|
-
spec = new_default_spec "default", 1
|
151
|
-
spec.extensions << "extconf.rb"
|
152
|
-
|
153
|
-
File.open spec.loaded_from, "w" do |io|
|
154
|
-
io.write spec.to_ruby_for_cache
|
155
|
-
end
|
156
|
-
|
157
|
-
default_spec = Gem::StubSpecification.gemspec_stub spec.loaded_from, spec.base_dir, spec.gems_dir
|
158
|
-
|
159
|
-
refute default_spec.missing_extensions?
|
160
|
-
end
|
161
|
-
|
162
|
-
def test_missing_extensions_eh_none
|
163
|
-
refute @foo.missing_extensions?
|
164
|
-
end
|
165
|
-
|
166
|
-
def test_to_spec
|
167
|
-
real_foo = util_spec @foo.name, @foo.version
|
168
|
-
real_foo.activate
|
169
|
-
|
170
|
-
assert_equal @foo.version, Gem.loaded_specs[@foo.name].version,
|
171
|
-
"sanity check"
|
172
|
-
|
173
|
-
assert_same real_foo, @foo.to_spec
|
174
|
-
end
|
175
|
-
|
176
|
-
def test_to_spec_with_other_specs_loaded_does_not_warn
|
177
|
-
real_foo = util_spec @foo.name, @foo.version
|
178
|
-
real_foo.activate
|
179
|
-
bar = Gem::StubSpecification.gemspec_stub BAR, real_foo.base_dir, real_foo.gems_dir
|
180
|
-
refute_predicate Gem.loaded_specs, :empty?
|
181
|
-
assert bar.to_spec
|
182
|
-
end
|
183
|
-
|
184
|
-
def stub_with_version
|
185
|
-
spec = File.join @gemhome, "specifications", "stub_e-2.gemspec"
|
186
|
-
File.open spec, "w" do |io|
|
187
|
-
io.write <<-STUB
|
188
|
-
# -*- encoding: utf-8 -*-
|
189
|
-
# stub: stub_v 2 ruby lib
|
190
|
-
|
191
|
-
Gem::Specification.new do |s|
|
192
|
-
s.name = 'stub_v'
|
193
|
-
s.version = Gem::Version.new '2'
|
194
|
-
end
|
195
|
-
STUB
|
196
|
-
|
197
|
-
io.flush
|
198
|
-
|
199
|
-
stub = Gem::StubSpecification.gemspec_stub io.path, @gemhome, File.join(@gemhome, "gems")
|
200
|
-
|
201
|
-
yield stub if block_given?
|
202
|
-
|
203
|
-
return stub
|
204
|
-
end
|
205
|
-
end
|
206
|
-
|
207
|
-
def stub_without_version
|
208
|
-
spec = File.join @gemhome, "specifications", "stub-2.gemspec"
|
209
|
-
File.open spec, "w" do |io|
|
210
|
-
io.write <<-STUB
|
211
|
-
# -*- encoding: utf-8 -*-
|
212
|
-
# stub: stub_v ruby lib
|
213
|
-
|
214
|
-
Gem::Specification.new do |s|
|
215
|
-
s.name = 'stub_v'
|
216
|
-
s.version = ""
|
217
|
-
end
|
218
|
-
STUB
|
219
|
-
|
220
|
-
io.flush
|
221
|
-
|
222
|
-
stub = Gem::StubSpecification.gemspec_stub io.path, @gemhome, File.join(@gemhome, "gems")
|
223
|
-
|
224
|
-
yield stub if block_given?
|
225
|
-
|
226
|
-
return stub
|
227
|
-
end
|
228
|
-
end
|
229
|
-
|
230
|
-
def stub_with_extension
|
231
|
-
spec = File.join @gemhome, "specifications", "stub_e-2.gemspec"
|
232
|
-
File.open spec, "w" do |io|
|
233
|
-
io.write <<-STUB
|
234
|
-
# -*- encoding: utf-8 -*-
|
235
|
-
# stub: stub_e 2 ruby lib
|
236
|
-
# stub: ext/stub_e/extconf.rb
|
237
|
-
|
238
|
-
Gem::Specification.new do |s|
|
239
|
-
s.name = 'stub_e'
|
240
|
-
s.version = Gem::Version.new '2'
|
241
|
-
s.extensions = ['ext/stub_e/extconf.rb']
|
242
|
-
s.installed_by_version = '2.2'
|
243
|
-
end
|
244
|
-
STUB
|
245
|
-
|
246
|
-
io.flush
|
247
|
-
|
248
|
-
stub = Gem::StubSpecification.gemspec_stub io.path, @gemhome, File.join(@gemhome, "gems")
|
249
|
-
|
250
|
-
yield stub if block_given?
|
251
|
-
|
252
|
-
return stub
|
253
|
-
end
|
254
|
-
end
|
255
|
-
|
256
|
-
def stub_without_extension
|
257
|
-
spec = File.join @gemhome, "specifications", "stub-2.gemspec"
|
258
|
-
File.open spec, "w" do |io|
|
259
|
-
io.write <<-STUB
|
260
|
-
# -*- encoding: utf-8 -*-
|
261
|
-
# stub: stub 2 ruby lib
|
262
|
-
|
263
|
-
Gem::Specification.new do |s|
|
264
|
-
s.name = 'stub'
|
265
|
-
s.version = Gem::Version.new '2'
|
266
|
-
end
|
267
|
-
STUB
|
268
|
-
|
269
|
-
io.flush
|
270
|
-
|
271
|
-
stub = Gem::StubSpecification.gemspec_stub io.path, @gemhome, File.join(@gemhome, "gems")
|
272
|
-
|
273
|
-
yield stub if block_given?
|
274
|
-
|
275
|
-
return stub
|
276
|
-
end
|
277
|
-
end
|
278
|
-
end
|
@@ -1,103 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "helper"
|
4
|
-
require "rubygems/text"
|
5
|
-
|
6
|
-
class TestGemText < Gem::TestCase
|
7
|
-
include Gem::Text
|
8
|
-
|
9
|
-
def test_format_text
|
10
|
-
assert_equal "text to\nwrap", format_text("text to wrap", 8)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_format_text_indent
|
14
|
-
assert_equal " text to\n wrap", format_text("text to wrap", 8, 2)
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_format_text_none
|
18
|
-
assert_equal "text to wrap", format_text("text to wrap", 40)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_format_text_none_indent
|
22
|
-
assert_equal " text to wrap", format_text("text to wrap", 40, 2)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_format_text_no_space
|
26
|
-
assert_equal "texttowr\nap", format_text("texttowrap", 8)
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_format_text_trailing # for two spaces after .
|
30
|
-
text = <<-TEXT
|
31
|
-
This line is really, really long. So long, in fact, that it is more than eighty characters long! The purpose of this line is for testing wrapping behavior because sometimes people don't wrap their text to eighty characters. Without the wrapping, the text might not look good in the RSS feed.
|
32
|
-
TEXT
|
33
|
-
|
34
|
-
expected = <<-EXPECTED
|
35
|
-
This line is really, really long. So long, in fact, that it is more than
|
36
|
-
eighty characters long! The purpose of this line is for testing wrapping
|
37
|
-
behavior because sometimes people don't wrap their text to eighty characters.
|
38
|
-
Without the wrapping, the text might not look good in the RSS feed.
|
39
|
-
EXPECTED
|
40
|
-
|
41
|
-
assert_equal expected, format_text(text, 78)
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_format_removes_nonprintable_characters
|
45
|
-
assert_equal "text with weird .. stuff .", format_text("text with weird \x1b\x02 stuff \x7f", 40)
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_min3
|
49
|
-
assert_equal 1, min3(1, 1, 1)
|
50
|
-
assert_equal 1, min3(1, 1, 2)
|
51
|
-
assert_equal 1, min3(1, 2, 1)
|
52
|
-
assert_equal 1, min3(2, 1, 1)
|
53
|
-
assert_equal 1, min3(1, 2, 2)
|
54
|
-
assert_equal 1, min3(2, 1, 2)
|
55
|
-
assert_equal 1, min3(2, 2, 1)
|
56
|
-
assert_equal 1, min3(1, 2, 3)
|
57
|
-
assert_equal 1, min3(1, 3, 2)
|
58
|
-
assert_equal 1, min3(2, 1, 3)
|
59
|
-
assert_equal 1, min3(2, 3, 1)
|
60
|
-
assert_equal 1, min3(3, 1, 2)
|
61
|
-
assert_equal 1, min3(3, 2, 1)
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_levenshtein_distance_add
|
65
|
-
assert_equal 2, levenshtein_distance("zentest", "zntst")
|
66
|
-
assert_equal 2, levenshtein_distance("zntst", "zentest")
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_levenshtein_distance_empty
|
70
|
-
assert_equal 5, levenshtein_distance("abcde", "")
|
71
|
-
assert_equal 5, levenshtein_distance("", "abcde")
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_levenshtein_distance_remove
|
75
|
-
assert_equal 3, levenshtein_distance("zentest", "zentestxxx")
|
76
|
-
assert_equal 3, levenshtein_distance("zentestxxx", "zentest")
|
77
|
-
assert_equal 13, levenshtein_distance("cat", "thundercatsarego")
|
78
|
-
assert_equal 13, levenshtein_distance("thundercatsarego", "cat")
|
79
|
-
end
|
80
|
-
|
81
|
-
def test_levenshtein_distance_replace
|
82
|
-
assert_equal 2, levenshtein_distance("zentest", "ZenTest")
|
83
|
-
assert_equal 7, levenshtein_distance("xxxxxxx", "ZenTest")
|
84
|
-
assert_equal 7, levenshtein_distance("zentest", "xxxxxxx")
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_levenshtein_distance_all
|
88
|
-
assert_equal 6, levenshtein_distance("algorithm", "altruistic")
|
89
|
-
assert_equal 3, levenshtein_distance("saturday", "sunday")
|
90
|
-
assert_equal 3, levenshtein_distance("kitten", "sitting")
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_truncate_text
|
94
|
-
assert_equal "abc", truncate_text("abc", "desc")
|
95
|
-
assert_equal "Truncating desc to 2 characters:\nab", truncate_text("abc", "desc", 2)
|
96
|
-
s = "ab" * 500_001
|
97
|
-
assert_equal "Truncating desc to 1,000,000 characters:\n#{s[0, 1_000_000]}", truncate_text(s, "desc", 1_000_000)
|
98
|
-
end
|
99
|
-
|
100
|
-
def test_clean_text
|
101
|
-
assert_equal ".]2;nyan.", clean_text("\e]2;nyan\a")
|
102
|
-
end
|
103
|
-
end
|