summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Giddins <segiddins@segiddins.me>2017-08-30 23:37:58 -0500
committerSamuel Giddins <segiddins@segiddins.me>2017-09-06 15:44:40 -0500
commit6498d10282ec9de20024a4c25e2998666508bc4d (patch)
tree804bb141912ca9efcd3596d3275080b0b2f97e2b
parentc5122b3002ecf2bcc77c2efcae75f288b44be261 (diff)
downloadbundler-6498d10282ec9de20024a4c25e2998666508bc4d.tar.gz
Ensure that rake is always installed first when present
-rw-r--r--lib/bundler/installer/parallel_installer.rb3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/bundler/installer/parallel_installer.rb b/lib/bundler/installer/parallel_installer.rb
index 95d9575c44..7a8003140b 100644
--- a/lib/bundler/installer/parallel_installer.rb
+++ b/lib/bundler/installer/parallel_installer.rb
@@ -87,6 +87,7 @@ module Bundler
@force = force
@specs = all_specs.map {|s| SpecInstallation.new(s) }
@spec_set = all_specs
+ @rake = @specs.find {|s| s.name == "rake" }
end
def call
@@ -218,6 +219,8 @@ module Bundler
# are installed.
def enqueue_specs
@specs.select(&:ready_to_enqueue?).each do |spec|
+ next if @rake && !@rake.installed? && spec.name != @rake.name
+
if spec.dependencies_installed? @specs
spec.state = :enqueued
worker_pool.enq spec