diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/bundler/definition.rb | 10 | ||||
| -rw-r--r-- | lib/bundler/resolver/base.rb | 4 | ||||
| -rw-r--r-- | lib/bundler/spec_set.rb | 4 |
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 |
