summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Rodríguez <deivid.rodriguez@riseup.net>2022-09-12 18:38:33 +0200
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2022-10-18 16:33:15 +0900
commit804ae4ea12d05e66aaa680feea83af587ac53745 (patch)
treedfc2bfad81b1085c6b38d569addc4c6bea03e4c0
parent67de00053a26db9d976efa393d121479b5315f5e (diff)
[rubygems/rubygems] Simplify SpecGroup creation
https://github.com/rubygems/rubygems/commit/788e46e152
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/6578
-rw-r--r--lib/bundler/resolver.rb6
-rw-r--r--lib/bundler/resolver/spec_group.rb17
-rw-r--r--spec/bundler/bundler/gem_version_promoter_spec.rb2
3 files changed, 11 insertions, 14 deletions
diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb
index 104e149f6b..80ad39e896 100644
--- a/lib/bundler/resolver.rb
+++ b/lib/bundler/resolver.rb
@@ -136,15 +136,15 @@ module Bundler
current_specs[current_platform] = select_best_platform_match(specs, current_platform)
end
- spec_group_ruby = SpecGroup.create_for(specs_by_platform, [Gem::Platform::RUBY], Gem::Platform::RUBY)
- if spec_group_ruby
+ if specs_by_platform[Gem::Platform::RUBY].any?
+ spec_group_ruby = SpecGroup.create_for(specs_by_platform, [Gem::Platform::RUBY])
spec_group_ruby.force_ruby_platform = dependency.force_ruby_platform
groups << spec_group_ruby
end
next groups if @resolving_only_for_ruby || dependency.force_ruby_platform
- spec_group = SpecGroup.create_for(specs_by_platform, @platforms, platform)
+ spec_group = SpecGroup.create_for(specs_by_platform, @platforms)
groups << spec_group
groups
diff --git a/lib/bundler/resolver/spec_group.rb b/lib/bundler/resolver/spec_group.rb
index 4e5b0082d3..dfe15a5052 100644
--- a/lib/bundler/resolver/spec_group.rb
+++ b/lib/bundler/resolver/spec_group.rb
@@ -6,20 +6,17 @@ module Bundler
attr_accessor :name, :version, :source
attr_accessor :activated_platforms, :force_ruby_platform
- def self.create_for(specs, all_platforms, specific_platform)
- specific_platform_specs = specs[specific_platform]
- return unless specific_platform_specs.any?
-
+ def self.create_for(specs, all_platforms)
platforms = all_platforms.select {|p| specs[p].any? }
- new(specific_platform_specs.first, specs, platforms)
+ new(specs, platforms)
end
- def initialize(exemplary_spec, specs, relevant_platforms)
- @exemplary_spec = exemplary_spec
- @name = exemplary_spec.name
- @version = exemplary_spec.version
- @source = exemplary_spec.source
+ def initialize(specs, relevant_platforms)
+ @exemplary_spec = specs[relevant_platforms.first].first
+ @name = @exemplary_spec.name
+ @version = @exemplary_spec.version
+ @source = @exemplary_spec.source
@activated_platforms = relevant_platforms
@dependencies = Hash.new do |dependencies, platforms|
diff --git a/spec/bundler/bundler/gem_version_promoter_spec.rb b/spec/bundler/bundler/gem_version_promoter_spec.rb
index 99e008bfbc..82c325097f 100644
--- a/spec/bundler/bundler/gem_version_promoter_spec.rb
+++ b/spec/bundler/bundler/gem_version_promoter_spec.rb
@@ -28,7 +28,7 @@ RSpec.describe Bundler::GemVersionPromoter do
def build_spec_groups(name, versions)
versions.map do |v|
- Bundler::Resolver::SpecGroup.create_for({ Gem::Platform::RUBY => build_spec(name, v) }, [Gem::Platform::RUBY], Gem::Platform::RUBY)
+ Bundler::Resolver::SpecGroup.create_for({ Gem::Platform::RUBY => build_spec(name, v) }, [Gem::Platform::RUBY])
end
end