Class: Bundler::ParallelInstaller
- Inherits:
-
Object
- Object
- Bundler::ParallelInstaller
- Defined in:
- lib/bundler/installer/parallel_installer.rb
Defined Under Namespace
Classes: SpecInstallation
Instance Attribute Summary collapse
-
#size ⇒ Object
readonly
Returns the value of attribute size.
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
- #check_for_corrupt_lockfile ⇒ Object
-
#initialize(installer, all_specs, size, standalone, force) ⇒ ParallelInstaller
constructor
A new instance of ParallelInstaller.
Constructor Details
#initialize(installer, all_specs, size, standalone, force) ⇒ ParallelInstaller
Returns a new instance of ParallelInstaller.
83 84 85 86 87 88 89 90 91 |
# File 'lib/bundler/installer/parallel_installer.rb', line 83 def initialize(installer, all_specs, size, standalone, force) @installer = installer @size = size @standalone = standalone @force = force @specs = all_specs.map {|s| SpecInstallation.new(s) } @spec_set = all_specs @rake = @specs.find {|s| s.name == "rake" } end |
Instance Attribute Details
#size ⇒ Object (readonly)
Returns the value of attribute size.
81 82 83 |
# File 'lib/bundler/installer/parallel_installer.rb', line 81 def size @size end |
Class Method Details
.call(*args) ⇒ Object
77 78 79 |
# File 'lib/bundler/installer/parallel_installer.rb', line 77 def self.call(*args) new(*args).call end |
Instance Method Details
#call ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/bundler/installer/parallel_installer.rb', line 93 def call check_for_corrupt_lockfile if @size > 1 install_with_worker else install_serially end handle_error if failed_specs.any? @specs ensure worker_pool && worker_pool.stop end |
#check_for_corrupt_lockfile ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/bundler/installer/parallel_installer.rb', line 108 def check_for_corrupt_lockfile missing_dependencies = @specs.map do |s| [ s, s.missing_lockfile_dependencies(@specs.map(&:name)), ] end.reject {|a| a.last.empty? } return if missing_dependencies.empty? warning = [] warning << "Your lockfile was created by an old Bundler that left some things out." if @size != 1 warning << "Because of the missing DEPENDENCIES, we can only install gems one at a time, instead of installing #{@size} at a time." @size = 1 end warning << "You can fix this by adding the missing gems to your Gemfile, running bundle install, and then removing the gems from your Gemfile." warning << "The missing gems are:" missing_dependencies.each do |spec, missing| warning << "* #{missing.map(&:name).join(", ")} depended upon by #{spec.name}" end Bundler.ui.warn(warning.join("\n")) end |