Skip to content

Commit

Permalink
[rubygems/rubygems] Simplify SpecGroup creation
Browse files Browse the repository at this point in the history
  • Loading branch information
deivid-rodriguez authored and hsbt committed Oct 18, 2022
1 parent 67de000 commit 804ae4e
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 14 deletions.
6 changes: 3 additions & 3 deletions lib/bundler/resolver.rb
Expand Up @@ -136,15 +136,15 @@ def search_for(dependency_proxy)
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
Expand Down
17 changes: 7 additions & 10 deletions lib/bundler/resolver/spec_group.rb
Expand Up @@ -6,20 +6,17 @@ class SpecGroup
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|
Expand Down
2 changes: 1 addition & 1 deletion spec/bundler/bundler/gem_version_promoter_spec.rb
Expand Up @@ -28,7 +28,7 @@ def keep_locked(options)

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

Expand Down

0 comments on commit 804ae4e

Please sign in to comment.