diff --git a/Library/Homebrew/cmd/deps.rb b/Library/Homebrew/cmd/deps.rb index cffeb42052..9cbdafe979 100644 --- a/Library/Homebrew/cmd/deps.rb +++ b/Library/Homebrew/cmd/deps.rb @@ -34,11 +34,11 @@ module Homebrew ignores << "optional?" if ARGV.include? "--skip-optional" if recursive - deps = f.recursive_dependencies.reject do |dep| - ignores.any? { |ignore| dep.send(ignore) } + deps = f.recursive_dependencies do |dependent, dep| + Dependency.prune if ignores.any? { |ignore| dep.send(ignore) } && !dependent.build.with?(dep) end - reqs = f.recursive_requirements.reject do |req| - ignores.any? { |ignore| req.send(ignore) } + reqs = f.recursive_requirements do |dependent, req| + Requirement.prune if ignores.any? { |ignore| req.send(ignore) } && !dependent.build.with?(req) end else deps = f.deps.reject do |dep| diff --git a/Library/Homebrew/cmd/uses.rb b/Library/Homebrew/cmd/uses.rb index 8f4ead1263..6d42f8e541 100644 --- a/Library/Homebrew/cmd/uses.rb +++ b/Library/Homebrew/cmd/uses.rb @@ -19,11 +19,11 @@ module Homebrew used_formulae.all? do |ff| begin if recursive - deps = f.recursive_dependencies.reject do |dep| - ignores.any? { |ignore| dep.send(ignore) } + deps = f.recursive_dependencies do |dependent, dep| + Dependency.prune if ignores.any? { |ignore| dep.send(ignore) } && !dependent.build.with?(dep) end - reqs = f.recursive_requirements.reject do |req| - ignores.any? { |ignore| req.send(ignore) } + reqs = f.recursive_requirements do |dependent, req| + Requirement.prune if ignores.any? { |ignore| req.send(ignore) } && !dependent.build.with?(req) end deps.any? { |dep| dep.to_formula.name == ff.name } || reqs.any? { |req| req.name == ff.name || req.class.default_formula == ff.name }