summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/bundler/definition.rb10
-rw-r--r--lib/bundler/resolver/base.rb4
-rw-r--r--lib/bundler/spec_set.rb4
3 files changed, 12 insertions, 6 deletions
diff --git a/lib/bundler/definition.rb b/lib/bundler/definition.rb
index 9467d312fa..3249fb09dc 100644
--- a/lib/bundler/definition.rb
+++ b/lib/bundler/definition.rb
@@ -668,9 +668,17 @@ module Bundler
def check_missing_lockfile_specs
all_locked_specs = @locked_specs.map(&:name) << "bundler"
- @locked_specs.any? do |s|
+ missing = @locked_specs.select do |s|
s.dependencies.any? {|dep| !all_locked_specs.include?(dep.name) }
end
+
+ if missing.any?
+ @locked_specs.delete(missing)
+
+ true
+ else
+ false
+ end
end
def converge_paths
diff --git a/lib/bundler/resolver/base.rb b/lib/bundler/resolver/base.rb
index c6afa82056..e5c3763c3f 100644
--- a/lib/bundler/resolver/base.rb
+++ b/lib/bundler/resolver/base.rb
@@ -35,9 +35,7 @@ module Bundler
end
def delete(specs)
- specs.each do |spec|
- @base.delete(spec)
- end
+ @base.delete(specs)
end
def get_package(name)
diff --git a/lib/bundler/spec_set.rb b/lib/bundler/spec_set.rb
index cf63c16a70..21630e3a3e 100644
--- a/lib/bundler/spec_set.rb
+++ b/lib/bundler/spec_set.rb
@@ -63,8 +63,8 @@ module Bundler
@sorted = nil
end
- def delete(spec)
- @specs.delete(spec)
+ def delete(specs)
+ specs.each {|spec| @specs.delete(spec) }
@lookup = nil
@sorted = nil
end