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
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# ) frozen_string_literal: true
|
|
4
|
-
require_relative "parser"
|
|
5
|
-
|
|
6
|
-
class Gem::RequestSet::Lockfile::Tokenizer
|
|
7
|
-
Token = Struct.new :type, :value, :column, :line
|
|
8
|
-
EOF = Token.new :EOF
|
|
9
|
-
|
|
10
|
-
def self.from_file(file)
|
|
11
|
-
new File.read(file), file
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def initialize(input, filename = nil, line = 0, pos = 0)
|
|
15
|
-
@line = line
|
|
16
|
-
@line_pos = pos
|
|
17
|
-
@tokens = []
|
|
18
|
-
@filename = filename
|
|
19
|
-
tokenize input
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def make_parser(set, platforms)
|
|
23
|
-
Gem::RequestSet::Lockfile::Parser.new self, set, platforms, @filename
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def to_a
|
|
27
|
-
@tokens.map {|token| [token.type, token.value, token.column, token.line] }
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def skip(type)
|
|
31
|
-
@tokens.shift while !@tokens.empty? && peek.type == type
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
##
|
|
35
|
-
# Calculates the column (by byte) and the line of the current token based on
|
|
36
|
-
# +byte_offset+.
|
|
37
|
-
|
|
38
|
-
def token_pos(byte_offset) # :nodoc:
|
|
39
|
-
[byte_offset - @line_pos, @line]
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def empty?
|
|
43
|
-
@tokens.empty?
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def unshift(token)
|
|
47
|
-
@tokens.unshift token
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def next_token
|
|
51
|
-
@tokens.shift
|
|
52
|
-
end
|
|
53
|
-
alias_method :shift, :next_token
|
|
54
|
-
|
|
55
|
-
def peek
|
|
56
|
-
@tokens.first || EOF
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
private
|
|
60
|
-
|
|
61
|
-
def tokenize(input)
|
|
62
|
-
require "strscan"
|
|
63
|
-
s = StringScanner.new input
|
|
64
|
-
|
|
65
|
-
until s.eos? do
|
|
66
|
-
pos = s.pos
|
|
67
|
-
|
|
68
|
-
pos = s.pos if leading_whitespace = s.scan(/ +/)
|
|
69
|
-
|
|
70
|
-
if s.scan(/[<|=>]{7}/)
|
|
71
|
-
message = "your #{@filename} contains merge conflict markers"
|
|
72
|
-
column, line = token_pos pos
|
|
73
|
-
|
|
74
|
-
raise Gem::RequestSet::Lockfile::ParseError.new message, column, line, @filename
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
@tokens <<
|
|
78
|
-
if s.scan(/\r?\n/)
|
|
79
|
-
|
|
80
|
-
token = Token.new(:newline, nil, *token_pos(pos))
|
|
81
|
-
@line_pos = s.pos
|
|
82
|
-
@line += 1
|
|
83
|
-
token
|
|
84
|
-
elsif s.scan(/[A-Z]+/)
|
|
85
|
-
|
|
86
|
-
if leading_whitespace
|
|
87
|
-
text = s.matched
|
|
88
|
-
text += s.scan(/[^\s)]*/).to_s # in case of no match
|
|
89
|
-
Token.new(:text, text, *token_pos(pos))
|
|
90
|
-
else
|
|
91
|
-
Token.new(:section, s.matched, *token_pos(pos))
|
|
92
|
-
end
|
|
93
|
-
elsif s.scan(/([a-z]+):\s/)
|
|
94
|
-
|
|
95
|
-
s.pos -= 1 # rewind for possible newline
|
|
96
|
-
Token.new(:entry, s[1], *token_pos(pos))
|
|
97
|
-
elsif s.scan(/\(/)
|
|
98
|
-
|
|
99
|
-
Token.new(:l_paren, nil, *token_pos(pos))
|
|
100
|
-
elsif s.scan(/\)/)
|
|
101
|
-
|
|
102
|
-
Token.new(:r_paren, nil, *token_pos(pos))
|
|
103
|
-
elsif s.scan(/<=|>=|=|~>|<|>|!=/)
|
|
104
|
-
|
|
105
|
-
Token.new(:requirement, s.matched, *token_pos(pos))
|
|
106
|
-
elsif s.scan(/,/)
|
|
107
|
-
|
|
108
|
-
Token.new(:comma, nil, *token_pos(pos))
|
|
109
|
-
elsif s.scan(/!/)
|
|
110
|
-
|
|
111
|
-
Token.new(:bang, nil, *token_pos(pos))
|
|
112
|
-
elsif s.scan(/[^\s),!]*/)
|
|
113
|
-
|
|
114
|
-
Token.new(:text, s.matched, *token_pos(pos))
|
|
115
|
-
else
|
|
116
|
-
raise "BUG: can't create token for: #{s.string[s.pos..-1].inspect}"
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
@tokens
|
|
121
|
-
end
|
|
122
|
-
end
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
##
|
|
4
|
-
# Used internally to indicate that a dependency conflicted
|
|
5
|
-
# with a spec that would be activated.
|
|
6
|
-
|
|
7
|
-
class Gem::Resolver::Conflict
|
|
8
|
-
##
|
|
9
|
-
# The specification that was activated prior to the conflict
|
|
10
|
-
|
|
11
|
-
attr_reader :activated
|
|
12
|
-
|
|
13
|
-
##
|
|
14
|
-
# The dependency that is in conflict with the activated gem.
|
|
15
|
-
|
|
16
|
-
attr_reader :dependency
|
|
17
|
-
|
|
18
|
-
attr_reader :failed_dep # :nodoc:
|
|
19
|
-
|
|
20
|
-
##
|
|
21
|
-
# Creates a new resolver conflict when +dependency+ is in conflict with an
|
|
22
|
-
# already +activated+ specification.
|
|
23
|
-
|
|
24
|
-
def initialize(dependency, activated, failed_dep = dependency)
|
|
25
|
-
@dependency = dependency
|
|
26
|
-
@activated = activated
|
|
27
|
-
@failed_dep = failed_dep
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def ==(other) # :nodoc:
|
|
31
|
-
self.class === other &&
|
|
32
|
-
@dependency == other.dependency &&
|
|
33
|
-
@activated == other.activated &&
|
|
34
|
-
@failed_dep == other.failed_dep
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
##
|
|
38
|
-
# A string explanation of the conflict.
|
|
39
|
-
|
|
40
|
-
def explain
|
|
41
|
-
"<Conflict wanted: #{@failed_dep}, had: #{activated.spec.full_name}>"
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
##
|
|
45
|
-
# Return the 2 dependency objects that conflicted
|
|
46
|
-
|
|
47
|
-
def conflicting_dependencies
|
|
48
|
-
[@failed_dep.dependency, @activated.request.dependency]
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
##
|
|
52
|
-
# Explanation of the conflict used by exceptions to print useful messages
|
|
53
|
-
|
|
54
|
-
def explanation
|
|
55
|
-
activated = @activated.spec.full_name
|
|
56
|
-
dependency = @failed_dep.dependency
|
|
57
|
-
requirement = dependency.requirement
|
|
58
|
-
alternates = dependency.matching_specs.map(&:full_name)
|
|
59
|
-
|
|
60
|
-
unless alternates.empty?
|
|
61
|
-
matching = <<-MATCHING.chomp
|
|
62
|
-
|
|
63
|
-
Gems matching %s:
|
|
64
|
-
%s
|
|
65
|
-
MATCHING
|
|
66
|
-
|
|
67
|
-
matching = format(matching, dependency, alternates.join(", "))
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
explanation = <<-EXPLANATION
|
|
71
|
-
Activated %s
|
|
72
|
-
which does not match conflicting dependency (%s)
|
|
73
|
-
|
|
74
|
-
Conflicting dependency chains:
|
|
75
|
-
%s
|
|
76
|
-
|
|
77
|
-
versus:
|
|
78
|
-
%s
|
|
79
|
-
%s
|
|
80
|
-
EXPLANATION
|
|
81
|
-
|
|
82
|
-
format(explanation, activated, requirement, request_path(@activated).reverse.join(", depends on\n "), request_path(@failed_dep).reverse.join(", depends on\n "), matching)
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
##
|
|
86
|
-
# Returns true if the conflicting dependency's name matches +spec+.
|
|
87
|
-
|
|
88
|
-
def for_spec?(spec)
|
|
89
|
-
@dependency.name == spec.name
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
def pretty_print(q) # :nodoc:
|
|
93
|
-
q.group 2, "[Dependency conflict: ", "]" do
|
|
94
|
-
q.breakable
|
|
95
|
-
|
|
96
|
-
q.text "activated "
|
|
97
|
-
q.pp @activated
|
|
98
|
-
|
|
99
|
-
q.breakable
|
|
100
|
-
q.text " dependency "
|
|
101
|
-
q.pp @dependency
|
|
102
|
-
|
|
103
|
-
q.breakable
|
|
104
|
-
if @dependency == @failed_dep
|
|
105
|
-
q.text " failed"
|
|
106
|
-
else
|
|
107
|
-
q.text " failed dependency "
|
|
108
|
-
q.pp @failed_dep
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
##
|
|
114
|
-
# Path of activations from the +current+ list.
|
|
115
|
-
|
|
116
|
-
def request_path(current)
|
|
117
|
-
path = []
|
|
118
|
-
|
|
119
|
-
while current do
|
|
120
|
-
case current
|
|
121
|
-
when Gem::Resolver::ActivationRequest then
|
|
122
|
-
path <<
|
|
123
|
-
"#{current.request.dependency}, #{current.spec.version} activated"
|
|
124
|
-
|
|
125
|
-
current = current.parent
|
|
126
|
-
when Gem::Resolver::DependencyRequest then
|
|
127
|
-
path << current.dependency.to_s
|
|
128
|
-
|
|
129
|
-
current = current.requester
|
|
130
|
-
else
|
|
131
|
-
raise Gem::Exception, "[BUG] unknown request class #{current.class}"
|
|
132
|
-
end
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
path = ["user request (gem command or Gemfile)"] if path.empty?
|
|
136
|
-
|
|
137
|
-
path
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
##
|
|
141
|
-
# Return the Specification that listed the dependency
|
|
142
|
-
|
|
143
|
-
def requester
|
|
144
|
-
@failed_dep.requester
|
|
145
|
-
end
|
|
146
|
-
end
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
class Gem::Resolver::Stats
|
|
4
|
-
def initialize
|
|
5
|
-
@max_depth = 0
|
|
6
|
-
@max_requirements = 0
|
|
7
|
-
@requirements = 0
|
|
8
|
-
@backtracking = 0
|
|
9
|
-
@iterations = 0
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def record_depth(stack)
|
|
13
|
-
if stack.size > @max_depth
|
|
14
|
-
@max_depth = stack.size
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def record_requirements(reqs)
|
|
19
|
-
if reqs.size > @max_requirements
|
|
20
|
-
@max_requirements = reqs.size
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def requirement!
|
|
25
|
-
@requirements += 1
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def backtracking!
|
|
29
|
-
@backtracking += 1
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def iteration!
|
|
33
|
-
@iterations += 1
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
PATTERN = "%20s: %d\n"
|
|
37
|
-
|
|
38
|
-
def display
|
|
39
|
-
$stdout.puts "=== Resolver Statistics ==="
|
|
40
|
-
$stdout.printf PATTERN, "Max Depth", @max_depth
|
|
41
|
-
$stdout.printf PATTERN, "Total Requirements", @requirements
|
|
42
|
-
$stdout.printf PATTERN, "Max Requirements", @max_requirements
|
|
43
|
-
$stdout.printf PATTERN, "Backtracking #", @backtracking
|
|
44
|
-
$stdout.printf PATTERN, "Iteration #", @iterations
|
|
45
|
-
end
|
|
46
|
-
end
|
data/lib/rubygems/util/list.rb
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Gem
|
|
4
|
-
# The Gem::List class is currently unused and will be removed in the next major rubygems version
|
|
5
|
-
class List # :nodoc:
|
|
6
|
-
include Enumerable
|
|
7
|
-
attr_accessor :value, :tail
|
|
8
|
-
|
|
9
|
-
def initialize(value = nil, tail = nil)
|
|
10
|
-
@value = value
|
|
11
|
-
@tail = tail
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def each
|
|
15
|
-
n = self
|
|
16
|
-
while n
|
|
17
|
-
yield n.value
|
|
18
|
-
n = n.tail
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def to_a
|
|
23
|
-
super.reverse
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def prepend(value)
|
|
27
|
-
List.new value, self
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def pretty_print(q) # :nodoc:
|
|
31
|
-
q.pp to_a
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def self.prepend(list, value)
|
|
35
|
-
return List.new(value) unless list
|
|
36
|
-
List.new value, list
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
deprecate_constant :List
|
|
40
|
-
end
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
This project is licensed under the MIT license.
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2014 Samuel E. Giddins segiddins@segiddins.me
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
|
-
|
|
7
|
-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8
|
-
|
|
9
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Gem::Molinillo
|
|
4
|
-
# @!visibility private
|
|
5
|
-
module Delegates
|
|
6
|
-
# Delegates all {Gem::Molinillo::ResolutionState} methods to a `#state` property.
|
|
7
|
-
module ResolutionState
|
|
8
|
-
# (see Gem::Molinillo::ResolutionState#name)
|
|
9
|
-
def name
|
|
10
|
-
current_state = state || Gem::Molinillo::ResolutionState.empty
|
|
11
|
-
current_state.name
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# (see Gem::Molinillo::ResolutionState#requirements)
|
|
15
|
-
def requirements
|
|
16
|
-
current_state = state || Gem::Molinillo::ResolutionState.empty
|
|
17
|
-
current_state.requirements
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
# (see Gem::Molinillo::ResolutionState#activated)
|
|
21
|
-
def activated
|
|
22
|
-
current_state = state || Gem::Molinillo::ResolutionState.empty
|
|
23
|
-
current_state.activated
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# (see Gem::Molinillo::ResolutionState#requirement)
|
|
27
|
-
def requirement
|
|
28
|
-
current_state = state || Gem::Molinillo::ResolutionState.empty
|
|
29
|
-
current_state.requirement
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# (see Gem::Molinillo::ResolutionState#possibilities)
|
|
33
|
-
def possibilities
|
|
34
|
-
current_state = state || Gem::Molinillo::ResolutionState.empty
|
|
35
|
-
current_state.possibilities
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
# (see Gem::Molinillo::ResolutionState#depth)
|
|
39
|
-
def depth
|
|
40
|
-
current_state = state || Gem::Molinillo::ResolutionState.empty
|
|
41
|
-
current_state.depth
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
# (see Gem::Molinillo::ResolutionState#conflicts)
|
|
45
|
-
def conflicts
|
|
46
|
-
current_state = state || Gem::Molinillo::ResolutionState.empty
|
|
47
|
-
current_state.conflicts
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# (see Gem::Molinillo::ResolutionState#unused_unwind_options)
|
|
51
|
-
def unused_unwind_options
|
|
52
|
-
current_state = state || Gem::Molinillo::ResolutionState.empty
|
|
53
|
-
current_state.unused_unwind_options
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Gem::Molinillo
|
|
4
|
-
module Delegates
|
|
5
|
-
# Delegates all {Gem::Molinillo::SpecificationProvider} methods to a
|
|
6
|
-
# `#specification_provider` property.
|
|
7
|
-
module SpecificationProvider
|
|
8
|
-
# (see Gem::Molinillo::SpecificationProvider#search_for)
|
|
9
|
-
def search_for(dependency)
|
|
10
|
-
with_no_such_dependency_error_handling do
|
|
11
|
-
specification_provider.search_for(dependency)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# (see Gem::Molinillo::SpecificationProvider#dependencies_for)
|
|
16
|
-
def dependencies_for(specification)
|
|
17
|
-
with_no_such_dependency_error_handling do
|
|
18
|
-
specification_provider.dependencies_for(specification)
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# (see Gem::Molinillo::SpecificationProvider#requirement_satisfied_by?)
|
|
23
|
-
def requirement_satisfied_by?(requirement, activated, spec)
|
|
24
|
-
with_no_such_dependency_error_handling do
|
|
25
|
-
specification_provider.requirement_satisfied_by?(requirement, activated, spec)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# (see Gem::Molinillo::SpecificationProvider#dependencies_equal?)
|
|
30
|
-
def dependencies_equal?(dependencies, other_dependencies)
|
|
31
|
-
with_no_such_dependency_error_handling do
|
|
32
|
-
specification_provider.dependencies_equal?(dependencies, other_dependencies)
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
# (see Gem::Molinillo::SpecificationProvider#name_for)
|
|
37
|
-
def name_for(dependency)
|
|
38
|
-
with_no_such_dependency_error_handling do
|
|
39
|
-
specification_provider.name_for(dependency)
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# (see Gem::Molinillo::SpecificationProvider#name_for_explicit_dependency_source)
|
|
44
|
-
def name_for_explicit_dependency_source
|
|
45
|
-
with_no_such_dependency_error_handling do
|
|
46
|
-
specification_provider.name_for_explicit_dependency_source
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# (see Gem::Molinillo::SpecificationProvider#name_for_locking_dependency_source)
|
|
51
|
-
def name_for_locking_dependency_source
|
|
52
|
-
with_no_such_dependency_error_handling do
|
|
53
|
-
specification_provider.name_for_locking_dependency_source
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# (see Gem::Molinillo::SpecificationProvider#sort_dependencies)
|
|
58
|
-
def sort_dependencies(dependencies, activated, conflicts)
|
|
59
|
-
with_no_such_dependency_error_handling do
|
|
60
|
-
specification_provider.sort_dependencies(dependencies, activated, conflicts)
|
|
61
|
-
end
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
# (see Gem::Molinillo::SpecificationProvider#allow_missing?)
|
|
65
|
-
def allow_missing?(dependency)
|
|
66
|
-
with_no_such_dependency_error_handling do
|
|
67
|
-
specification_provider.allow_missing?(dependency)
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
private
|
|
72
|
-
|
|
73
|
-
# Ensures any raised {NoSuchDependencyError} has its
|
|
74
|
-
# {NoSuchDependencyError#required_by} set.
|
|
75
|
-
# @yield
|
|
76
|
-
def with_no_such_dependency_error_handling
|
|
77
|
-
yield
|
|
78
|
-
rescue NoSuchDependencyError => error
|
|
79
|
-
if state
|
|
80
|
-
vertex = activated.vertex_named(name_for(error.dependency))
|
|
81
|
-
error.required_by += vertex.incoming_edges.map { |e| e.origin.name }
|
|
82
|
-
error.required_by << name_for_explicit_dependency_source unless vertex.explicit_requirements.empty?
|
|
83
|
-
end
|
|
84
|
-
raise
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Gem::Molinillo
|
|
4
|
-
class DependencyGraph
|
|
5
|
-
# An action that modifies a {DependencyGraph} that is reversible.
|
|
6
|
-
# @abstract
|
|
7
|
-
class Action
|
|
8
|
-
# rubocop:disable Lint/UnusedMethodArgument
|
|
9
|
-
|
|
10
|
-
# @return [Symbol] The name of the action.
|
|
11
|
-
def self.action_name
|
|
12
|
-
raise 'Abstract'
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
# Performs the action on the given graph.
|
|
16
|
-
# @param [DependencyGraph] graph the graph to perform the action on.
|
|
17
|
-
# @return [Void]
|
|
18
|
-
def up(graph)
|
|
19
|
-
raise 'Abstract'
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# Reverses the action on the given graph.
|
|
23
|
-
# @param [DependencyGraph] graph the graph to reverse the action on.
|
|
24
|
-
# @return [Void]
|
|
25
|
-
def down(graph)
|
|
26
|
-
raise 'Abstract'
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# @return [Action,Nil] The previous action
|
|
30
|
-
attr_accessor :previous
|
|
31
|
-
|
|
32
|
-
# @return [Action,Nil] The next action
|
|
33
|
-
attr_accessor :next
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative 'action'
|
|
4
|
-
module Gem::Molinillo
|
|
5
|
-
class DependencyGraph
|
|
6
|
-
# @!visibility private
|
|
7
|
-
# (see DependencyGraph#add_edge_no_circular)
|
|
8
|
-
class AddEdgeNoCircular < Action
|
|
9
|
-
# @!group Action
|
|
10
|
-
|
|
11
|
-
# (see Action.action_name)
|
|
12
|
-
def self.action_name
|
|
13
|
-
:add_vertex
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# (see Action#up)
|
|
17
|
-
def up(graph)
|
|
18
|
-
edge = make_edge(graph)
|
|
19
|
-
edge.origin.outgoing_edges << edge
|
|
20
|
-
edge.destination.incoming_edges << edge
|
|
21
|
-
edge
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# (see Action#down)
|
|
25
|
-
def down(graph)
|
|
26
|
-
edge = make_edge(graph)
|
|
27
|
-
delete_first(edge.origin.outgoing_edges, edge)
|
|
28
|
-
delete_first(edge.destination.incoming_edges, edge)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
# @!group AddEdgeNoCircular
|
|
32
|
-
|
|
33
|
-
# @return [String] the name of the origin of the edge
|
|
34
|
-
attr_reader :origin
|
|
35
|
-
|
|
36
|
-
# @return [String] the name of the destination of the edge
|
|
37
|
-
attr_reader :destination
|
|
38
|
-
|
|
39
|
-
# @return [Object] the requirement that the edge represents
|
|
40
|
-
attr_reader :requirement
|
|
41
|
-
|
|
42
|
-
# @param [DependencyGraph] graph the graph to find vertices from
|
|
43
|
-
# @return [Edge] The edge this action adds
|
|
44
|
-
def make_edge(graph)
|
|
45
|
-
Edge.new(graph.vertex_named(origin), graph.vertex_named(destination), requirement)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
# Initialize an action to add an edge to a dependency graph
|
|
49
|
-
# @param [String] origin the name of the origin of the edge
|
|
50
|
-
# @param [String] destination the name of the destination of the edge
|
|
51
|
-
# @param [Object] requirement the requirement that the edge represents
|
|
52
|
-
def initialize(origin, destination, requirement)
|
|
53
|
-
@origin = origin
|
|
54
|
-
@destination = destination
|
|
55
|
-
@requirement = requirement
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
private
|
|
59
|
-
|
|
60
|
-
def delete_first(array, item)
|
|
61
|
-
return unless index = array.index(item)
|
|
62
|
-
array.delete_at(index)
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
end
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative 'action'
|
|
4
|
-
module Gem::Molinillo
|
|
5
|
-
class DependencyGraph
|
|
6
|
-
# @!visibility private
|
|
7
|
-
# (see DependencyGraph#add_vertex)
|
|
8
|
-
class AddVertex < Action # :nodoc:
|
|
9
|
-
# @!group Action
|
|
10
|
-
|
|
11
|
-
# (see Action.action_name)
|
|
12
|
-
def self.action_name
|
|
13
|
-
:add_vertex
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# (see Action#up)
|
|
17
|
-
def up(graph)
|
|
18
|
-
if existing = graph.vertices[name]
|
|
19
|
-
@existing_payload = existing.payload
|
|
20
|
-
@existing_root = existing.root
|
|
21
|
-
end
|
|
22
|
-
vertex = existing || Vertex.new(name, payload)
|
|
23
|
-
graph.vertices[vertex.name] = vertex
|
|
24
|
-
vertex.payload ||= payload
|
|
25
|
-
vertex.root ||= root
|
|
26
|
-
vertex
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# (see Action#down)
|
|
30
|
-
def down(graph)
|
|
31
|
-
if defined?(@existing_payload)
|
|
32
|
-
vertex = graph.vertices[name]
|
|
33
|
-
vertex.payload = @existing_payload
|
|
34
|
-
vertex.root = @existing_root
|
|
35
|
-
else
|
|
36
|
-
graph.vertices.delete(name)
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# @!group AddVertex
|
|
41
|
-
|
|
42
|
-
# @return [String] the name of the vertex
|
|
43
|
-
attr_reader :name
|
|
44
|
-
|
|
45
|
-
# @return [Object] the payload for the vertex
|
|
46
|
-
attr_reader :payload
|
|
47
|
-
|
|
48
|
-
# @return [Boolean] whether the vertex is root or not
|
|
49
|
-
attr_reader :root
|
|
50
|
-
|
|
51
|
-
# Initialize an action to add a vertex to a dependency graph
|
|
52
|
-
# @param [String] name the name of the vertex
|
|
53
|
-
# @param [Object] payload the payload for the vertex
|
|
54
|
-
# @param [Boolean] root whether the vertex is root or not
|
|
55
|
-
def initialize(name, payload, root)
|
|
56
|
-
@name = name
|
|
57
|
-
@payload = payload
|
|
58
|
-
@root = root
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|