summaryrefslogtreecommitdiff
path: root/lib/bundler/lazy_specification.rb
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2022-07-29 22:09:51 +0200
committergit <svn-admin@ruby-lang.org>2022-08-02 16:10:17 +0900
commit9189c2d5efa94131050df4994c801fb187d7b43d (patch)
treec2652477092d18b0603cd7900a5c2a8f88c0a8e4 /lib/bundler/lazy_specification.rb
parent8c98f7be577389f01a90c7a39d693173d432e9e2 (diff)
[rubygems/rubygems] Materializing for resolution already filters platforms
https://github.com/rubygems/rubygems/commit/9f4ba9ebb0
Diffstat (limited to 'lib/bundler/lazy_specification.rb')
-rw-r--r--lib/bundler/lazy_specification.rb25
1 files changed, 15 insertions, 10 deletions
diff --git a/lib/bundler/lazy_specification.rb b/lib/bundler/lazy_specification.rb
index 05925e3e79..805afba51f 100644
--- a/lib/bundler/lazy_specification.rb
+++ b/lib/bundler/lazy_specification.rb
@@ -78,24 +78,29 @@ module Bundler
def materialize_for_installation
source.local!
- __materialize__(ruby_platform_materializes_to_ruby_platform? ? platform : Bundler.local_platform)
+ candidates = if source.is_a?(Source::Path) || !ruby_platform_materializes_to_ruby_platform?
+ target_platform = ruby_platform_materializes_to_ruby_platform? ? platform : Bundler.local_platform
+
+ source.specs.search(Dependency.new(name, version)).select do |spec|
+ MatchPlatform.platforms_match?(spec.platform, target_platform)
+ end
+ else
+ source.specs.search(self)
+ end
+
+ __materialize__(candidates)
end
def materialize_for_resolution
return self unless Gem::Platform.match_spec?(self)
- __materialize__(platform)
+ candidates = source.specs.search(self)
+
+ __materialize__(candidates)
end
- def __materialize__(platform)
+ def __materialize__(candidates)
@specification = begin
- candidates = if source.is_a?(Source::Path) || !ruby_platform_materializes_to_ruby_platform?
- source.specs.search(Dependency.new(name, version)).select do |spec|
- MatchPlatform.platforms_match?(spec.platform, platform)
- end
- else
- source.specs.search(self)
- end
search = candidates.reverse.find do |spec|
spec.is_a?(StubSpecification) ||
(spec.required_ruby_version.satisfied_by?(Gem.ruby_version) &&