rubygems-update 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CODE_OF_CONDUCT.md +55 -19
- data/CONTRIBUTING.md +25 -11
- data/History.txt +435 -179
- data/Manifest.txt +44 -77
- data/POLICIES.md +2 -9
- data/README.md +5 -5
- data/Rakefile +50 -83
- data/bin/update_rubygems +2 -2
- data/bundler/CHANGELOG.md +1590 -1400
- data/bundler/README.md +6 -8
- data/bundler/UPGRADING.md +18 -32
- data/bundler/bundler.gemspec +3 -3
- data/bundler/exe/bundle +3 -0
- data/bundler/lib/bundler.rb +25 -7
- data/bundler/lib/bundler/build_metadata.rb +4 -12
- data/bundler/lib/bundler/cli.rb +56 -20
- data/bundler/lib/bundler/cli/add.rb +1 -1
- data/bundler/lib/bundler/cli/binstubs.rb +6 -2
- data/bundler/lib/bundler/cli/cache.rb +1 -7
- data/bundler/lib/bundler/cli/clean.rb +1 -1
- data/bundler/lib/bundler/cli/common.rb +14 -0
- data/bundler/lib/bundler/cli/console.rb +1 -1
- data/bundler/lib/bundler/cli/doctor.rb +1 -1
- data/bundler/lib/bundler/cli/exec.rb +7 -16
- data/bundler/lib/bundler/cli/fund.rb +36 -0
- data/bundler/lib/bundler/cli/gem.rb +75 -11
- data/bundler/lib/bundler/cli/info.rb +8 -4
- data/bundler/lib/bundler/cli/init.rb +2 -2
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +12 -18
- data/bundler/lib/bundler/cli/issue.rb +2 -2
- data/bundler/lib/bundler/cli/list.rb +1 -1
- data/bundler/lib/bundler/cli/outdated.rb +2 -4
- data/bundler/lib/bundler/cli/plugin.rb +10 -0
- data/bundler/lib/bundler/cli/pristine.rb +1 -1
- data/bundler/lib/bundler/cli/show.rb +1 -1
- data/bundler/lib/bundler/cli/update.rb +2 -0
- data/bundler/lib/bundler/compact_index_client.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/cache.rb +1 -1
- data/bundler/lib/bundler/compact_index_client/updater.rb +5 -5
- data/bundler/lib/bundler/definition.rb +47 -61
- data/bundler/lib/bundler/dep_proxy.rb +1 -1
- data/bundler/lib/bundler/dependency.rb +0 -9
- data/bundler/lib/bundler/dsl.rb +5 -9
- data/bundler/lib/bundler/endpoint_specification.rb +1 -1
- data/bundler/lib/bundler/env.rb +1 -1
- data/bundler/lib/bundler/environment_preserver.rb +26 -2
- data/bundler/lib/bundler/errors.rb +1 -0
- data/bundler/lib/bundler/feature_flag.rb +0 -3
- data/bundler/lib/bundler/fetcher.rb +4 -3
- data/bundler/lib/bundler/fetcher/base.rb +1 -1
- data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
- data/bundler/lib/bundler/fetcher/downloader.rb +1 -1
- data/bundler/lib/bundler/fetcher/index.rb +3 -4
- data/bundler/lib/bundler/friendly_errors.rb +22 -13
- data/bundler/lib/bundler/gem_helper.rb +33 -19
- data/bundler/lib/bundler/gem_helpers.rb +6 -1
- data/bundler/lib/bundler/gem_version_promoter.rb +2 -2
- data/bundler/lib/bundler/graph.rb +1 -1
- data/bundler/lib/bundler/index.rb +6 -2
- data/bundler/lib/bundler/injector.rb +22 -4
- data/bundler/lib/bundler/inline.rb +2 -2
- data/bundler/lib/bundler/installer.rb +35 -32
- data/bundler/lib/bundler/installer/gem_installer.rb +3 -3
- data/bundler/lib/bundler/installer/parallel_installer.rb +10 -10
- data/bundler/lib/bundler/installer/standalone.rb +2 -2
- data/bundler/lib/bundler/lazy_specification.rb +20 -9
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +1 -1
- data/bundler/lib/bundler/man/.document +1 -0
- data/bundler/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- data/bundler/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/bundler/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- data/bundler/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/bundler/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/bundler/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +19 -30
- data/bundler/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/bundler/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/bundler/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/bundler/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/bundler/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- data/bundler/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/bundler/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- data/bundler/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +0 -0
- data/bundler/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/bundler/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/bundler/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/bundler/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/bundler/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/bundler/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/bundler/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/bundler/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/bundler/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/bundler/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/bundler/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- data/bundler/lib/bundler/mirror.rb +2 -2
- data/bundler/lib/bundler/plugin.rb +30 -5
- data/bundler/lib/bundler/plugin/api/source.rb +1 -1
- data/bundler/lib/bundler/plugin/dsl.rb +1 -1
- data/bundler/lib/bundler/plugin/index.rb +10 -1
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/bundler/lib/bundler/plugin/source_list.rb +1 -1
- data/bundler/lib/bundler/psyched_yaml.rb +0 -15
- data/bundler/lib/bundler/remote_specification.rb +5 -2
- data/bundler/lib/bundler/resolver.rb +32 -10
- data/bundler/lib/bundler/resolver/spec_group.rb +27 -6
- data/bundler/lib/bundler/retry.rb +1 -1
- data/bundler/lib/bundler/ruby_version.rb +1 -1
- data/bundler/lib/bundler/rubygems_ext.rb +53 -9
- data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -9
- data/bundler/lib/bundler/rubygems_integration.rb +35 -25
- data/bundler/lib/bundler/runtime.rb +4 -14
- data/bundler/lib/bundler/settings.rb +49 -46
- data/bundler/lib/bundler/setup.rb +5 -0
- data/bundler/lib/bundler/shared_helpers.rb +2 -2
- data/bundler/lib/bundler/similarity_detector.rb +1 -1
- data/bundler/lib/bundler/source.rb +1 -1
- data/bundler/lib/bundler/source/git.rb +1 -1
- data/bundler/lib/bundler/source/git/git_proxy.rb +57 -60
- data/bundler/lib/bundler/source/path.rb +7 -3
- data/bundler/lib/bundler/source/path/installer.rb +8 -10
- data/bundler/lib/bundler/source/rubygems.rb +13 -16
- data/bundler/lib/bundler/source/rubygems/remote.rb +1 -1
- data/bundler/lib/bundler/source_list.rb +2 -2
- data/bundler/lib/bundler/spec_set.rb +2 -1
- data/bundler/lib/bundler/stub_specification.rb +17 -5
- data/bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +7 -2
- data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -2
- data/bundler/lib/bundler/templates/newgem/Rakefile.tt +12 -5
- data/bundler/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/bundler/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/bundler/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +18 -0
- data/bundler/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/bundler/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +13 -5
- data/bundler/lib/bundler/templates/newgem/rubocop.yml.tt +10 -0
- data/bundler/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/bundler/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/bundler/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/bundler/lib/bundler/ui/shell.rb +5 -5
- data/bundler/lib/bundler/uri_credentials_filter.rb +3 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +38 -40
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +72 -208
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +0 -7
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/bundler/lib/bundler/vendored_persistent.rb +0 -7
- data/bundler/lib/bundler/vendored_tmpdir.rb +4 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler/worker.rb +1 -1
- data/bundler/lib/bundler/yaml_serializer.rb +1 -1
- data/bundler/man/bundle-add.1 +1 -1
- data/bundler/man/bundle-binstubs.1 +5 -3
- data/bundler/man/bundle-cache.1 +1 -1
- data/bundler/man/bundle-check.1 +1 -1
- data/bundler/man/bundle-clean.1 +1 -1
- data/bundler/man/bundle-config.1 +16 -25
- data/bundler/man/bundle-doctor.1 +1 -1
- data/bundler/man/bundle-exec.1 +1 -1
- data/bundler/man/bundle-gem.1 +25 -3
- data/bundler/man/bundle-info.1 +1 -1
- data/bundler/man/bundle-init.1 +1 -1
- data/bundler/man/bundle-inject.1 +1 -1
- data/bundler/man/bundle-install.1 +30 -3
- data/bundler/man/bundle-list.1 +1 -1
- data/bundler/man/bundle-lock.1 +1 -1
- data/bundler/man/bundle-open.1 +1 -1
- data/bundler/man/bundle-outdated.1 +1 -1
- data/bundler/man/bundle-platform.1 +1 -1
- data/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/man/bundle-remove.1 +1 -1
- data/bundler/man/bundle-show.1 +1 -1
- data/bundler/man/bundle-update.1 +1 -1
- data/bundler/man/bundle-viz.1 +1 -1
- data/bundler/man/bundle.1 +1 -1
- data/bundler/man/gemfile.5 +4 -4
- data/lib/rubygems.rb +138 -187
- data/lib/rubygems/available_set.rb +4 -6
- data/lib/rubygems/basic_specification.rb +12 -10
- data/lib/rubygems/bundler_version_finder.rb +14 -9
- data/lib/rubygems/command.rb +17 -17
- data/lib/rubygems/command_manager.rb +5 -6
- data/lib/rubygems/commands/build_command.rb +40 -20
- data/lib/rubygems/commands/cert_command.rb +2 -10
- data/lib/rubygems/commands/check_command.rb +0 -2
- data/lib/rubygems/commands/cleanup_command.rb +11 -7
- data/lib/rubygems/commands/contents_command.rb +4 -6
- data/lib/rubygems/commands/dependency_command.rb +6 -8
- data/lib/rubygems/commands/environment_command.rb +1 -3
- data/lib/rubygems/commands/fetch_command.rb +2 -4
- data/lib/rubygems/commands/generate_index_command.rb +0 -2
- data/lib/rubygems/commands/help_command.rb +4 -4
- data/lib/rubygems/commands/info_command.rb +8 -5
- data/lib/rubygems/commands/install_command.rb +3 -5
- data/lib/rubygems/commands/list_command.rb +8 -7
- data/lib/rubygems/commands/lock_command.rb +1 -3
- data/lib/rubygems/commands/mirror_command.rb +0 -2
- data/lib/rubygems/commands/open_command.rb +0 -4
- data/lib/rubygems/commands/outdated_command.rb +0 -2
- data/lib/rubygems/commands/owner_command.rb +9 -3
- data/lib/rubygems/commands/pristine_command.rb +11 -5
- data/lib/rubygems/commands/push_command.rb +10 -46
- data/lib/rubygems/commands/query_command.rb +14 -344
- data/lib/rubygems/commands/rdoc_command.rb +0 -2
- data/lib/rubygems/commands/search_command.rb +7 -7
- data/lib/rubygems/commands/server_command.rb +3 -1
- data/lib/rubygems/commands/setup_command.rb +158 -70
- data/lib/rubygems/commands/signin_command.rb +0 -2
- data/lib/rubygems/commands/signout_command.rb +0 -2
- data/lib/rubygems/commands/sources_command.rb +9 -7
- data/lib/rubygems/commands/specification_command.rb +8 -4
- data/lib/rubygems/commands/stale_command.rb +1 -3
- data/lib/rubygems/commands/uninstall_command.rb +2 -4
- data/lib/rubygems/commands/unpack_command.rb +1 -3
- data/lib/rubygems/commands/update_command.rb +59 -14
- data/lib/rubygems/commands/which_command.rb +0 -2
- data/lib/rubygems/commands/yank_command.rb +4 -6
- data/lib/rubygems/config_file.rb +11 -4
- data/lib/rubygems/core_ext/kernel_require.rb +29 -36
- data/lib/rubygems/core_ext/kernel_warn.rb +12 -13
- data/lib/rubygems/defaults.rb +101 -7
- data/lib/rubygems/dependency.rb +3 -8
- data/lib/rubygems/dependency_installer.rb +5 -78
- data/lib/rubygems/dependency_list.rb +7 -9
- data/lib/rubygems/deprecate.rb +46 -1
- data/lib/rubygems/doctor.rb +4 -4
- data/lib/rubygems/errors.rb +3 -14
- data/lib/rubygems/exceptions.rb +2 -33
- data/lib/rubygems/ext.rb +6 -6
- data/lib/rubygems/ext/build_error.rb +2 -0
- data/lib/rubygems/ext/builder.rb +16 -35
- data/lib/rubygems/ext/cmake_builder.rb +5 -7
- data/lib/rubygems/ext/configure_builder.rb +4 -6
- data/lib/rubygems/ext/ext_conf_builder.rb +21 -19
- data/lib/rubygems/ext/rake_builder.rb +3 -5
- data/lib/rubygems/gem_runner.rb +3 -10
- data/lib/rubygems/gemcutter_utilities.rb +91 -15
- data/lib/rubygems/indexer.rb +1 -22
- data/lib/rubygems/install_update_options.rb +7 -7
- data/lib/rubygems/installer.rb +59 -57
- data/lib/rubygems/installer_test_case.rb +25 -11
- data/lib/rubygems/installer_uninstaller_utils.rb +24 -0
- data/lib/rubygems/local_remote_options.rb +1 -1
- data/lib/rubygems/mock_gem_ui.rb +0 -6
- data/lib/rubygems/name_tuple.rb +3 -7
- data/lib/rubygems/openssl.rb +7 -0
- data/lib/rubygems/package.rb +14 -25
- data/lib/rubygems/package/digest_io.rb +0 -2
- data/lib/rubygems/package/file_source.rb +0 -2
- data/lib/rubygems/package/io_source.rb +0 -2
- data/lib/rubygems/package/old.rb +1 -3
- data/lib/rubygems/package/tar_header.rb +4 -6
- data/lib/rubygems/package/tar_reader.rb +0 -3
- data/lib/rubygems/package/tar_reader/entry.rb +0 -3
- data/lib/rubygems/package/tar_test_case.rb +2 -4
- data/lib/rubygems/package/tar_writer.rb +2 -12
- data/lib/rubygems/package_task.rb +1 -7
- data/lib/rubygems/path_support.rb +1 -3
- data/lib/rubygems/platform.rb +21 -12
- data/lib/rubygems/psych_tree.rb +0 -2
- data/lib/rubygems/query_utils.rb +353 -0
- data/lib/rubygems/rdoc.rb +0 -12
- data/lib/rubygems/remote_fetcher.rb +10 -27
- data/lib/rubygems/request.rb +4 -11
- data/lib/rubygems/request/connection_pools.rb +1 -5
- data/lib/rubygems/request/http_pool.rb +0 -2
- data/lib/rubygems/request/https_pool.rb +0 -2
- data/lib/rubygems/request_set.rb +5 -7
- data/lib/rubygems/request_set/gem_dependency_api.rb +6 -8
- data/lib/rubygems/request_set/lockfile.rb +8 -12
- data/lib/rubygems/request_set/lockfile/parser.rb +0 -2
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +1 -3
- data/lib/rubygems/requirement.rb +20 -21
- data/lib/rubygems/resolver.rb +8 -11
- data/lib/rubygems/resolver/activation_request.rb +9 -3
- data/lib/rubygems/resolver/api_set.rb +4 -6
- data/lib/rubygems/resolver/api_specification.rb +21 -8
- data/lib/rubygems/resolver/best_set.rb +0 -2
- data/lib/rubygems/resolver/composed_set.rb +3 -5
- data/lib/rubygems/resolver/conflict.rb +2 -4
- data/lib/rubygems/resolver/current_set.rb +0 -2
- data/lib/rubygems/resolver/dependency_request.rb +1 -3
- data/lib/rubygems/resolver/git_set.rb +0 -2
- data/lib/rubygems/resolver/git_specification.rb +0 -2
- data/lib/rubygems/resolver/index_set.rb +1 -3
- data/lib/rubygems/resolver/index_specification.rb +11 -2
- data/lib/rubygems/resolver/installed_specification.rb +0 -2
- data/lib/rubygems/resolver/installer_set.rb +4 -7
- data/lib/rubygems/resolver/local_specification.rb +0 -2
- data/lib/rubygems/resolver/lock_set.rb +2 -4
- data/lib/rubygems/resolver/lock_specification.rb +0 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo.rb +6 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb +7 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb +39 -5
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb +7 -6
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb +4 -3
- data/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb +43 -10
- data/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb +75 -7
- data/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb +2 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb +1 -0
- data/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb +3 -1
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb +506 -165
- data/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb +3 -2
- data/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb +8 -4
- data/lib/rubygems/resolver/requirement_list.rb +0 -2
- data/lib/rubygems/resolver/set.rb +0 -2
- data/lib/rubygems/resolver/source_set.rb +0 -2
- data/lib/rubygems/resolver/spec_specification.rb +0 -2
- data/lib/rubygems/resolver/specification.rb +1 -3
- data/lib/rubygems/resolver/stats.rb +0 -2
- data/lib/rubygems/resolver/vendor_set.rb +0 -2
- data/lib/rubygems/resolver/vendor_specification.rb +0 -2
- data/lib/rubygems/s3_uri_signer.rb +2 -8
- data/lib/rubygems/safe_yaml.rb +4 -4
- data/lib/rubygems/security.rb +27 -34
- data/lib/rubygems/security/policy.rb +4 -8
- data/lib/rubygems/security/signer.rb +5 -7
- data/lib/rubygems/security/trust_dir.rb +1 -3
- data/lib/rubygems/server.rb +10 -12
- data/lib/rubygems/source.rb +13 -7
- data/lib/rubygems/source/git.rb +7 -8
- data/lib/rubygems/source/installed.rb +0 -2
- data/lib/rubygems/source/local.rb +2 -4
- data/lib/rubygems/source/lock.rb +0 -2
- data/lib/rubygems/source/specific_file.rb +0 -2
- data/lib/rubygems/source/vendor.rb +0 -2
- data/lib/rubygems/source_list.rb +6 -7
- data/lib/rubygems/spec_fetcher.rb +19 -18
- data/lib/rubygems/specification.rb +113 -126
- data/lib/rubygems/specification_policy.rb +88 -30
- data/lib/rubygems/ssl_certs/{index.rubygems.org → rubygems.org}/GlobalSignRootCA.pem +0 -0
- data/lib/rubygems/ssl_certs/rubygems.org/GlobalSignRootCA_R3.pem +21 -0
- data/lib/rubygems/stub_specification.rb +1 -5
- data/lib/rubygems/syck_hack.rb +0 -2
- data/lib/rubygems/test_case.rb +135 -118
- data/lib/rubygems/test_utilities.rb +6 -14
- data/lib/rubygems/uninstaller.rb +35 -16
- data/lib/rubygems/uri_formatter.rb +2 -3
- data/lib/rubygems/uri_parser.rb +0 -2
- data/lib/rubygems/user_interaction.rb +1 -26
- data/lib/rubygems/util.rb +15 -3
- data/lib/rubygems/util/licenses.rb +4 -6
- data/lib/rubygems/util/list.rb +0 -2
- data/lib/rubygems/validator.rb +1 -3
- data/lib/rubygems/version.rb +5 -7
- data/lib/rubygems/version_option.rb +6 -0
- data/rubygems-update.gemspec +2 -2
- data/setup.rb +2 -7
- data/test/rubygems/plugin/load/rubygems_plugin.rb +0 -2
- data/test/rubygems/rubygems/commands/crash_command.rb +0 -2
- data/test/rubygems/rubygems_plugin.rb +0 -2
- data/test/rubygems/specifications/bar-0.0.2.gemspec +0 -2
- data/test/rubygems/specifications/rubyforge-0.0.1.gemspec +12 -0
- data/test/rubygems/test_bundled_ca.rb +42 -45
- data/test/rubygems/test_config.rb +0 -2
- data/test/rubygems/test_deprecate.rb +40 -7
- data/test/rubygems/test_gem.rb +153 -106
- data/test/rubygems/test_gem_available_set.rb +3 -5
- data/test/rubygems/test_gem_bundler_version_finder.rb +19 -3
- data/test/rubygems/test_gem_command.rb +24 -7
- data/test/rubygems/test_gem_command_manager.rb +36 -5
- data/test/rubygems/test_gem_commands_build_command.rb +250 -15
- data/test/rubygems/test_gem_commands_cert_command.rb +4 -6
- data/test/rubygems/test_gem_commands_check_command.rb +0 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +14 -5
- data/test/rubygems/test_gem_commands_contents_command.rb +50 -19
- data/test/rubygems/test_gem_commands_dependency_command.rb +0 -2
- data/test/rubygems/test_gem_commands_environment_command.rb +21 -23
- data/test/rubygems/test_gem_commands_fetch_command.rb +0 -2
- data/test/rubygems/test_gem_commands_generate_index_command.rb +1 -7
- data/test/rubygems/test_gem_commands_help_command.rb +15 -4
- data/test/rubygems/test_gem_commands_info_command.rb +6 -8
- data/test/rubygems/test_gem_commands_install_command.rb +32 -34
- data/test/rubygems/test_gem_commands_list_command.rb +0 -2
- data/test/rubygems/test_gem_commands_lock_command.rb +0 -2
- data/test/rubygems/test_gem_commands_mirror.rb +1 -3
- data/test/rubygems/test_gem_commands_open_command.rb +4 -6
- data/test/rubygems/test_gem_commands_outdated_command.rb +0 -2
- data/test/rubygems/test_gem_commands_owner_command.rb +59 -5
- data/test/rubygems/test_gem_commands_pristine_command.rb +43 -12
- data/test/rubygems/test_gem_commands_push_command.rb +38 -9
- data/test/rubygems/test_gem_commands_query_command.rb +12 -12
- data/test/rubygems/test_gem_commands_search_command.rb +0 -2
- data/test/rubygems/test_gem_commands_server_command.rb +0 -2
- data/test/rubygems/test_gem_commands_setup_command.rb +211 -124
- data/test/rubygems/test_gem_commands_signin_command.rb +33 -9
- data/test/rubygems/test_gem_commands_signout_command.rb +0 -7
- data/test/rubygems/test_gem_commands_sources_command.rb +99 -3
- data/test/rubygems/test_gem_commands_specification_command.rb +46 -20
- data/test/rubygems/test_gem_commands_stale_command.rb +0 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -3
- data/test/rubygems/test_gem_commands_unpack_command.rb +0 -2
- data/test/rubygems/test_gem_commands_update_command.rb +116 -7
- data/test/rubygems/test_gem_commands_which_command.rb +3 -5
- data/test/rubygems/test_gem_commands_yank_command.rb +44 -8
- data/test/rubygems/test_gem_config_file.rb +7 -12
- data/test/rubygems/test_gem_dependency.rb +0 -2
- data/test/rubygems/test_gem_dependency_installer.rb +90 -193
- data/test/rubygems/test_gem_dependency_list.rb +10 -12
- data/test/rubygems/test_gem_dependency_resolution_error.rb +1 -3
- data/test/rubygems/test_gem_doctor.rb +28 -2
- data/test/rubygems/test_gem_ext_builder.rb +26 -47
- data/test/rubygems/test_gem_ext_cmake_builder.rb +16 -23
- data/test/rubygems/test_gem_ext_configure_builder.rb +4 -20
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +9 -29
- data/test/rubygems/test_gem_ext_rake_builder.rb +14 -24
- data/test/rubygems/test_gem_gem_runner.rb +44 -1
- data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -5
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -2
- data/test/rubygems/test_gem_indexer.rb +9 -15
- data/test/rubygems/test_gem_install_update_options.rb +14 -4
- data/test/rubygems/test_gem_installer.rb +265 -81
- data/test/rubygems/test_gem_local_remote_options.rb +0 -2
- data/test/rubygems/test_gem_name_tuple.rb +0 -2
- data/test/rubygems/test_gem_package.rb +41 -39
- data/test/rubygems/test_gem_package_old.rb +4 -6
- data/test/rubygems/test_gem_package_tar_header.rb +18 -1
- data/test/rubygems/test_gem_package_tar_reader.rb +0 -2
- data/test/rubygems/test_gem_package_tar_reader_entry.rb +0 -2
- data/test/rubygems/test_gem_package_tar_writer.rb +9 -6
- data/test/rubygems/test_gem_package_task.rb +46 -13
- data/test/rubygems/test_gem_path_support.rb +0 -2
- data/test/rubygems/test_gem_platform.rb +63 -6
- data/test/rubygems/test_gem_rdoc.rb +0 -2
- data/test/rubygems/test_gem_remote_fetcher.rb +168 -211
- data/test/rubygems/test_gem_request.rb +13 -17
- data/test/rubygems/test_gem_request_connection_pools.rb +0 -4
- data/test/rubygems/test_gem_request_set.rb +72 -22
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +3 -5
- data/test/rubygems/test_gem_request_set_lockfile.rb +4 -6
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +9 -11
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +118 -120
- data/test/rubygems/test_gem_requirement.rb +10 -4
- data/test/rubygems/test_gem_resolver.rb +6 -8
- data/test/rubygems/test_gem_resolver_activation_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_api_set.rb +11 -13
- data/test/rubygems/test_gem_resolver_api_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_best_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_composed_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_conflict.rb +1 -3
- data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_set.rb +0 -2
- data/test/rubygems/test_gem_resolver_git_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_index_set.rb +2 -4
- data/test/rubygems/test_gem_resolver_index_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_installer_set.rb +7 -9
- data/test/rubygems/test_gem_resolver_local_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_lock_set.rb +3 -5
- data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -2
- data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -2
- data/test/rubygems/test_gem_resolver_specification.rb +0 -4
- data/test/rubygems/test_gem_resolver_vendor_set.rb +1 -3
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -2
- data/test/rubygems/test_gem_security.rb +22 -24
- data/test/rubygems/test_gem_security_policy.rb +7 -12
- data/test/rubygems/test_gem_security_signer.rb +10 -12
- data/test/rubygems/test_gem_security_trust_dir.rb +4 -6
- data/test/rubygems/test_gem_server.rb +10 -14
- data/test/rubygems/test_gem_silent_ui.rb +0 -2
- data/test/rubygems/test_gem_source.rb +17 -16
- data/test/rubygems/test_gem_source_fetch_problem.rb +0 -2
- data/test/rubygems/test_gem_source_git.rb +12 -13
- data/test/rubygems/test_gem_source_installed.rb +7 -9
- data/test/rubygems/test_gem_source_list.rb +1 -2
- data/test/rubygems/test_gem_source_local.rb +8 -10
- data/test/rubygems/test_gem_source_lock.rb +10 -12
- data/test/rubygems/test_gem_source_specific_file.rb +7 -9
- data/test/rubygems/test_gem_source_subpath_problem.rb +49 -0
- data/test/rubygems/test_gem_source_vendor.rb +7 -9
- data/test/rubygems/test_gem_spec_fetcher.rb +11 -4
- data/test/rubygems/test_gem_specification.rb +182 -131
- data/test/rubygems/test_gem_stream_ui.rb +3 -3
- data/test/rubygems/test_gem_stub_specification.rb +4 -7
- data/test/rubygems/test_gem_text.rb +1 -3
- data/test/rubygems/test_gem_uninstaller.rb +134 -12
- data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -2
- data/test/rubygems/test_gem_uri_formatter.rb +0 -2
- data/test/rubygems/test_gem_util.rb +7 -7
- data/test/rubygems/test_gem_validator.rb +1 -3
- data/test/rubygems/test_gem_version.rb +1 -3
- data/test/rubygems/test_gem_version_option.rb +1 -3
- data/test/rubygems/test_kernel.rb +25 -10
- data/test/rubygems/test_project_sanity.rb +7 -2
- data/test/rubygems/test_remote_fetch_error.rb +0 -2
- data/test/rubygems/test_require.rb +291 -56
- metadata +66 -100
- data/.bundle/config +0 -2
- data/.rubocop.yml +0 -91
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -43
- data/bundler/CODE_OF_CONDUCT.md +0 -136
- data/bundler/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- data/bundler/man/bundle-add.1.txt +0 -58
- data/bundler/man/bundle-binstubs.1.txt +0 -48
- data/bundler/man/bundle-cache.1.txt +0 -78
- data/bundler/man/bundle-check.1.txt +0 -33
- data/bundler/man/bundle-clean.1.txt +0 -26
- data/bundler/man/bundle-config.1.txt +0 -528
- data/bundler/man/bundle-doctor.1.txt +0 -44
- data/bundler/man/bundle-exec.1.txt +0 -178
- data/bundler/man/bundle-gem.1.txt +0 -91
- data/bundler/man/bundle-info.1.txt +0 -21
- data/bundler/man/bundle-init.1.txt +0 -34
- data/bundler/man/bundle-inject.1.txt +0 -32
- data/bundler/man/bundle-install.1.txt +0 -401
- data/bundler/man/bundle-list.1.txt +0 -44
- data/bundler/man/bundle-lock.1.txt +0 -93
- data/bundler/man/bundle-open.1.txt +0 -29
- data/bundler/man/bundle-outdated.1.txt +0 -131
- data/bundler/man/bundle-platform.1.txt +0 -57
- data/bundler/man/bundle-pristine.1.txt +0 -44
- data/bundler/man/bundle-remove.1.txt +0 -34
- data/bundler/man/bundle-show.1.txt +0 -27
- data/bundler/man/bundle-update.1.txt +0 -390
- data/bundler/man/bundle-viz.1.txt +0 -39
- data/bundler/man/bundle.1.txt +0 -116
- data/bundler/man/gemfile.5.txt +0 -649
- data/lib/rubygems/source_local.rb +0 -7
- data/lib/rubygems/source_specific_file.rb +0 -6
- data/lib/rubygems/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/lib/ubygems.rb +0 -14
- data/tmp/.keep +0 -0
- data/util/CL2notes +0 -55
- data/util/bisect +0 -10
- data/util/ci.sh +0 -62
- data/util/cops/deprecations.rb +0 -52
- data/util/create_certs.rb +0 -171
- data/util/create_certs.sh +0 -27
- data/util/create_encrypted_key.rb +0 -16
- data/util/generate_spdx_license_list.rb +0 -63
- data/util/patch_with_prs.rb +0 -77
- data/util/rubocop +0 -8
- data/util/update_bundled_ca_certificates.rb +0 -139
- data/util/update_changelog.rb +0 -67
@@ -6,9 +6,6 @@
|
|
6
6
|
# See LICENSE.txt for permissions.
|
7
7
|
#++
|
8
8
|
|
9
|
-
require 'rubygems/version'
|
10
|
-
require 'rubygems/requirement'
|
11
|
-
require 'rubygems/platform'
|
12
9
|
require 'rubygems/deprecate'
|
13
10
|
require 'rubygems/basic_specification'
|
14
11
|
require 'rubygems/stub_specification'
|
@@ -37,7 +34,6 @@ require 'rubygems/util/list'
|
|
37
34
|
# items you may add to a specification.
|
38
35
|
|
39
36
|
class Gem::Specification < Gem::BasicSpecification
|
40
|
-
|
41
37
|
extend Gem::Deprecate
|
42
38
|
|
43
39
|
# REFACTOR: Consider breaking out this version stuff into a separate
|
@@ -81,18 +77,18 @@ class Gem::Specification < Gem::BasicSpecification
|
|
81
77
|
-1 => ['(RubyGems versions up to and including 0.7 did not have versioned specifications)'],
|
82
78
|
1 => [
|
83
79
|
'Deprecated "test_suite_file" in favor of the new, but equivalent, "test_files"',
|
84
|
-
'"test_file=x" is a shortcut for "test_files=[x]"'
|
80
|
+
'"test_file=x" is a shortcut for "test_files=[x]"',
|
85
81
|
],
|
86
82
|
2 => [
|
87
83
|
'Added "required_rubygems_version"',
|
88
84
|
'Now forward-compatible with future versions',
|
89
85
|
],
|
90
86
|
3 => [
|
91
|
-
'Added Fixnum validation to the specification_version'
|
87
|
+
'Added Fixnum validation to the specification_version',
|
92
88
|
],
|
93
89
|
4 => [
|
94
|
-
'Added sandboxed freeform metadata to the specification version.'
|
95
|
-
]
|
90
|
+
'Added sandboxed freeform metadata to the specification version.',
|
91
|
+
],
|
96
92
|
}.freeze
|
97
93
|
|
98
94
|
MARSHAL_FIELDS = { # :nodoc:
|
@@ -180,8 +176,8 @@ class Gem::Specification < Gem::BasicSpecification
|
|
180
176
|
end
|
181
177
|
end
|
182
178
|
|
183
|
-
@@attributes = @@default_value.keys.sort_by {
|
184
|
-
@@array_attributes = @@default_value.reject {
|
179
|
+
@@attributes = @@default_value.keys.sort_by {|s| s.to_s }
|
180
|
+
@@array_attributes = @@default_value.reject {|k,v| v != [] }.keys
|
185
181
|
@@nil_attributes, @@non_nil_attributes = @@default_value.keys.partition do |k|
|
186
182
|
@@default_value[k].nil?
|
187
183
|
end
|
@@ -193,6 +189,12 @@ class Gem::Specification < Gem::BasicSpecification
|
|
193
189
|
@@spec_with_requirable_file = {}
|
194
190
|
@@active_stub_with_requirable_file = {}
|
195
191
|
|
192
|
+
# Tracking removed method calls to warn users during build time.
|
193
|
+
REMOVED_METHODS = [:rubyforge_project=].freeze # :nodoc:
|
194
|
+
def removed_method_calls
|
195
|
+
@removed_method_calls ||= []
|
196
|
+
end
|
197
|
+
|
196
198
|
######################################################################
|
197
199
|
# :section: Required gemspec attributes
|
198
200
|
|
@@ -243,12 +245,11 @@ class Gem::Specification < Gem::BasicSpecification
|
|
243
245
|
# require 'rake'
|
244
246
|
# spec.files = FileList['lib/**/*.rb',
|
245
247
|
# 'bin/*',
|
246
|
-
# '[A-Z]*'
|
247
|
-
# 'test/**/*'].to_a
|
248
|
+
# '[A-Z]*'].to_a
|
248
249
|
#
|
249
250
|
# # or without Rake...
|
250
251
|
# spec.files = Dir['lib/**/*.rb'] + Dir['bin/*']
|
251
|
-
# spec.files += Dir['[A-Z]*']
|
252
|
+
# spec.files += Dir['[A-Z]*']
|
252
253
|
# spec.files.reject! { |fn| fn.include? "CVS" }
|
253
254
|
|
254
255
|
def files
|
@@ -384,6 +385,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
384
385
|
# "mailing_list_uri" => "https://groups.example.com/bestgemever",
|
385
386
|
# "source_code_uri" => "https://example.com/user/bestgemever",
|
386
387
|
# "wiki_uri" => "https://example.com/user/bestgemever/wiki"
|
388
|
+
# "funding_uri" => "https://example.com/donate"
|
387
389
|
# }
|
388
390
|
#
|
389
391
|
# These links will be used on your gem's page on rubygems.org and must pass
|
@@ -554,6 +556,10 @@ class Gem::Specification < Gem::BasicSpecification
|
|
554
556
|
# spec.add_runtime_dependency 'example', '~> 1.1', '>= 1.1.4'
|
555
557
|
|
556
558
|
def add_runtime_dependency(gem, *requirements)
|
559
|
+
if requirements.uniq.size != requirements.size
|
560
|
+
warn "WARNING: duplicated #{gem} dependency #{requirements}"
|
561
|
+
end
|
562
|
+
|
557
563
|
add_dependency_with_type(gem, :runtime, requirements)
|
558
564
|
end
|
559
565
|
|
@@ -719,21 +725,13 @@ class Gem::Specification < Gem::BasicSpecification
|
|
719
725
|
# Deprecated: You must now specify the executable name to Gem.bin_path.
|
720
726
|
|
721
727
|
attr_writer :default_executable
|
722
|
-
|
728
|
+
rubygems_deprecate :default_executable=
|
723
729
|
|
724
730
|
##
|
725
731
|
# Allows deinstallation of gems with legacy platforms.
|
726
732
|
|
727
733
|
attr_writer :original_platform # :nodoc:
|
728
734
|
|
729
|
-
##
|
730
|
-
# Deprecated and ignored.
|
731
|
-
#
|
732
|
-
# Formerly used to set rubyforge project.
|
733
|
-
|
734
|
-
attr_writer :rubyforge_project
|
735
|
-
deprecate :rubyforge_project=, :none, 2019, 12
|
736
|
-
|
737
735
|
##
|
738
736
|
# The Gem::Specification version of this gemspec.
|
739
737
|
#
|
@@ -748,8 +746,8 @@ class Gem::Specification < Gem::BasicSpecification
|
|
748
746
|
# After a reset, make sure already loaded specs
|
749
747
|
# are still marked as activated.
|
750
748
|
specs = {}
|
751
|
-
Gem.loaded_specs.each_value{|s| specs[s] = true}
|
752
|
-
@@all.each{|s| s.activated = true if specs[s]}
|
749
|
+
Gem.loaded_specs.each_value{|s| specs[s] = true }
|
750
|
+
@@all.each{|s| s.activated = true if specs[s] }
|
753
751
|
end
|
754
752
|
@@all
|
755
753
|
end
|
@@ -769,7 +767,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
769
767
|
end
|
770
768
|
|
771
769
|
def self.gemspec_stubs_in(dir, pattern)
|
772
|
-
Gem::Util.glob_files_in_dir(pattern, dir).map {
|
770
|
+
Gem::Util.glob_files_in_dir(pattern, dir).map {|path| yield path }.select(&:valid?)
|
773
771
|
end
|
774
772
|
private_class_method :gemspec_stubs_in
|
775
773
|
|
@@ -784,21 +782,11 @@ class Gem::Specification < Gem::BasicSpecification
|
|
784
782
|
dirs.flat_map do |dir|
|
785
783
|
base_dir = File.dirname dir
|
786
784
|
gems_dir = File.join base_dir, "gems"
|
787
|
-
gemspec_stubs_in(dir, pattern) {
|
785
|
+
gemspec_stubs_in(dir, pattern) {|path| yield path, base_dir, gems_dir }
|
788
786
|
end
|
789
787
|
end
|
790
788
|
private_class_method :map_stubs
|
791
789
|
|
792
|
-
def self.uniq_by(list, &block) # :nodoc:
|
793
|
-
list.uniq(&block)
|
794
|
-
end
|
795
|
-
private_class_method :uniq_by
|
796
|
-
|
797
|
-
def self.sort_by!(list, &block)
|
798
|
-
list.sort_by!(&block)
|
799
|
-
end
|
800
|
-
private_class_method :sort_by!
|
801
|
-
|
802
790
|
def self.each_spec(dirs) # :nodoc:
|
803
791
|
each_gemspec(dirs) do |path|
|
804
792
|
spec = self.load path
|
@@ -812,11 +800,11 @@ class Gem::Specification < Gem::BasicSpecification
|
|
812
800
|
def self.stubs
|
813
801
|
@@stubs ||= begin
|
814
802
|
pattern = "*.gemspec"
|
815
|
-
stubs =
|
816
|
-
stubs =
|
803
|
+
stubs = installed_stubs(dirs, pattern) + default_stubs(pattern)
|
804
|
+
stubs = stubs.uniq {|stub| stub.full_name }
|
817
805
|
|
818
806
|
_resort!(stubs)
|
819
|
-
@@stubs_by_name = stubs.select {
|
807
|
+
@@stubs_by_name = stubs.select {|s| Gem::Platform.match_spec? s }.group_by(&:name)
|
820
808
|
stubs
|
821
809
|
end
|
822
810
|
end
|
@@ -839,15 +827,13 @@ class Gem::Specification < Gem::BasicSpecification
|
|
839
827
|
# only returns stubs that match Gem.platforms
|
840
828
|
|
841
829
|
def self.stubs_for(name)
|
842
|
-
if @@
|
843
|
-
@@stubs_by_name[name]
|
830
|
+
if @@stubs_by_name[name]
|
831
|
+
@@stubs_by_name[name]
|
844
832
|
else
|
845
833
|
pattern = "#{name}-*.gemspec"
|
846
|
-
stubs = Gem.
|
847
|
-
|
848
|
-
|
849
|
-
stubs = uniq_by(stubs) { |stub| stub.full_name }.group_by(&:name)
|
850
|
-
stubs.each_value { |v| _resort!(v) }
|
834
|
+
stubs = installed_stubs(dirs, pattern).select {|s| Gem::Platform.match_spec? s } + default_stubs(pattern)
|
835
|
+
stubs = stubs.uniq {|stub| stub.full_name }.group_by(&:name)
|
836
|
+
stubs.each_value {|v| _resort!(v) }
|
851
837
|
|
852
838
|
@@stubs_by_name.merge! stubs
|
853
839
|
@@stubs_by_name[name] ||= EMPTY
|
@@ -941,7 +927,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
941
927
|
def self.dirs=(dirs)
|
942
928
|
self.reset
|
943
929
|
|
944
|
-
@@dirs = Array(dirs).map {
|
930
|
+
@@dirs = Array(dirs).map {|dir| File.join dir, "specifications" }
|
945
931
|
end
|
946
932
|
|
947
933
|
extend Enumerable
|
@@ -1024,10 +1010,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1024
1010
|
# Return currently unresolved specs that contain the file matching +path+.
|
1025
1011
|
|
1026
1012
|
def self.find_in_unresolved(path)
|
1027
|
-
|
1028
|
-
specs = unresolved_deps.values.map { |dep| dep.to_specs }.flatten
|
1029
|
-
|
1030
|
-
specs.find_all { |spec| spec.contains_requirable_file? path }
|
1013
|
+
unresolved_specs.find_all {|spec| spec.contains_requirable_file? path }
|
1031
1014
|
end
|
1032
1015
|
|
1033
1016
|
##
|
@@ -1035,9 +1018,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1035
1018
|
# specs that contain the file matching +path+.
|
1036
1019
|
|
1037
1020
|
def self.find_in_unresolved_tree(path)
|
1038
|
-
|
1039
|
-
|
1040
|
-
specs.each do |spec|
|
1021
|
+
unresolved_specs.each do |spec|
|
1041
1022
|
spec.traverse do |from_spec, dep, to_spec, trail|
|
1042
1023
|
if to_spec.has_conflicts? || to_spec.conficts_when_loaded_with?(trail)
|
1043
1024
|
:next
|
@@ -1050,6 +1031,11 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1050
1031
|
[]
|
1051
1032
|
end
|
1052
1033
|
|
1034
|
+
def self.unresolved_specs
|
1035
|
+
unresolved_deps.values.map {|dep| dep.to_specs }.flatten
|
1036
|
+
end
|
1037
|
+
private_class_method :unresolved_specs
|
1038
|
+
|
1053
1039
|
##
|
1054
1040
|
# Special loader for YAML files. When a Specification object is loaded
|
1055
1041
|
# from a YAML file, it bypasses the normal Ruby object initialization
|
@@ -1086,8 +1072,15 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1086
1072
|
_latest_specs Gem::Specification._all, prerelease
|
1087
1073
|
end
|
1088
1074
|
|
1075
|
+
##
|
1076
|
+
# Return the latest installed spec for gem +name+.
|
1077
|
+
|
1078
|
+
def self.latest_spec_for(name)
|
1079
|
+
latest_specs(true).find {|installed_spec| installed_spec.name == name }
|
1080
|
+
end
|
1081
|
+
|
1089
1082
|
def self._latest_specs(specs, prerelease = false) # :nodoc:
|
1090
|
-
result = Hash.new {
|
1083
|
+
result = Hash.new {|h,k| h[k] = {} }
|
1091
1084
|
native = {}
|
1092
1085
|
|
1093
1086
|
specs.reverse_each do |spec|
|
@@ -1100,7 +1093,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1100
1093
|
result.map(&:last).map(&:values).flatten.reject do |spec|
|
1101
1094
|
minimum = native[spec.name]
|
1102
1095
|
minimum && spec.version < minimum
|
1103
|
-
end.sort_by{
|
1096
|
+
end.sort_by{|tup| tup.name }
|
1104
1097
|
end
|
1105
1098
|
|
1106
1099
|
##
|
@@ -1157,7 +1150,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1157
1150
|
|
1158
1151
|
def self.normalize_yaml_input(input)
|
1159
1152
|
result = input.respond_to?(:read) ? input.read : input
|
1160
|
-
result = "--- " + result unless result
|
1153
|
+
result = "--- " + result unless result.start_with?("--- ")
|
1161
1154
|
result = result.dup
|
1162
1155
|
result.gsub!(/ !!null \n/, " \n")
|
1163
1156
|
# date: 2011-04-26 00:00:00.000000000Z
|
@@ -1174,7 +1167,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1174
1167
|
# version as well.
|
1175
1168
|
|
1176
1169
|
def self.outdated
|
1177
|
-
outdated_and_latest_version.map {
|
1170
|
+
outdated_and_latest_version.map {|local, _| local.name }
|
1178
1171
|
end
|
1179
1172
|
|
1180
1173
|
##
|
@@ -1195,7 +1188,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1195
1188
|
Gem::Dependency.new local_spec.name, ">= #{local_spec.version}"
|
1196
1189
|
|
1197
1190
|
remotes, = fetcher.search_for_dependency dependency
|
1198
|
-
remotes = remotes.map {
|
1191
|
+
remotes = remotes.map {|n, _| n.version }
|
1199
1192
|
|
1200
1193
|
latest_remote = remotes.sort.last
|
1201
1194
|
|
@@ -1226,7 +1219,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1226
1219
|
|
1227
1220
|
def self.reset
|
1228
1221
|
@@dirs = nil
|
1229
|
-
Gem.pre_reset_hooks.each {
|
1222
|
+
Gem.pre_reset_hooks.each {|hook| hook.call }
|
1230
1223
|
@@all = nil
|
1231
1224
|
@@stubs = nil
|
1232
1225
|
@@stubs_by_name = {}
|
@@ -1243,19 +1236,19 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1243
1236
|
versions = find_all_by_name(dep.name)
|
1244
1237
|
unless versions.empty?
|
1245
1238
|
warn " Available/installed versions of this gem:"
|
1246
|
-
versions.each {
|
1239
|
+
versions.each {|s| warn " - #{s.version}" }
|
1247
1240
|
end
|
1248
1241
|
end
|
1249
1242
|
warn "#{w}: Clearing out unresolved specs. Try 'gem cleanup <gem>'"
|
1250
1243
|
warn "Please report a bug if this causes problems."
|
1251
1244
|
unresolved.clear
|
1252
1245
|
end
|
1253
|
-
Gem.post_reset_hooks.each {
|
1246
|
+
Gem.post_reset_hooks.each {|hook| hook.call }
|
1254
1247
|
end
|
1255
1248
|
|
1256
1249
|
# DOC: This method needs documented or nodoc'd
|
1257
1250
|
def self.unresolved_deps
|
1258
|
-
@unresolved_deps ||= Hash.new {
|
1251
|
+
@unresolved_deps ||= Hash.new {|h, n| h[n] = Gem::Dependency.new n }
|
1259
1252
|
end
|
1260
1253
|
|
1261
1254
|
##
|
@@ -1286,7 +1279,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1286
1279
|
# Cleanup any YAML::PrivateType. They only show up for an old bug
|
1287
1280
|
# where nil => null, so just convert them to nil based on the type.
|
1288
1281
|
|
1289
|
-
array.map! {
|
1282
|
+
array.map! {|e| e.kind_of?(YAML::PrivateType) ? nil : e }
|
1290
1283
|
|
1291
1284
|
spec.instance_variable_set :@rubygems_version, array[0]
|
1292
1285
|
# spec version
|
@@ -1351,7 +1344,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1351
1344
|
true, # has_rdoc
|
1352
1345
|
@new_platform,
|
1353
1346
|
@licenses,
|
1354
|
-
@metadata
|
1347
|
+
@metadata,
|
1355
1348
|
]
|
1356
1349
|
end
|
1357
1350
|
|
@@ -1399,7 +1392,11 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1399
1392
|
raise e
|
1400
1393
|
end
|
1401
1394
|
|
1402
|
-
|
1395
|
+
begin
|
1396
|
+
specs = spec_dep.to_specs
|
1397
|
+
rescue Gem::MissingSpecError => e
|
1398
|
+
raise Gem::MissingSpecError.new(e.name, e.requirement, "at: #{self.spec_file}")
|
1399
|
+
end
|
1403
1400
|
|
1404
1401
|
if specs.size == 1
|
1405
1402
|
specs.first.activate
|
@@ -1435,7 +1432,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1435
1432
|
self.summary = sanitize_string(summary)
|
1436
1433
|
self.description = sanitize_string(description)
|
1437
1434
|
self.post_install_message = sanitize_string(post_install_message)
|
1438
|
-
self.authors = authors.collect {
|
1435
|
+
self.authors = authors.collect {|a| sanitize_string(a) }
|
1439
1436
|
end
|
1440
1437
|
|
1441
1438
|
##
|
@@ -1447,13 +1444,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1447
1444
|
# HACK the #to_s is in here because RSpec has an Array of Arrays of
|
1448
1445
|
# Strings for authors. Need a way to disallow bad values on gemspec
|
1449
1446
|
# generation. (Probably won't happen.)
|
1450
|
-
string
|
1451
|
-
|
1452
|
-
begin
|
1453
|
-
Builder::XChar.encode string
|
1454
|
-
rescue NameError, NoMethodError
|
1455
|
-
string.to_xs
|
1456
|
-
end
|
1447
|
+
string.to_s
|
1457
1448
|
end
|
1458
1449
|
|
1459
1450
|
##
|
@@ -1464,7 +1455,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1464
1455
|
return nil if executables.nil?
|
1465
1456
|
|
1466
1457
|
if @bindir
|
1467
|
-
Array(executables).map {
|
1458
|
+
Array(executables).map {|e| File.join(@bindir, e) }
|
1468
1459
|
else
|
1469
1460
|
executables
|
1470
1461
|
end
|
@@ -1546,7 +1537,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1546
1537
|
def build_args
|
1547
1538
|
if File.exist? build_info_file
|
1548
1539
|
build_info = File.readlines build_info_file
|
1549
|
-
build_info = build_info.map {
|
1540
|
+
build_info = build_info.map {|x| x.strip }
|
1550
1541
|
build_info.delete ""
|
1551
1542
|
build_info
|
1552
1543
|
else
|
@@ -1638,7 +1629,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1638
1629
|
|
1639
1630
|
def conficts_when_loaded_with?(list_of_specs) # :nodoc:
|
1640
1631
|
result = list_of_specs.any? do |spec|
|
1641
|
-
spec.dependencies.any? {
|
1632
|
+
spec.dependencies.any? {|dep| dep.runtime? && (dep.name == name) && !satisfies_requirement?(dep) }
|
1642
1633
|
end
|
1643
1634
|
result
|
1644
1635
|
end
|
@@ -1727,7 +1718,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1727
1718
|
end
|
1728
1719
|
result
|
1729
1720
|
end
|
1730
|
-
|
1721
|
+
rubygems_deprecate :default_executable
|
1731
1722
|
|
1732
1723
|
##
|
1733
1724
|
# The default value for specification attribute +name+
|
@@ -1752,10 +1743,11 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1752
1743
|
#
|
1753
1744
|
# [depending_gem, dependency, [list_of_gems_that_satisfy_dependency]]
|
1754
1745
|
|
1755
|
-
def dependent_gems
|
1746
|
+
def dependent_gems(check_dev=true)
|
1756
1747
|
out = []
|
1757
1748
|
Gem::Specification.each do |spec|
|
1758
|
-
spec.dependencies
|
1749
|
+
deps = check_dev ? spec.dependencies : spec.runtime_dependencies
|
1750
|
+
deps.each do |dep|
|
1759
1751
|
if self.satisfies_requirement?(dep)
|
1760
1752
|
sats = []
|
1761
1753
|
find_all_satisfiers(dep) do |sat|
|
@@ -1772,7 +1764,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1772
1764
|
# Returns all specs that matches this spec's runtime dependencies.
|
1773
1765
|
|
1774
1766
|
def dependent_specs
|
1775
|
-
runtime_dependencies.map {
|
1767
|
+
runtime_dependencies.map {|dep| dep.to_specs }.flatten
|
1776
1768
|
end
|
1777
1769
|
|
1778
1770
|
##
|
@@ -1786,7 +1778,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1786
1778
|
# List of dependencies that are used for development
|
1787
1779
|
|
1788
1780
|
def development_dependencies
|
1789
|
-
dependencies.select {
|
1781
|
+
dependencies.select {|d| d.type == :development }
|
1790
1782
|
end
|
1791
1783
|
|
1792
1784
|
##
|
@@ -1847,29 +1839,23 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1847
1839
|
end
|
1848
1840
|
|
1849
1841
|
##
|
1850
|
-
# Sets executables to +value+, ensuring it is an array.
|
1851
|
-
# use this, push onto the array instead.
|
1842
|
+
# Sets executables to +value+, ensuring it is an array.
|
1852
1843
|
|
1853
1844
|
def executables=(value)
|
1854
|
-
# TODO: warn about setting instead of pushing
|
1855
1845
|
@executables = Array(value)
|
1856
1846
|
end
|
1857
1847
|
|
1858
1848
|
##
|
1859
|
-
# Sets extensions to +extensions+, ensuring it is an array.
|
1860
|
-
# use this, push onto the array instead.
|
1849
|
+
# Sets extensions to +extensions+, ensuring it is an array.
|
1861
1850
|
|
1862
1851
|
def extensions=(extensions)
|
1863
|
-
# TODO: warn about setting instead of pushing
|
1864
1852
|
@extensions = Array extensions
|
1865
1853
|
end
|
1866
1854
|
|
1867
1855
|
##
|
1868
|
-
# Sets extra_rdoc_files to +files+, ensuring it is an array.
|
1869
|
-
# use this, push onto the array instead.
|
1856
|
+
# Sets extra_rdoc_files to +files+, ensuring it is an array.
|
1870
1857
|
|
1871
1858
|
def extra_rdoc_files=(files)
|
1872
|
-
# TODO: warn about setting instead of pushing
|
1873
1859
|
@extra_rdoc_files = Array files
|
1874
1860
|
end
|
1875
1861
|
|
@@ -1935,7 +1921,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1935
1921
|
def has_rdoc # :nodoc:
|
1936
1922
|
true
|
1937
1923
|
end
|
1938
|
-
|
1924
|
+
rubygems_deprecate :has_rdoc
|
1939
1925
|
|
1940
1926
|
##
|
1941
1927
|
# Deprecated and ignored.
|
@@ -1945,10 +1931,10 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1945
1931
|
def has_rdoc=(ignored) # :nodoc:
|
1946
1932
|
@has_rdoc = true
|
1947
1933
|
end
|
1948
|
-
|
1934
|
+
rubygems_deprecate :has_rdoc=
|
1949
1935
|
|
1950
1936
|
alias :has_rdoc? :has_rdoc # :nodoc:
|
1951
|
-
|
1937
|
+
rubygems_deprecate :has_rdoc?
|
1952
1938
|
|
1953
1939
|
##
|
1954
1940
|
# True if this gem has files in test_files
|
@@ -1970,7 +1956,9 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1970
1956
|
yaml_initialize coder.tag, coder.map
|
1971
1957
|
end
|
1972
1958
|
|
1973
|
-
eval <<-
|
1959
|
+
eval <<-RUBY, binding, __FILE__, __LINE__ + 1
|
1960
|
+
# frozen_string_literal: true
|
1961
|
+
|
1974
1962
|
def set_nil_attributes_to_nil
|
1975
1963
|
#{@@nil_attributes.map {|key| "@#{key} = nil" }.join "; "}
|
1976
1964
|
end
|
@@ -1980,7 +1968,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
1980
1968
|
#{@@non_nil_attributes.map {|key| "@#{key} = #{INITIALIZE_CODE_FOR_DEFAULTS[key]}" }.join ";"}
|
1981
1969
|
end
|
1982
1970
|
private :set_not_nil_attributes_to_default_values
|
1983
|
-
|
1971
|
+
RUBY
|
1984
1972
|
|
1985
1973
|
##
|
1986
1974
|
# Specification constructor. Assigns the default values to the attributes
|
@@ -2005,6 +1993,10 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2005
1993
|
self.name = name if name
|
2006
1994
|
self.version = version if version
|
2007
1995
|
|
1996
|
+
if platform = Gem.platforms.last and platform != Gem::Platform::RUBY and platform != Gem::Platform.local
|
1997
|
+
self.platform = platform
|
1998
|
+
end
|
1999
|
+
|
2008
2000
|
yield self if block_given?
|
2009
2001
|
end
|
2010
2002
|
|
@@ -2107,11 +2099,17 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2107
2099
|
end
|
2108
2100
|
|
2109
2101
|
##
|
2102
|
+
# Track removed method calls to warn about during build time.
|
2110
2103
|
# Warn about unknown attributes while loading a spec.
|
2111
2104
|
|
2112
2105
|
def method_missing(sym, *a, &b) # :nodoc:
|
2106
|
+
if REMOVED_METHODS.include?(sym)
|
2107
|
+
removed_method_calls << sym
|
2108
|
+
return
|
2109
|
+
end
|
2110
|
+
|
2113
2111
|
if @specification_version > CURRENT_SPECIFICATION_VERSION and
|
2114
|
-
sym.to_s
|
2112
|
+
sym.to_s.end_with?("=")
|
2115
2113
|
warn "ignoring #{sym} loading #{full_name}" if $DEBUG
|
2116
2114
|
else
|
2117
2115
|
super
|
@@ -2195,7 +2193,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2195
2193
|
|
2196
2194
|
attributes.each do |attr_name|
|
2197
2195
|
current_value = self.send attr_name
|
2198
|
-
current_value = current_value.sort if %i
|
2196
|
+
current_value = current_value.sort if %i[files test_files].include? attr_name
|
2199
2197
|
if current_value != default_value(attr_name) or
|
2200
2198
|
self.class.required_attribute? attr_name
|
2201
2199
|
|
@@ -2245,11 +2243,9 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2245
2243
|
end
|
2246
2244
|
|
2247
2245
|
##
|
2248
|
-
# Sets rdoc_options to +value+, ensuring it is an array.
|
2249
|
-
# use this, push onto the array instead.
|
2246
|
+
# Sets rdoc_options to +value+, ensuring it is an array.
|
2250
2247
|
|
2251
2248
|
def rdoc_options=(options)
|
2252
|
-
# TODO: warn about setting instead of pushing
|
2253
2249
|
@rdoc_options = Array options
|
2254
2250
|
end
|
2255
2251
|
|
@@ -2268,11 +2264,9 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2268
2264
|
end
|
2269
2265
|
|
2270
2266
|
##
|
2271
|
-
# Set requirements to +req+, ensuring it is an array.
|
2272
|
-
# use this, push onto the array instead.
|
2267
|
+
# Set requirements to +req+, ensuring it is an array.
|
2273
2268
|
|
2274
2269
|
def requirements=(req)
|
2275
|
-
# TODO: warn about setting instead of pushing
|
2276
2270
|
@requirements = Array req
|
2277
2271
|
end
|
2278
2272
|
|
@@ -2294,9 +2288,9 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2294
2288
|
def ruby_code(obj)
|
2295
2289
|
case obj
|
2296
2290
|
when String then obj.dump + ".freeze"
|
2297
|
-
when Array then '[' + obj.map {
|
2291
|
+
when Array then '[' + obj.map {|x| ruby_code x }.join(", ") + ']'
|
2298
2292
|
when Hash then
|
2299
|
-
seg = obj.keys.sort.map {
|
2293
|
+
seg = obj.keys.sort.map {|k| "#{k.to_s.dump} => #{obj[k].to_s.dump}" }
|
2300
2294
|
"{ #{seg.join(', ')} }"
|
2301
2295
|
when Gem::Version then obj.to_s.dump
|
2302
2296
|
when DateLike then obj.strftime('%Y-%m-%d').dump
|
@@ -2324,7 +2318,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2324
2318
|
# True if this gem has the same attributes as +other+.
|
2325
2319
|
|
2326
2320
|
def same_attributes?(spec)
|
2327
|
-
@@attributes.all? {
|
2321
|
+
@@attributes.all? {|name, default| self.send(name) == spec.send(name) }
|
2328
2322
|
end
|
2329
2323
|
|
2330
2324
|
private :same_attributes?
|
@@ -2423,7 +2417,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2423
2417
|
# still have their default values are omitted.
|
2424
2418
|
|
2425
2419
|
def to_ruby
|
2426
|
-
|
2420
|
+
require_relative 'openssl'
|
2427
2421
|
mark_version
|
2428
2422
|
result = []
|
2429
2423
|
result << "# -*- encoding: utf-8 -*-"
|
@@ -2456,14 +2450,14 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2456
2450
|
:version,
|
2457
2451
|
:has_rdoc,
|
2458
2452
|
:default_executable,
|
2459
|
-
:metadata
|
2453
|
+
:metadata,
|
2460
2454
|
]
|
2461
2455
|
|
2462
2456
|
@@attributes.each do |attr_name|
|
2463
2457
|
next if handled.include? attr_name
|
2464
2458
|
current_value = self.send(attr_name)
|
2465
2459
|
if current_value != default_value(attr_name) || self.class.required_attribute?(attr_name)
|
2466
|
-
result << " s.#{attr_name} = #{ruby_code current_value}" unless current_value.is_a?(OpenSSL::PKey::RSA)
|
2460
|
+
result << " s.#{attr_name} = #{ruby_code current_value}" unless defined?(OpenSSL::PKey::RSA) && current_value.is_a?(OpenSSL::PKey::RSA)
|
2467
2461
|
end
|
2468
2462
|
end
|
2469
2463
|
|
@@ -2566,7 +2560,7 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2566
2560
|
unless result == :next
|
2567
2561
|
spec_name = dep_spec.name
|
2568
2562
|
dep_spec.traverse(trail, visited, &block) unless
|
2569
|
-
trail.any? {
|
2563
|
+
trail.any? {|s| s.name == spec_name }
|
2570
2564
|
end
|
2571
2565
|
end
|
2572
2566
|
end
|
@@ -2591,30 +2585,27 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2591
2585
|
end
|
2592
2586
|
|
2593
2587
|
def keep_only_files_and_directories
|
2594
|
-
@executables.delete_if {
|
2595
|
-
@extensions.delete_if {
|
2596
|
-
@extra_rdoc_files.delete_if {
|
2597
|
-
@files.delete_if {
|
2598
|
-
@test_files.delete_if {
|
2588
|
+
@executables.delete_if {|x| File.directory?(File.join(@bindir, x)) }
|
2589
|
+
@extensions.delete_if {|x| File.directory?(x) && !File.symlink?(x) }
|
2590
|
+
@extra_rdoc_files.delete_if {|x| File.directory?(x) && !File.symlink?(x) }
|
2591
|
+
@files.delete_if {|x| File.directory?(x) && !File.symlink?(x) }
|
2592
|
+
@test_files.delete_if {|x| File.directory?(x) && !File.symlink?(x) }
|
2599
2593
|
end
|
2600
2594
|
|
2601
2595
|
def validate_metadata
|
2602
2596
|
Gem::SpecificationPolicy.new(self).validate_metadata
|
2603
2597
|
end
|
2598
|
+
rubygems_deprecate :validate_metadata
|
2604
2599
|
|
2605
|
-
##
|
2606
|
-
# Checks that dependencies use requirements as we recommend. Warnings are
|
2607
|
-
# issued when dependencies are open-ended or overly strict for semantic
|
2608
|
-
# versioning.
|
2609
2600
|
def validate_dependencies
|
2610
2601
|
Gem::SpecificationPolicy.new(self).validate_dependencies
|
2611
2602
|
end
|
2603
|
+
rubygems_deprecate :validate_dependencies
|
2612
2604
|
|
2613
|
-
##
|
2614
|
-
# Checks to see if the files to be packaged are world-readable.
|
2615
2605
|
def validate_permissions
|
2616
2606
|
Gem::SpecificationPolicy.new(self).validate_permissions
|
2617
2607
|
end
|
2608
|
+
rubygems_deprecate :validate_permissions
|
2618
2609
|
|
2619
2610
|
##
|
2620
2611
|
# Set the version to +version+, potentially also setting
|
@@ -2677,8 +2668,4 @@ class Gem::Specification < Gem::BasicSpecification
|
|
2677
2668
|
def raw_require_paths # :nodoc:
|
2678
2669
|
@require_paths
|
2679
2670
|
end
|
2680
|
-
|
2681
2671
|
end
|
2682
|
-
|
2683
|
-
# DOC: What is this and why is it here, randomly, at the end of this file?
|
2684
|
-
Gem.clear_paths
|