[rubygems/rubygems] Simplify SpecGroup creation

788e46e152
This commit is contained in:
David Rodríguez 2022-09-12 18:38:33 +02:00 committed by Hiroshi SHIBATA
parent 67de00053a
commit 804ae4ea12
Notes: git 2022-10-18 07:33:42 +00:00
3 changed files with 11 additions and 14 deletions

View file

@ -136,15 +136,15 @@ module Bundler
current_specs[current_platform] = select_best_platform_match(specs, current_platform) current_specs[current_platform] = select_best_platform_match(specs, current_platform)
end end
spec_group_ruby = SpecGroup.create_for(specs_by_platform, [Gem::Platform::RUBY], Gem::Platform::RUBY) if specs_by_platform[Gem::Platform::RUBY].any?
if spec_group_ruby spec_group_ruby = SpecGroup.create_for(specs_by_platform, [Gem::Platform::RUBY])
spec_group_ruby.force_ruby_platform = dependency.force_ruby_platform spec_group_ruby.force_ruby_platform = dependency.force_ruby_platform
groups << spec_group_ruby groups << spec_group_ruby
end end
next groups if @resolving_only_for_ruby || dependency.force_ruby_platform 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 << spec_group
groups groups

View file

@ -6,20 +6,17 @@ module Bundler
attr_accessor :name, :version, :source attr_accessor :name, :version, :source
attr_accessor :activated_platforms, :force_ruby_platform attr_accessor :activated_platforms, :force_ruby_platform
def self.create_for(specs, all_platforms, specific_platform) def self.create_for(specs, all_platforms)
specific_platform_specs = specs[specific_platform]
return unless specific_platform_specs.any?
platforms = all_platforms.select {|p| specs[p].any? } platforms = all_platforms.select {|p| specs[p].any? }
new(specific_platform_specs.first, specs, platforms) new(specs, platforms)
end end
def initialize(exemplary_spec, specs, relevant_platforms) def initialize(specs, relevant_platforms)
@exemplary_spec = exemplary_spec @exemplary_spec = specs[relevant_platforms.first].first
@name = exemplary_spec.name @name = @exemplary_spec.name
@version = exemplary_spec.version @version = @exemplary_spec.version
@source = exemplary_spec.source @source = @exemplary_spec.source
@activated_platforms = relevant_platforms @activated_platforms = relevant_platforms
@dependencies = Hash.new do |dependencies, platforms| @dependencies = Hash.new do |dependencies, platforms|

View file

@ -28,7 +28,7 @@ RSpec.describe Bundler::GemVersionPromoter do
def build_spec_groups(name, versions) def build_spec_groups(name, versions)
versions.map do |v| 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
end end