rubygems-update 4.0.21 → 4.1.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +590 -53
- data/CONTRIBUTING.md +66 -5
- data/MIT.txt +4 -3
- data/Manifest.txt +332 -375
- data/README.md +26 -6
- data/bundler.gemspec +63 -0
- data/doc/POLICIES.md +147 -0
- data/doc/UPGRADING.md +4 -4
- data/{bundler/lib → lib}/bundler/build_metadata.rb +2 -2
- data/{bundler/lib → lib}/bundler/checksum.rb +40 -25
- data/{bundler/lib → lib}/bundler/ci_detector.rb +1 -1
- data/{bundler/lib → lib}/bundler/cli/add.rb +3 -4
- data/{bundler/lib → lib}/bundler/cli/cache.rb +4 -0
- data/{bundler/lib → lib}/bundler/cli/clean.rb +5 -0
- data/{bundler/lib → lib}/bundler/cli/common.rb +37 -1
- data/{bundler/lib → lib}/bundler/cli/config.rb +4 -2
- data/{bundler/lib → lib}/bundler/cli/gem.rb +0 -17
- data/{bundler/lib → lib}/bundler/cli/install.rb +4 -5
- data/{bundler/lib → lib}/bundler/cli/lock.rb +1 -2
- data/{bundler/lib → lib}/bundler/cli/outdated.rb +8 -3
- data/{bundler/lib → lib}/bundler/cli/pristine.rb +2 -1
- data/{bundler/lib → lib}/bundler/cli/update.rb +21 -12
- data/{bundler/lib → lib}/bundler/cli.rb +14 -11
- data/{bundler/lib → lib}/bundler/definition.rb +61 -24
- data/{bundler/lib → lib}/bundler/dependency.rb +4 -0
- data/{bundler/lib → lib}/bundler/dsl.rb +77 -11
- data/{bundler/lib → lib}/bundler/endpoint_specification.rb +51 -14
- data/{bundler/lib → lib}/bundler/env.rb +7 -24
- data/{bundler/lib → lib}/bundler/errors.rb +34 -5
- data/{bundler/lib → lib}/bundler/fetcher/compact_index.rb +14 -5
- data/lib/bundler/fetcher/connection_pools.rb +150 -0
- data/{bundler/lib → lib}/bundler/fetcher/downloader.rb +31 -16
- data/{bundler/lib → lib}/bundler/fetcher.rb +8 -47
- data/{bundler/lib → lib}/bundler/injector.rb +3 -3
- data/{bundler/lib → lib}/bundler/inline.rb +44 -4
- data/{bundler/lib → lib}/bundler/installer/parallel_installer.rb +25 -30
- data/{bundler/lib → lib}/bundler/installer.rb +20 -6
- data/{bundler/lib → lib}/bundler/lazy_specification.rb +44 -17
- data/{bundler/lib → lib}/bundler/lockfile_generator.rb +24 -2
- data/{bundler/lib → lib}/bundler/lockfile_parser.rb +43 -5
- data/{bundler/lib → lib}/bundler/man/bundle-add.1 +7 -4
- data/{bundler/lib → lib}/bundler/man/bundle-add.1.ronn +8 -4
- data/{bundler/lib → lib}/bundler/man/bundle-binstubs.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-cache.1 +2 -2
- data/{bundler/lib → lib}/bundler/man/bundle-cache.1.ronn +2 -2
- data/{bundler/lib → lib}/bundler/man/bundle-check.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-clean.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-config.1 +38 -6
- data/{bundler/lib → lib}/bundler/man/bundle-config.1.ronn +143 -10
- data/{bundler/lib → lib}/bundler/man/bundle-console.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-doctor.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-env.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-exec.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-fund.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-gem.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-help.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-info.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-init.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-install.1 +2 -2
- data/{bundler/lib → lib}/bundler/man/bundle-install.1.ronn +4 -4
- data/{bundler/lib → lib}/bundler/man/bundle-issue.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-licenses.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-list.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-lock.1 +3 -3
- data/{bundler/lib → lib}/bundler/man/bundle-lock.1.ronn +5 -5
- data/{bundler/lib → lib}/bundler/man/bundle-open.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-outdated.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-platform.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-plugin.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-pristine.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-remove.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-show.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle-update.1 +3 -3
- data/{bundler/lib → lib}/bundler/man/bundle-update.1.ronn +3 -5
- data/{bundler/lib → lib}/bundler/man/bundle-version.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/bundle.1 +1 -1
- data/{bundler/lib → lib}/bundler/man/gemfile.5 +45 -1
- data/{bundler/lib → lib}/bundler/man/gemfile.5.ronn +53 -0
- data/lib/bundler/match_metadata.rb +50 -0
- data/{bundler/lib → lib}/bundler/match_platform.rb +25 -2
- data/lib/bundler/match_remote_metadata.rb +44 -0
- data/{bundler/lib → lib}/bundler/materialization.rb +2 -1
- data/lib/bundler/override.rb +69 -0
- data/{bundler/lib → lib}/bundler/plugin/dsl.rb +3 -5
- data/{bundler/lib → lib}/bundler/plugin/events.rb +55 -13
- data/{bundler/lib → lib}/bundler/plugin/index.rb +87 -11
- data/{bundler/lib → lib}/bundler/plugin/installer/path.rb +1 -1
- data/{bundler/lib → lib}/bundler/plugin/installer.rb +13 -5
- data/{bundler/lib → lib}/bundler/plugin.rb +58 -30
- data/{bundler/lib → lib}/bundler/remote_specification.rb +6 -3
- data/{bundler/lib → lib}/bundler/resolver/base.rb +2 -1
- data/{bundler/lib → lib}/bundler/resolver/incompatibility.rb +1 -1
- data/{bundler/lib → lib}/bundler/resolver.rb +73 -23
- data/{bundler/lib → lib}/bundler/ruby_version.rb +0 -2
- data/{bundler/lib → lib}/bundler/rubygems_ext.rb +71 -1
- data/{bundler/lib → lib}/bundler/rubygems_gem_installer.rb +41 -2
- data/{bundler/lib → lib}/bundler/rubygems_integration.rb +7 -2
- data/{bundler/lib → lib}/bundler/runtime.rb +69 -2
- data/{bundler/lib → lib}/bundler/self_manager.rb +9 -15
- data/{bundler/lib → lib}/bundler/settings.rb +373 -30
- data/{bundler/lib → lib}/bundler/shared_helpers.rb +2 -1
- data/{bundler/lib → lib}/bundler/source/git/git_proxy.rb +2 -10
- data/{bundler/lib → lib}/bundler/source/git.rb +15 -6
- data/{bundler/lib → lib}/bundler/source/path/installer.rb +1 -1
- data/{bundler/lib → lib}/bundler/source/rubygems/remote.rb +10 -5
- data/{bundler/lib → lib}/bundler/source/rubygems.rb +48 -12
- data/{bundler/lib → lib}/bundler/spec_set.rb +16 -4
- data/{bundler/lib → lib}/bundler/stub_specification.rb +2 -1
- data/{bundler/lib → lib}/bundler/templates/newgem/Gemfile.tt +4 -4
- data/{bundler/lib → lib}/bundler/templates/newgem/newgem.gemspec.tt +3 -3
- data/{bundler/lib → lib}/bundler/templates/newgem/spec/newgem_spec.rb.tt +1 -1
- data/{bundler/lib → lib}/bundler/templates/newgem/test/minitest/test_newgem.rb.tt +1 -1
- data/{bundler/lib → lib}/bundler/ui/shell.rb +0 -4
- data/{bundler/lib → lib}/bundler/ui/silent.rb +0 -4
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +35 -2
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/base.rb +2 -1
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/basic.rb +14 -6
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/color.rb +2 -0
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor.rb +34 -1
- data/lib/bundler/vendored_pub_grub.rb +7 -0
- data/lib/bundler/vendored_securerandom.rb +15 -0
- data/lib/bundler/vendored_uri.rb +21 -0
- data/{bundler/lib → lib}/bundler/version.rb +1 -1
- data/{bundler/lib → lib}/bundler/worker.rb +3 -2
- data/{bundler/lib → lib}/bundler.rb +1 -1
- data/lib/rubygems/basic_specification.rb +15 -14
- data/lib/rubygems/bundler_settings.rb +137 -0
- data/lib/rubygems/bundler_version_finder.rb +13 -55
- data/lib/rubygems/ci_detector.rb +1 -1
- data/lib/rubygems/commands/build_command.rb +8 -1
- data/lib/rubygems/commands/cert_command.rb +9 -7
- data/lib/rubygems/commands/contents_command.rb +1 -1
- data/lib/rubygems/commands/dependency_command.rb +15 -3
- data/lib/rubygems/commands/environment_command.rb +1 -0
- data/lib/rubygems/commands/exec_command.rb +3 -0
- data/lib/rubygems/commands/fetch_command.rb +1 -1
- data/lib/rubygems/commands/help_command.rb +3 -1
- data/lib/rubygems/commands/install_command.rb +13 -3
- data/lib/rubygems/commands/lock_command.rb +2 -2
- data/lib/rubygems/commands/outdated_command.rb +77 -2
- data/lib/rubygems/commands/owner_command.rb +1 -1
- data/lib/rubygems/commands/push_command.rb +159 -21
- data/lib/rubygems/commands/setup_command.rb +20 -23
- data/lib/rubygems/commands/signin_command.rb +3 -1
- data/lib/rubygems/commands/signout_command.rb +26 -6
- data/lib/rubygems/commands/specification_command.rb +1 -1
- data/lib/rubygems/commands/uninstall_command.rb +1 -1
- data/lib/rubygems/commands/update_command.rb +84 -2
- data/lib/rubygems/commands/yank_command.rb +10 -7
- data/lib/rubygems/compact_index_client/cache.rb +122 -0
- data/lib/rubygems/compact_index_client/cache_file.rb +147 -0
- data/lib/rubygems/compact_index_client/http_fetcher.rb +88 -0
- data/lib/rubygems/compact_index_client/parser.rb +90 -0
- data/lib/rubygems/compact_index_client/updater.rb +113 -0
- data/lib/rubygems/compact_index_client.rb +111 -0
- data/lib/rubygems/config_file.rb +304 -22
- data/lib/rubygems/content_address.rb +194 -0
- data/lib/rubygems/cooldown.rb +173 -0
- data/lib/rubygems/cooldown_option.rb +27 -0
- data/lib/rubygems/cooldown_settings.rb +57 -0
- data/lib/rubygems/credential_store/native/linux.rb +97 -0
- data/lib/rubygems/credential_store/native/macos.rb +88 -0
- data/lib/rubygems/credential_store/native/windows.rb +130 -0
- data/lib/rubygems/credential_store.rb +332 -0
- data/lib/rubygems/defaults.rb +9 -0
- data/lib/rubygems/dependency_installer.rb +15 -0
- data/lib/rubygems/doctor.rb +23 -6
- data/lib/rubygems/exceptions.rb +11 -43
- data/lib/rubygems/ext/builder.rb +70 -5
- data/lib/rubygems/ext/cargo_builder.rb +0 -9
- data/lib/rubygems/ext/ext_conf_builder.rb +8 -15
- data/lib/rubygems/gemcutter_utilities.rb +44 -2
- data/lib/rubygems/install_update_options.rb +16 -0
- data/lib/rubygems/installer.rb +90 -11
- data/lib/rubygems/installer_uninstaller_utils.rb +24 -3
- data/lib/rubygems/name_tuple.rb +55 -18
- data/lib/rubygems/package/old.rb +1 -1
- data/lib/rubygems/package.rb +200 -47
- data/lib/rubygems/package_task.rb +2 -2
- data/lib/rubygems/platform.rb +2 -2
- data/lib/rubygems/query_utils.rb +84 -24
- data/lib/rubygems/remote_fetcher.rb +65 -17
- data/lib/rubygems/request/connection_pools.rb +3 -0
- data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
- data/lib/rubygems/request_set/lockfile.rb +0 -2
- data/lib/rubygems/request_set.rb +105 -17
- data/lib/rubygems/resolver/api_set.rb +14 -26
- data/lib/rubygems/resolver/api_specification.rb +56 -15
- data/lib/rubygems/resolver/incompatibility.rb +10 -0
- data/lib/rubygems/resolver/index_specification.rb +6 -4
- data/lib/rubygems/resolver/installer_set.rb +2 -2
- data/lib/rubygems/resolver/lock_specification.rb +5 -1
- data/lib/rubygems/resolver/spec_specification.rb +4 -0
- data/lib/rubygems/resolver/specification.rb +16 -1
- data/lib/rubygems/resolver/strategy.rb +44 -0
- data/lib/rubygems/resolver.rb +471 -145
- data/lib/rubygems/safe_marshal.rb +2 -1
- data/lib/rubygems/safe_yaml.rb +20 -3
- data/lib/rubygems/security/policy.rb +11 -3
- data/lib/rubygems/security/signer.rb +15 -7
- data/lib/rubygems/security.rb +111 -17
- data/lib/rubygems/source/local.rb +7 -2
- data/lib/rubygems/source.rb +270 -23
- data/lib/rubygems/spec_fetcher.rb +47 -12
- data/lib/rubygems/specification.rb +76 -32
- data/lib/rubygems/specification_policy.rb +33 -6
- data/lib/rubygems/specification_record.rb +41 -2
- data/lib/rubygems/stub_specification.rb +39 -16
- data/lib/rubygems/uninstaller.rb +2 -0
- data/lib/rubygems/util/atomic_file_writer.rb +109 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/exceptions.rb +2 -1
- data/lib/rubygems/vendor/net-http/lib/net/http/generic_request.rb +5 -6
- data/lib/rubygems/vendor/net-http/lib/net/http/header.rb +8 -4
- data/lib/rubygems/vendor/net-http/lib/net/http/requests.rb +15 -1
- data/lib/rubygems/vendor/net-http/lib/net/http/response.rb +2 -1
- data/lib/rubygems/vendor/net-http/lib/net/http/responses.rb +68 -0
- data/lib/rubygems/vendor/net-http/lib/net/http.rb +60 -49
- data/lib/rubygems/vendor/optparse/lib/optparse.rb +23 -30
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/assignment.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/basic_package_source.rb +7 -7
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/failure_writer.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/incompatibility.rb +4 -4
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/package.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/partial_solution.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/rubygems.rb +3 -3
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/solve_failure.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/static_package_source.rb +3 -3
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/strategy.rb +2 -2
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/term.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_constraint.rb +3 -3
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_range.rb +1 -1
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_solver.rb +2 -2
- data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/lib/pub_grub/version_union.rb +1 -1
- data/lib/rubygems/vendor/pub_grub/lib/pub_grub.rb +57 -0
- data/lib/rubygems/vendor/resolv/lib/resolv.rb +3508 -0
- data/lib/rubygems/vendor/securerandom/lib/securerandom.rb +4 -0
- data/lib/rubygems/vendor/timeout/lib/timeout.rb +190 -77
- data/lib/rubygems/vendor/uri/lib/uri.rb +4 -0
- data/{bundler/lib/bundler → lib/rubygems}/vendored_pub_grub.rb +0 -1
- data/lib/rubygems/version.rb +129 -111
- data/lib/rubygems/version_option.rb +14 -0
- data/lib/rubygems/yaml_serializer.rb +853 -71
- data/lib/rubygems.rb +45 -11
- data/rubygems-update.gemspec +3 -4
- data/setup.rb +1 -0
- metadata +365 -410
- data/bundler/CHANGELOG.md +0 -5784
- data/bundler/LICENSE.md +0 -22
- data/bundler/README.md +0 -58
- data/bundler/bundler.gemspec +0 -46
- data/bundler/lib/bundler/compact_index_client/cache.rb +0 -107
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +0 -148
- data/bundler/lib/bundler/compact_index_client/parser.rb +0 -87
- data/bundler/lib/bundler/compact_index_client/updater.rb +0 -105
- data/bundler/lib/bundler/compact_index_client.rb +0 -92
- data/bundler/lib/bundler/match_metadata.rb +0 -30
- data/bundler/lib/bundler/match_remote_metadata.rb +0 -29
- data/bundler/lib/bundler/vendor/connection_pool/LICENSE +0 -20
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +0 -227
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +0 -3
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +0 -56
- data/bundler/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +0 -230
- data/bundler/lib/bundler/vendor/net-http-persistent/README.rdoc +0 -82
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +0 -41
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +0 -65
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +0 -80
- data/bundler/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +0 -1153
- data/bundler/lib/bundler/vendor/pub_grub/lib/pub_grub.rb +0 -31
- data/bundler/lib/bundler/vendor/securerandom/lib/securerandom.rb +0 -102
- data/bundler/lib/bundler/vendor/uri/COPYING +0 -56
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +0 -922
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +0 -100
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +0 -267
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +0 -1592
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +0 -137
- data/bundler/lib/bundler/vendor/uri/lib/uri/https.rb +0 -23
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldap.rb +0 -261
- data/bundler/lib/bundler/vendor/uri/lib/uri/ldaps.rb +0 -22
- data/bundler/lib/bundler/vendor/uri/lib/uri/mailto.rb +0 -293
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +0 -547
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +0 -206
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +0 -6
- data/bundler/lib/bundler/vendor/uri/lib/uri/ws.rb +0 -83
- data/bundler/lib/bundler/vendor/uri/lib/uri/wss.rb +0 -23
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +0 -104
- data/bundler/lib/bundler/vendored_persistent.rb +0 -11
- data/bundler/lib/bundler/vendored_securerandom.rb +0 -12
- data/bundler/lib/bundler/vendored_uri.rb +0 -21
- data/bundler/lib/bundler/yaml_serializer.rb +0 -98
- data/doc/rubygems/CONTRIBUTING.md +0 -231
- data/doc/rubygems/POLICIES.md +0 -60
- data/lib/rubygems/request_set/lockfile/parser.rb +0 -344
- data/lib/rubygems/request_set/lockfile/tokenizer.rb +0 -122
- data/lib/rubygems/resolver/conflict.rb +0 -146
- data/lib/rubygems/resolver/stats.rb +0 -46
- data/lib/rubygems/util/list.rb +0 -40
- data/lib/rubygems/vendor/molinillo/LICENSE +0 -9
- data/lib/rubygems/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb +0 -57
- data/lib/rubygems/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +0 -88
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/action.rb +0 -36
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +0 -66
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +0 -62
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +0 -63
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +0 -61
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +0 -126
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +0 -46
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +0 -36
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +0 -164
- data/lib/rubygems/vendor/molinillo/lib/molinillo/dependency_graph.rb +0 -255
- data/lib/rubygems/vendor/molinillo/lib/molinillo/errors.rb +0 -149
- data/lib/rubygems/vendor/molinillo/lib/molinillo/gem_metadata.rb +0 -6
- data/lib/rubygems/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +0 -112
- data/lib/rubygems/vendor/molinillo/lib/molinillo/modules/ui.rb +0 -67
- data/lib/rubygems/vendor/molinillo/lib/molinillo/resolution.rb +0 -839
- data/lib/rubygems/vendor/molinillo/lib/molinillo/resolver.rb +0 -46
- data/lib/rubygems/vendor/molinillo/lib/molinillo/state.rb +0 -58
- data/lib/rubygems/vendor/molinillo/lib/molinillo.rb +0 -11
- data/lib/rubygems/vendored_molinillo.rb +0 -3
- /data/{bundler/exe → exe}/bundle +0 -0
- /data/{bundler/exe → exe}/bundler +0 -0
- /data/{bundler/lib → lib}/bundler/.document +0 -0
- /data/{bundler/lib → lib}/bundler/capistrano.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/binstubs.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/check.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/console.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/doctor/diagnose.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/doctor/ssl.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/doctor.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/exec.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/fund.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/info.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/init.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/issue.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/list.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/open.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/platform.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/plugin.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/remove.rb +0 -0
- /data/{bundler/lib → lib}/bundler/cli/show.rb +0 -0
- /data/{bundler/lib → lib}/bundler/constants.rb +0 -0
- /data/{bundler/lib → lib}/bundler/current_ruby.rb +0 -0
- /data/{bundler/lib → lib}/bundler/deployment.rb +0 -0
- /data/{bundler/lib → lib}/bundler/deprecate.rb +0 -0
- /data/{bundler/lib → lib}/bundler/digest.rb +0 -0
- /data/{bundler/lib → lib}/bundler/environment_preserver.rb +0 -0
- /data/{bundler/lib → lib}/bundler/feature_flag.rb +0 -0
- /data/{bundler/lib → lib}/bundler/fetcher/base.rb +0 -0
- /data/{bundler/lib → lib}/bundler/fetcher/dependency.rb +0 -0
- /data/{bundler/lib → lib}/bundler/fetcher/gem_remote_fetcher.rb +0 -0
- /data/{bundler/lib → lib}/bundler/fetcher/index.rb +0 -0
- /data/{bundler/lib → lib}/bundler/force_platform.rb +0 -0
- /data/{bundler/lib → lib}/bundler/friendly_errors.rb +0 -0
- /data/{bundler/lib → lib}/bundler/gem_helper.rb +0 -0
- /data/{bundler/lib → lib}/bundler/gem_tasks.rb +0 -0
- /data/{bundler/lib → lib}/bundler/gem_version_promoter.rb +0 -0
- /data/{bundler/lib → lib}/bundler/index.rb +0 -0
- /data/{bundler/lib → lib}/bundler/installer/gem_installer.rb +0 -0
- /data/{bundler/lib → lib}/bundler/installer/standalone.rb +0 -0
- /data/{bundler/lib → lib}/bundler/man/.document +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-binstubs.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-check.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-clean.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-console.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-doctor.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-env.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-exec.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-fund.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-gem.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-help.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-info.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-init.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-issue.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-licenses.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-list.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-open.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-outdated.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-platform.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-plugin.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-pristine.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-remove.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-show.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle-version.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/bundle.1.ronn +0 -0
- /data/{bundler/lib → lib}/bundler/man/index.txt +0 -0
- /data/{bundler/lib → lib}/bundler/mirror.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/api/source.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/api.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/installer/git.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/installer/rubygems.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/source_list.rb +0 -0
- /data/{bundler/lib → lib}/bundler/plugin/unloaded_source.rb +0 -0
- /data/{bundler/lib → lib}/bundler/process_lock.rb +0 -0
- /data/{bundler/lib → lib}/bundler/resolver/candidate.rb +0 -0
- /data/{bundler/lib → lib}/bundler/resolver/package.rb +0 -0
- /data/{bundler/lib → lib}/bundler/resolver/root.rb +0 -0
- /data/{bundler/lib → lib}/bundler/resolver/spec_group.rb +0 -0
- /data/{bundler/lib → lib}/bundler/resolver/strategy.rb +0 -0
- /data/{bundler/lib → lib}/bundler/retry.rb +0 -0
- /data/{bundler/lib → lib}/bundler/ruby_dsl.rb +0 -0
- /data/{bundler/lib → lib}/bundler/safe_marshal.rb +0 -0
- /data/{bundler/lib → lib}/bundler/settings/validator.rb +0 -0
- /data/{bundler/lib → lib}/bundler/setup.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source/gemspec.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source/metadata.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source/path.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source/rubygems_aggregate.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source_list.rb +0 -0
- /data/{bundler/lib → lib}/bundler/source_map.rb +0 -0
- /data/{bundler/lib → lib}/bundler/templates/.document +0 -0
- /data/{bundler/lib → lib}/bundler/templates/Executable +0 -0
- /data/{bundler/lib → lib}/bundler/templates/Executable.standalone +0 -0
- /data/{bundler/lib → lib}/bundler/templates/Gemfile +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/CHANGELOG.md.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/Cargo.toml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/LICENSE.txt.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/README.md.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/Rakefile.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/bin/console.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/bin/setup.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/circleci/config.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/exe/newgem.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/Cargo.toml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/build.rs.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/extconf-c.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/extconf-go.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/extconf-rust.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/go.mod.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem-go.c.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem.c.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem.go.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/newgem.h.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/ext/newgem/src/lib.rs.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/github/workflows/build-gems.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/github/workflows/main.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/gitignore.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/gitlab-ci.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/lib/newgem/version.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/lib/newgem.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/rspec.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/rubocop.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/sig/newgem.rbs.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/spec/spec_helper.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/standard.yml.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/test/minitest/test_helper.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +0 -0
- /data/{bundler/lib → lib}/bundler/ui/rg_proxy.rb +0 -0
- /data/{bundler/lib → lib}/bundler/ui.rb +0 -0
- /data/{bundler/lib → lib}/bundler/uri_credentials_filter.rb +0 -0
- /data/{bundler/lib → lib}/bundler/uri_normalizer.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/.document +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/fileutils/COPYING +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/fileutils/lib/fileutils.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/LICENSE.md +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/create_file.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/create_link.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/directory.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/empty_directory.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/actions.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/command.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/error.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/group.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/invocation.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/line_editor/basic.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/line_editor/readline.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/line_editor.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/nested_context.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/argument.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/arguments.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/option.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser/options.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/parser.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/rake_compat.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/runner.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/column_printer.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/html.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/table_printer.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/terminal.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell/wrapped_printer.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/shell.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendor/thor/lib/thor/util.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendored_fileutils.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendored_net_http.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendored_thor.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendored_timeout.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vendored_tsort.rb +0 -0
- /data/{bundler/lib → lib}/bundler/vlad.rb +0 -0
- /data/{bundler/lib/bundler → lib/rubygems}/vendor/pub_grub/LICENSE.txt +0 -0
- /data/{bundler/lib/bundler/vendor/securerandom → lib/rubygems/vendor/resolv}/COPYING +0 -0
|
@@ -192,15 +192,14 @@ duplicate dependency on #{dep}, (#{prev.requirement}) use:
|
|
|
192
192
|
# Checks that the gem does not depend on itself.
|
|
193
193
|
|
|
194
194
|
def validate_dependencies # :nodoc:
|
|
195
|
-
|
|
195
|
+
error_messages = []
|
|
196
196
|
@specification.dependencies.each do |dep|
|
|
197
|
-
if dep.name == @specification.name #
|
|
198
|
-
|
|
197
|
+
if dep.name == @specification.name # error on self reference
|
|
198
|
+
error_messages << "Dependencies of this gem include a self-reference."
|
|
199
199
|
end
|
|
200
200
|
end
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
end
|
|
201
|
+
|
|
202
|
+
error error_messages.join if error_messages.any?
|
|
204
203
|
end
|
|
205
204
|
|
|
206
205
|
def validate_required_ruby_version
|
|
@@ -476,6 +475,7 @@ or set it to nil if you don't want to specify a license.
|
|
|
476
475
|
|
|
477
476
|
validate_rake_extensions(builder)
|
|
478
477
|
validate_rust_extensions(builder)
|
|
478
|
+
validate_extension_require_relative
|
|
479
479
|
end
|
|
480
480
|
|
|
481
481
|
def validate_rust_extensions(builder) # :nodoc:
|
|
@@ -496,6 +496,33 @@ You have specified rake based extension, but rake is not added as runtime depend
|
|
|
496
496
|
WARNING
|
|
497
497
|
end
|
|
498
498
|
|
|
499
|
+
def validate_extension_require_relative # :nodoc:
|
|
500
|
+
return unless @specification.extensions.any?
|
|
501
|
+
|
|
502
|
+
require_paths = @specification.require_paths
|
|
503
|
+
|
|
504
|
+
@specification.files.each do |rb_file|
|
|
505
|
+
next unless rb_file.end_with?(".rb")
|
|
506
|
+
next unless require_paths.any? {|rp| rb_file.start_with?("#{rp}/") }
|
|
507
|
+
next unless File.file?(rb_file)
|
|
508
|
+
|
|
509
|
+
File.foreach(rb_file).with_index(1) do |line, lineno|
|
|
510
|
+
next unless line =~ /^\s*require_relative\s+["']([^"']+)["']/
|
|
511
|
+
|
|
512
|
+
required_path = Regexp.last_match(1)
|
|
513
|
+
resolved = File.join(File.dirname(rb_file), required_path)
|
|
514
|
+
|
|
515
|
+
next if @specification.files.any? {|f| f == "#{resolved}.rb" || f == resolved }
|
|
516
|
+
|
|
517
|
+
warning <<~WARNING
|
|
518
|
+
#{rb_file}:#{lineno} uses `require_relative "#{required_path}"` to load a compiled extension.
|
|
519
|
+
This will break in RubyGems 4.2, which will stop copying compiled extensions into the gem's lib directory.
|
|
520
|
+
Use `require` instead of `require_relative` to load compiled extensions.
|
|
521
|
+
WARNING
|
|
522
|
+
end
|
|
523
|
+
end
|
|
524
|
+
end
|
|
525
|
+
|
|
499
526
|
def validate_unique_links
|
|
500
527
|
links = @specification.metadata.slice(*METADATA_LINK_KEYS)
|
|
501
528
|
grouped = links.group_by {|_key, uri| uri }
|
|
@@ -2,12 +2,50 @@
|
|
|
2
2
|
|
|
3
3
|
module Gem
|
|
4
4
|
class SpecificationRecord
|
|
5
|
+
##
|
|
6
|
+
# Specification directories for each path: the flat +specifications+
|
|
7
|
+
# dir and the ABI-scoped +specifications/<ruby_abi>+ subdir.
|
|
8
|
+
|
|
5
9
|
def self.dirs_from(paths)
|
|
6
|
-
paths.
|
|
7
|
-
File.join(path, "specifications")
|
|
10
|
+
paths.flat_map do |path|
|
|
11
|
+
specifications = File.join(path, "specifications")
|
|
12
|
+
|
|
13
|
+
[specifications, File.join(specifications, Gem.ruby_abi)]
|
|
8
14
|
end
|
|
9
15
|
end
|
|
10
16
|
|
|
17
|
+
##
|
|
18
|
+
# Whether +dir+ is an ABI-scoped spec dir
|
|
19
|
+
# (<tt>.../specifications/<ruby_abi></tt>). Requires the parent to be
|
|
20
|
+
# named +specifications+ to avoid false positives.
|
|
21
|
+
def self.abi_scoped_spec_dir?(dir)
|
|
22
|
+
Gem::ContentAddress.valid_ruby_abi?(File.basename(dir)) &&
|
|
23
|
+
File.basename(File.dirname(dir)) == "specifications"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
##
|
|
27
|
+
# The spec dir for +spec+ under +base_dir+: the ABI-scoped subdir for
|
|
28
|
+
# content-addressed specs, the flat +specifications+ dir otherwise.
|
|
29
|
+
def self.specification_dir_for(spec, base_dir)
|
|
30
|
+
dir = File.join(base_dir, "specifications")
|
|
31
|
+
dir = File.join(dir, spec.ruby_abi) if Gem::ContentAddress.content_addressed?(spec)
|
|
32
|
+
dir
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
##
|
|
36
|
+
# Ensure ABI-scoped subdirectories are present in +dirs+. No-op when
|
|
37
|
+
# +dirs+ already includes them (e.g. MRI); expands flat-only +dirs+
|
|
38
|
+
|
|
39
|
+
def self.dirs_with_abi(dirs)
|
|
40
|
+
dirs.flat_map do |dir|
|
|
41
|
+
if File.basename(dir) == "specifications"
|
|
42
|
+
[dir, File.join(dir, Gem.ruby_abi)]
|
|
43
|
+
else
|
|
44
|
+
dir
|
|
45
|
+
end
|
|
46
|
+
end.uniq
|
|
47
|
+
end
|
|
48
|
+
|
|
11
49
|
def self.from_path(path)
|
|
12
50
|
new(dirs_from([path]))
|
|
13
51
|
end
|
|
@@ -217,6 +255,7 @@ module Gem
|
|
|
217
255
|
def map_stubs(pattern)
|
|
218
256
|
@dirs.flat_map do |dir|
|
|
219
257
|
base_dir = File.dirname dir
|
|
258
|
+
base_dir = File.dirname base_dir if self.class.abi_scoped_spec_dir?(dir)
|
|
220
259
|
gems_dir = File.join base_dir, "gems"
|
|
221
260
|
Gem::Specification.gemspec_stubs_in(dir, pattern) {|path| yield path, base_dir, gems_dir }
|
|
222
261
|
end
|
|
@@ -9,14 +9,18 @@ class Gem::StubSpecification < Gem::BasicSpecification
|
|
|
9
9
|
# :nodoc:
|
|
10
10
|
PREFIX = "# stub: "
|
|
11
11
|
|
|
12
|
+
# :nodoc:
|
|
13
|
+
TARGET_PREFIX = "# stub-target: "
|
|
14
|
+
|
|
12
15
|
# :nodoc:
|
|
13
16
|
OPEN_MODE = "r:UTF-8:-"
|
|
14
17
|
|
|
15
18
|
class StubLine # :nodoc: all
|
|
16
19
|
attr_reader :name, :version, :platform, :require_paths, :extensions,
|
|
17
|
-
:full_name
|
|
20
|
+
:full_name, :content_address
|
|
18
21
|
|
|
19
22
|
NO_EXTENSIONS = [].freeze
|
|
23
|
+
NO_TARGET = {}.freeze
|
|
20
24
|
|
|
21
25
|
# These are common require paths.
|
|
22
26
|
REQUIRE_PATHS = { # :nodoc:
|
|
@@ -33,7 +37,7 @@ class Gem::StubSpecification < Gem::BasicSpecification
|
|
|
33
37
|
"lib" => ["lib"].freeze,
|
|
34
38
|
}.freeze
|
|
35
39
|
|
|
36
|
-
def initialize(data, extensions)
|
|
40
|
+
def initialize(data, extensions, target = NO_TARGET)
|
|
37
41
|
parts = data[PREFIX.length..-1].split(" ", 4)
|
|
38
42
|
@name = -parts[0]
|
|
39
43
|
@version = if Gem::Version.correct?(parts[1])
|
|
@@ -42,12 +46,17 @@ class Gem::StubSpecification < Gem::BasicSpecification
|
|
|
42
46
|
Gem::Version.new(0)
|
|
43
47
|
end
|
|
44
48
|
|
|
45
|
-
|
|
49
|
+
suffix = parts[2]
|
|
50
|
+
target_platform = target["platform"]
|
|
51
|
+
@platform = Gem::Platform.new(target_platform || suffix)
|
|
52
|
+
@content_address = suffix if Gem::ContentAddress.content_addressed_row?(suffix, target_platform, validate_ruby_abi: false)
|
|
46
53
|
@extensions = extensions
|
|
47
|
-
@full_name = if
|
|
54
|
+
@full_name = if @content_address
|
|
55
|
+
"#{name}-#{version}-#{content_address}"
|
|
56
|
+
elsif platform == Gem::Platform::RUBY
|
|
48
57
|
"#{name}-#{version}"
|
|
49
58
|
else
|
|
50
|
-
"#{name}-#{version}-#{
|
|
59
|
+
"#{name}-#{version}-#{suffix}"
|
|
51
60
|
end
|
|
52
61
|
|
|
53
62
|
path_list = parts.last
|
|
@@ -110,18 +119,27 @@ class Gem::StubSpecification < Gem::BasicSpecification
|
|
|
110
119
|
file.readline # discard encoding line
|
|
111
120
|
stubline = file.readline
|
|
112
121
|
if stubline.start_with?(PREFIX)
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
122
|
+
line = file.readline
|
|
123
|
+
|
|
124
|
+
if line.delete_prefix!(PREFIX)
|
|
125
|
+
line.chomp!
|
|
126
|
+
extensions = line.split "\0"
|
|
127
|
+
line = file.readline
|
|
128
|
+
else
|
|
129
|
+
extensions = StubLine::NO_EXTENSIONS
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
target = StubLine::NO_TARGET
|
|
133
|
+
if line.delete_prefix!(TARGET_PREFIX)
|
|
134
|
+
line.chomp!
|
|
135
|
+
target = line.split(",").to_h do |pair|
|
|
136
|
+
key, value = pair.split("=", 2)
|
|
137
|
+
[key, value]
|
|
121
138
|
end
|
|
139
|
+
end
|
|
122
140
|
|
|
123
141
|
stubline.chomp! # readline(chomp: true) allocates 3x as much as .readline.chomp!
|
|
124
|
-
@data = StubLine.new stubline, extensions
|
|
142
|
+
@data = StubLine.new stubline, extensions, target
|
|
125
143
|
end
|
|
126
144
|
rescue EOFError
|
|
127
145
|
end
|
|
@@ -162,6 +180,10 @@ class Gem::StubSpecification < Gem::BasicSpecification
|
|
|
162
180
|
data.platform
|
|
163
181
|
end
|
|
164
182
|
|
|
183
|
+
def content_address # :nodoc:
|
|
184
|
+
data.content_address
|
|
185
|
+
end
|
|
186
|
+
|
|
165
187
|
##
|
|
166
188
|
# Extensions for this gem
|
|
167
189
|
|
|
@@ -208,13 +230,14 @@ class Gem::StubSpecification < Gem::BasicSpecification
|
|
|
208
230
|
self.class === other &&
|
|
209
231
|
name == other.name &&
|
|
210
232
|
version == other.version &&
|
|
211
|
-
platform == other.platform
|
|
233
|
+
platform == other.platform &&
|
|
234
|
+
content_address == other.content_address
|
|
212
235
|
end
|
|
213
236
|
|
|
214
237
|
alias_method :eql?, :== # :nodoc:
|
|
215
238
|
|
|
216
239
|
def hash # :nodoc:
|
|
217
|
-
name
|
|
240
|
+
[name, version, platform, content_address].hash
|
|
218
241
|
end
|
|
219
242
|
|
|
220
243
|
def <=>(other) # :nodoc:
|
data/lib/rubygems/uninstaller.rb
CHANGED
|
@@ -272,6 +272,8 @@ class Gem::Uninstaller
|
|
|
272
272
|
|
|
273
273
|
safe_delete { rm_r full_gem_path, exclusions: exclusions }
|
|
274
274
|
safe_delete { FileUtils.rm_r spec.extension_dir }
|
|
275
|
+
safe_delete { FileUtils.rm_f File.join(spec.build_info_dir, "#{spec.full_name}.mkmf.log") }
|
|
276
|
+
safe_delete { FileUtils.rm_f File.join(spec.build_info_dir, "#{spec.full_name}.gem_make.out") }
|
|
275
277
|
|
|
276
278
|
old_platform_name = spec.original_name
|
|
277
279
|
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Based on ActiveSupport's AtomicFile implementation
|
|
4
|
+
# Copyright (c) David Heinemeier Hansson
|
|
5
|
+
# https://github.com/rails/rails/blob/main/activesupport/lib/active_support/core_ext/file/atomic.rb
|
|
6
|
+
# Licensed under the MIT License
|
|
7
|
+
|
|
8
|
+
module Gem
|
|
9
|
+
class AtomicFileWriter
|
|
10
|
+
##
|
|
11
|
+
# Write to a file atomically. Useful for situations where you don't
|
|
12
|
+
# want other processes or threads to see half-written files.
|
|
13
|
+
|
|
14
|
+
def self.open(file_name)
|
|
15
|
+
require "securerandom" unless defined?(SecureRandom)
|
|
16
|
+
|
|
17
|
+
old_stat = begin
|
|
18
|
+
File.stat(file_name)
|
|
19
|
+
rescue SystemCallError
|
|
20
|
+
nil
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Names can't be longer than 255B
|
|
24
|
+
tmp_suffix = ".tmp.#{SecureRandom.hex}"
|
|
25
|
+
dirname = File.dirname(file_name)
|
|
26
|
+
basename = File.basename(file_name)
|
|
27
|
+
base_slice = byteslice_at_char_boundary(basename, 254 - tmp_suffix.bytesize)
|
|
28
|
+
tmp_path = File.join(dirname, ".#{base_slice}#{tmp_suffix}")
|
|
29
|
+
|
|
30
|
+
# The temporary name is longer than the final one, so on Windows a
|
|
31
|
+
# writable destination can still map to a path beyond the 260-character
|
|
32
|
+
# MAX_PATH limit. Trim the random suffix first, keeping at least 8 hex
|
|
33
|
+
# characters to avoid collisions, then shorten the basename if that is not
|
|
34
|
+
# enough. Recomputing the basename from the trimmed suffix would just let
|
|
35
|
+
# it grow back, so trim the already-sliced basename instead.
|
|
36
|
+
if tmp_path.length >= 260 && Gem.win_platform?
|
|
37
|
+
overflow = tmp_path.length - 259
|
|
38
|
+
trim = [tmp_suffix.bytesize - (".tmp.".bytesize + 8), overflow].min
|
|
39
|
+
tmp_suffix = tmp_suffix.byteslice(0, tmp_suffix.bytesize - trim)
|
|
40
|
+
overflow -= trim
|
|
41
|
+
base_slice = byteslice_at_char_boundary(base_slice, [base_slice.bytesize - overflow, 0].max) if overflow > 0
|
|
42
|
+
tmp_path = File.join(dirname, ".#{base_slice}#{tmp_suffix}")
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
flags = File::RDWR | File::CREAT | File::EXCL | File::BINARY
|
|
46
|
+
flags |= File::SHARE_DELETE if defined?(File::SHARE_DELETE)
|
|
47
|
+
|
|
48
|
+
renamed = false
|
|
49
|
+
temp_file = File.open(tmp_path, flags)
|
|
50
|
+
|
|
51
|
+
begin
|
|
52
|
+
temp_file.binmode
|
|
53
|
+
if old_stat
|
|
54
|
+
# Set correct permissions on new file
|
|
55
|
+
begin
|
|
56
|
+
temp_file.chown(old_stat.uid, old_stat.gid)
|
|
57
|
+
# This operation will affect filesystem ACL's
|
|
58
|
+
temp_file.chmod(old_stat.mode)
|
|
59
|
+
rescue Errno::EPERM, Errno::EACCES
|
|
60
|
+
# Changing file ownership failed, moving on.
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
return_val = yield temp_file
|
|
65
|
+
|
|
66
|
+
# Any data still buffered is handed to the filesystem on close, so a
|
|
67
|
+
# failing flush must surface while the destination is still intact.
|
|
68
|
+
# That means closing the temporary file before the rename. Note this
|
|
69
|
+
# does not fsync, so the write is atomic but not crash durable.
|
|
70
|
+
temp_file.close
|
|
71
|
+
File.rename(tmp_path, file_name)
|
|
72
|
+
renamed = true
|
|
73
|
+
|
|
74
|
+
return_val
|
|
75
|
+
ensure
|
|
76
|
+
unless renamed
|
|
77
|
+
begin
|
|
78
|
+
temp_file.close
|
|
79
|
+
rescue StandardError
|
|
80
|
+
nil
|
|
81
|
+
ensure
|
|
82
|
+
# The unlink runs from an ensure so that a non-StandardError raised by
|
|
83
|
+
# the close above, a second Ctrl-C for instance, still reaches it. An
|
|
84
|
+
# interrupt landing on the unlink itself is not covered.
|
|
85
|
+
begin
|
|
86
|
+
File.unlink(tmp_path)
|
|
87
|
+
rescue StandardError
|
|
88
|
+
nil
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Returns the longest prefix of string that is at most max_bytesize bytes
|
|
96
|
+
# and ends on a character boundary. A string that is invalid in its own
|
|
97
|
+
# encoding would be cut back to its last valid prefix, discarding an
|
|
98
|
+
# unbounded part of the name, so it is sliced as raw bytes instead and can
|
|
99
|
+
# still be cut mid-character.
|
|
100
|
+
def self.byteslice_at_char_boundary(string, max_bytesize)
|
|
101
|
+
sliced = string.byteslice(0, max_bytesize)
|
|
102
|
+
if string.valid_encoding?
|
|
103
|
+
sliced = sliced.byteslice(0, sliced.bytesize - 1) until sliced.valid_encoding?
|
|
104
|
+
end
|
|
105
|
+
sliced
|
|
106
|
+
end
|
|
107
|
+
private_class_method :byteslice_at_char_boundary
|
|
108
|
+
end
|
|
109
|
+
end
|
|
@@ -3,7 +3,7 @@ module Gem::Net
|
|
|
3
3
|
# Gem::Net::HTTP exception class.
|
|
4
4
|
# You cannot use Gem::Net::HTTPExceptions directly; instead, you must use
|
|
5
5
|
# its subclasses.
|
|
6
|
-
module HTTPExceptions
|
|
6
|
+
module HTTPExceptions # :nodoc:
|
|
7
7
|
def initialize(msg, res) #:nodoc:
|
|
8
8
|
super msg
|
|
9
9
|
@response = res
|
|
@@ -12,6 +12,7 @@ module Gem::Net
|
|
|
12
12
|
alias data response #:nodoc: obsolete
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
+
# :stopdoc:
|
|
15
16
|
class HTTPError < ProtocolError
|
|
16
17
|
include HTTPExceptions
|
|
17
18
|
end
|
|
@@ -19,16 +19,13 @@ class Gem::Net::HTTPGenericRequest
|
|
|
19
19
|
|
|
20
20
|
if Gem::URI === uri_or_path then
|
|
21
21
|
raise ArgumentError, "not an HTTP Gem::URI" unless Gem::URI::HTTP === uri_or_path
|
|
22
|
-
hostname = uri_or_path.
|
|
22
|
+
hostname = uri_or_path.host
|
|
23
23
|
raise ArgumentError, "no host component for Gem::URI" unless (hostname && hostname.length > 0)
|
|
24
24
|
@uri = uri_or_path.dup
|
|
25
|
-
host = @uri.hostname.dup
|
|
26
|
-
host << ":" << @uri.port.to_s if @uri.port != @uri.default_port
|
|
27
25
|
@path = uri_or_path.request_uri
|
|
28
26
|
raise ArgumentError, "no HTTP request path given" unless @path
|
|
29
27
|
else
|
|
30
28
|
@uri = nil
|
|
31
|
-
host = nil
|
|
32
29
|
raise ArgumentError, "no HTTP request path given" unless uri_or_path
|
|
33
30
|
raise ArgumentError, "HTTP request path is empty" if uri_or_path.empty?
|
|
34
31
|
@path = uri_or_path.dup
|
|
@@ -51,7 +48,7 @@ class Gem::Net::HTTPGenericRequest
|
|
|
51
48
|
initialize_http_header initheader
|
|
52
49
|
self['Accept'] ||= '*/*'
|
|
53
50
|
self['User-Agent'] ||= 'Ruby'
|
|
54
|
-
self['Host'] ||=
|
|
51
|
+
self['Host'] ||= @uri.authority if @uri
|
|
55
52
|
@body = nil
|
|
56
53
|
@body_stream = nil
|
|
57
54
|
@body_data = nil
|
|
@@ -245,7 +242,7 @@ class Gem::Net::HTTPGenericRequest
|
|
|
245
242
|
end
|
|
246
243
|
|
|
247
244
|
if host = self['host']
|
|
248
|
-
host.
|
|
245
|
+
host = Gem::URI.parse("//#{host}").host # Remove a port component from the existing Host header
|
|
249
246
|
elsif host = @uri.host
|
|
250
247
|
else
|
|
251
248
|
host = addr
|
|
@@ -264,6 +261,8 @@ class Gem::Net::HTTPGenericRequest
|
|
|
264
261
|
|
|
265
262
|
private
|
|
266
263
|
|
|
264
|
+
# :stopdoc:
|
|
265
|
+
|
|
267
266
|
class Chunker #:nodoc:
|
|
268
267
|
def initialize(sock)
|
|
269
268
|
@sock = sock
|
|
@@ -179,7 +179,9 @@
|
|
|
179
179
|
# - #each_value: Passes each string field value to the block.
|
|
180
180
|
#
|
|
181
181
|
module Gem::Net::HTTPHeader
|
|
182
|
+
# The maximum length of HTTP header keys.
|
|
182
183
|
MAX_KEY_LENGTH = 1024
|
|
184
|
+
# The maximum length of HTTP header values.
|
|
183
185
|
MAX_FIELD_LENGTH = 65536
|
|
184
186
|
|
|
185
187
|
def initialize_http_header(initheader) #:nodoc:
|
|
@@ -267,6 +269,7 @@ module Gem::Net::HTTPHeader
|
|
|
267
269
|
end
|
|
268
270
|
end
|
|
269
271
|
|
|
272
|
+
# :stopdoc:
|
|
270
273
|
private def set_field(key, val)
|
|
271
274
|
case val
|
|
272
275
|
when Enumerable
|
|
@@ -294,6 +297,7 @@ module Gem::Net::HTTPHeader
|
|
|
294
297
|
ary.push val
|
|
295
298
|
end
|
|
296
299
|
end
|
|
300
|
+
# :startdoc:
|
|
297
301
|
|
|
298
302
|
# Returns the array field value for the given +key+,
|
|
299
303
|
# or +nil+ if there is no such field;
|
|
@@ -490,7 +494,7 @@ module Gem::Net::HTTPHeader
|
|
|
490
494
|
|
|
491
495
|
alias canonical_each each_capitalized
|
|
492
496
|
|
|
493
|
-
def capitalize(name)
|
|
497
|
+
def capitalize(name) # :nodoc:
|
|
494
498
|
name.to_s.split('-'.freeze).map {|s| s.capitalize }.join('-'.freeze)
|
|
495
499
|
end
|
|
496
500
|
private :capitalize
|
|
@@ -957,12 +961,12 @@ module Gem::Net::HTTPHeader
|
|
|
957
961
|
@header['proxy-authorization'] = [basic_encode(account, password)]
|
|
958
962
|
end
|
|
959
963
|
|
|
960
|
-
def basic_encode(account, password)
|
|
964
|
+
def basic_encode(account, password) # :nodoc:
|
|
961
965
|
'Basic ' + ["#{account}:#{password}"].pack('m0')
|
|
962
966
|
end
|
|
963
967
|
private :basic_encode
|
|
964
968
|
|
|
965
|
-
# Returns whether the HTTP session is to be closed.
|
|
969
|
+
# Returns whether the HTTP session is to be closed.
|
|
966
970
|
def connection_close?
|
|
967
971
|
token = /(?:\A|,)\s*close\s*(?:\z|,)/i
|
|
968
972
|
@header['connection']&.grep(token) {return true}
|
|
@@ -970,7 +974,7 @@ module Gem::Net::HTTPHeader
|
|
|
970
974
|
false
|
|
971
975
|
end
|
|
972
976
|
|
|
973
|
-
# Returns whether the HTTP session is to be kept alive.
|
|
977
|
+
# Returns whether the HTTP session is to be kept alive.
|
|
974
978
|
def connection_keep_alive?
|
|
975
979
|
token = /(?:\A|,)\s*keep-alive\s*(?:\z|,)/i
|
|
976
980
|
@header['connection']&.grep(token) {return true}
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
# - Gem::Net::HTTP#get: sends +GET+ request, returns response object.
|
|
30
30
|
#
|
|
31
31
|
class Gem::Net::HTTP::Get < Gem::Net::HTTPRequest
|
|
32
|
+
# :stopdoc:
|
|
32
33
|
METHOD = 'GET'
|
|
33
34
|
REQUEST_HAS_BODY = false
|
|
34
35
|
RESPONSE_HAS_BODY = true
|
|
@@ -60,6 +61,7 @@ end
|
|
|
60
61
|
# - Gem::Net::HTTP#head: sends +HEAD+ request, returns response object.
|
|
61
62
|
#
|
|
62
63
|
class Gem::Net::HTTP::Head < Gem::Net::HTTPRequest
|
|
64
|
+
# :stopdoc:
|
|
63
65
|
METHOD = 'HEAD'
|
|
64
66
|
REQUEST_HAS_BODY = false
|
|
65
67
|
RESPONSE_HAS_BODY = false
|
|
@@ -95,6 +97,7 @@ end
|
|
|
95
97
|
# - Gem::Net::HTTP#post: sends +POST+ request, returns response object.
|
|
96
98
|
#
|
|
97
99
|
class Gem::Net::HTTP::Post < Gem::Net::HTTPRequest
|
|
100
|
+
# :stopdoc:
|
|
98
101
|
METHOD = 'POST'
|
|
99
102
|
REQUEST_HAS_BODY = true
|
|
100
103
|
RESPONSE_HAS_BODY = true
|
|
@@ -130,6 +133,7 @@ end
|
|
|
130
133
|
# - Gem::Net::HTTP#put: sends +PUT+ request, returns response object.
|
|
131
134
|
#
|
|
132
135
|
class Gem::Net::HTTP::Put < Gem::Net::HTTPRequest
|
|
136
|
+
# :stopdoc:
|
|
133
137
|
METHOD = 'PUT'
|
|
134
138
|
REQUEST_HAS_BODY = true
|
|
135
139
|
RESPONSE_HAS_BODY = true
|
|
@@ -162,6 +166,7 @@ end
|
|
|
162
166
|
# - Gem::Net::HTTP#delete: sends +DELETE+ request, returns response object.
|
|
163
167
|
#
|
|
164
168
|
class Gem::Net::HTTP::Delete < Gem::Net::HTTPRequest
|
|
169
|
+
# :stopdoc:
|
|
165
170
|
METHOD = 'DELETE'
|
|
166
171
|
REQUEST_HAS_BODY = false
|
|
167
172
|
RESPONSE_HAS_BODY = true
|
|
@@ -193,6 +198,7 @@ end
|
|
|
193
198
|
# - Gem::Net::HTTP#options: sends +OPTIONS+ request, returns response object.
|
|
194
199
|
#
|
|
195
200
|
class Gem::Net::HTTP::Options < Gem::Net::HTTPRequest
|
|
201
|
+
# :stopdoc:
|
|
196
202
|
METHOD = 'OPTIONS'
|
|
197
203
|
REQUEST_HAS_BODY = false
|
|
198
204
|
RESPONSE_HAS_BODY = true
|
|
@@ -224,6 +230,7 @@ end
|
|
|
224
230
|
# - Gem::Net::HTTP#trace: sends +TRACE+ request, returns response object.
|
|
225
231
|
#
|
|
226
232
|
class Gem::Net::HTTP::Trace < Gem::Net::HTTPRequest
|
|
233
|
+
# :stopdoc:
|
|
227
234
|
METHOD = 'TRACE'
|
|
228
235
|
REQUEST_HAS_BODY = false
|
|
229
236
|
RESPONSE_HAS_BODY = true
|
|
@@ -258,6 +265,7 @@ end
|
|
|
258
265
|
# - Gem::Net::HTTP#patch: sends +PATCH+ request, returns response object.
|
|
259
266
|
#
|
|
260
267
|
class Gem::Net::HTTP::Patch < Gem::Net::HTTPRequest
|
|
268
|
+
# :stopdoc:
|
|
261
269
|
METHOD = 'PATCH'
|
|
262
270
|
REQUEST_HAS_BODY = true
|
|
263
271
|
RESPONSE_HAS_BODY = true
|
|
@@ -285,6 +293,7 @@ end
|
|
|
285
293
|
# - Gem::Net::HTTP#propfind: sends +PROPFIND+ request, returns response object.
|
|
286
294
|
#
|
|
287
295
|
class Gem::Net::HTTP::Propfind < Gem::Net::HTTPRequest
|
|
296
|
+
# :stopdoc:
|
|
288
297
|
METHOD = 'PROPFIND'
|
|
289
298
|
REQUEST_HAS_BODY = true
|
|
290
299
|
RESPONSE_HAS_BODY = true
|
|
@@ -308,6 +317,7 @@ end
|
|
|
308
317
|
# - Gem::Net::HTTP#proppatch: sends +PROPPATCH+ request, returns response object.
|
|
309
318
|
#
|
|
310
319
|
class Gem::Net::HTTP::Proppatch < Gem::Net::HTTPRequest
|
|
320
|
+
# :stopdoc:
|
|
311
321
|
METHOD = 'PROPPATCH'
|
|
312
322
|
REQUEST_HAS_BODY = true
|
|
313
323
|
RESPONSE_HAS_BODY = true
|
|
@@ -331,6 +341,7 @@ end
|
|
|
331
341
|
# - Gem::Net::HTTP#mkcol: sends +MKCOL+ request, returns response object.
|
|
332
342
|
#
|
|
333
343
|
class Gem::Net::HTTP::Mkcol < Gem::Net::HTTPRequest
|
|
344
|
+
# :stopdoc:
|
|
334
345
|
METHOD = 'MKCOL'
|
|
335
346
|
REQUEST_HAS_BODY = true
|
|
336
347
|
RESPONSE_HAS_BODY = true
|
|
@@ -354,6 +365,7 @@ end
|
|
|
354
365
|
# - Gem::Net::HTTP#copy: sends +COPY+ request, returns response object.
|
|
355
366
|
#
|
|
356
367
|
class Gem::Net::HTTP::Copy < Gem::Net::HTTPRequest
|
|
368
|
+
# :stopdoc:
|
|
357
369
|
METHOD = 'COPY'
|
|
358
370
|
REQUEST_HAS_BODY = false
|
|
359
371
|
RESPONSE_HAS_BODY = true
|
|
@@ -377,6 +389,7 @@ end
|
|
|
377
389
|
# - Gem::Net::HTTP#move: sends +MOVE+ request, returns response object.
|
|
378
390
|
#
|
|
379
391
|
class Gem::Net::HTTP::Move < Gem::Net::HTTPRequest
|
|
392
|
+
# :stopdoc:
|
|
380
393
|
METHOD = 'MOVE'
|
|
381
394
|
REQUEST_HAS_BODY = false
|
|
382
395
|
RESPONSE_HAS_BODY = true
|
|
@@ -400,6 +413,7 @@ end
|
|
|
400
413
|
# - Gem::Net::HTTP#lock: sends +LOCK+ request, returns response object.
|
|
401
414
|
#
|
|
402
415
|
class Gem::Net::HTTP::Lock < Gem::Net::HTTPRequest
|
|
416
|
+
# :stopdoc:
|
|
403
417
|
METHOD = 'LOCK'
|
|
404
418
|
REQUEST_HAS_BODY = true
|
|
405
419
|
RESPONSE_HAS_BODY = true
|
|
@@ -423,8 +437,8 @@ end
|
|
|
423
437
|
# - Gem::Net::HTTP#unlock: sends +UNLOCK+ request, returns response object.
|
|
424
438
|
#
|
|
425
439
|
class Gem::Net::HTTP::Unlock < Gem::Net::HTTPRequest
|
|
440
|
+
# :stopdoc:
|
|
426
441
|
METHOD = 'UNLOCK'
|
|
427
442
|
REQUEST_HAS_BODY = true
|
|
428
443
|
RESPONSE_HAS_BODY = true
|
|
429
444
|
end
|
|
430
|
-
|
|
@@ -153,6 +153,7 @@ class Gem::Net::HTTPResponse
|
|
|
153
153
|
end
|
|
154
154
|
|
|
155
155
|
private
|
|
156
|
+
# :stopdoc:
|
|
156
157
|
|
|
157
158
|
def read_status_line(sock)
|
|
158
159
|
str = sock.readline
|
|
@@ -259,7 +260,7 @@ class Gem::Net::HTTPResponse
|
|
|
259
260
|
# header.
|
|
260
261
|
attr_accessor :ignore_eof
|
|
261
262
|
|
|
262
|
-
def inspect
|
|
263
|
+
def inspect # :nodoc:
|
|
263
264
|
"#<#{self.class} #{@code} #{@message} readbody=#{@read}>"
|
|
264
265
|
end
|
|
265
266
|
|