Class: Bundler::ParallelInstaller

Inherits:
Object
  • Object
show all
Defined in:
lib/bundler/installer/parallel_installer.rb

Defined Under Namespace

Classes: SpecInstallation

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(installer, all_specs, size, standalone, force, local: false, skip: nil) ⇒ ParallelInstaller

Returns a new instance of ParallelInstaller.



71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/bundler/installer/parallel_installer.rb', line 71

def initialize(installer, all_specs, size, standalone, force, local: false, skip: nil)
  @installer = installer
  @size = size
  @standalone = standalone
  @force = force
  @local = local
  @specs = all_specs.map {|s| SpecInstallation.new(s) }
  @specs.each do |spec_install|
    spec_install.state = :installed if skip.include?(spec_install.name)
  end if skip
  @spec_set = all_specs
  @rake = @specs.find {|s| s.name == "rake" unless s.installed? }
end

Instance Attribute Details

#sizeObject (readonly)

Returns the value of attribute size.



69
70
71
# File 'lib/bundler/installer/parallel_installer.rb', line 69

def size
  @size
end

Class Method Details

.call(*args, **kwargs) ⇒ Object



65
66
67
# File 'lib/bundler/installer/parallel_installer.rb', line 65

def self.call(*args, **kwargs)
  new(*args, **kwargs).call
end

Instance Method Details

#callObject



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/bundler/installer/parallel_installer.rb', line 85

def call
  if @rake
    do_install(@rake, 0)
    Gem::Specification.reset
  end

  if @size > 1
    install_with_worker
  else
    install_serially
  end

  handle_error if failed_specs.any?
  @specs
ensure
  worker_pool&.stop
end