[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)
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

View file

@ -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|

View file

@ -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