aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Nagel2014-04-07 13:07:04 -0500
committerJack Nagel2014-04-07 13:07:04 -0500
commit7d8a01a804a9460b9c8e49e3e4c188ee0346f417 (patch)
treefde4fe3c38d2e92e5142dffce374ec175ad31827
parent488c5735c6db94d6d6615e7e7e046a9b114f5c1a (diff)
downloadhomebrew-7d8a01a804a9460b9c8e49e3e4c188ee0346f417.tar.bz2
Restore documented behavior of `brew uses foo bar`
`brew uses foo bar` is supposed to return the intersection of formulae that use foo and bar. However, this was broken by changes made to support requirements that can coerce to regular dependencies.
-rw-r--r--Library/Homebrew/cmd/uses.rb19
1 files changed, 6 insertions, 13 deletions
diff --git a/Library/Homebrew/cmd/uses.rb b/Library/Homebrew/cmd/uses.rb
index 23bab2e9f..a6677b363 100644
--- a/Library/Homebrew/cmd/uses.rb
+++ b/Library/Homebrew/cmd/uses.rb
@@ -12,25 +12,18 @@ module Homebrew extend self
formulae = (ARGV.include? "--installed") ? Formula.installed : Formula
recursive = ARGV.flag? "--recursive"
- uses = []
- formulae.each do |f|
+ uses = formulae.select do |f|
used_formulae.all? do |ff|
if recursive
- if f.recursive_dependencies.any? { |dep| dep.name == ff.name }
- uses << f.to_s
- elsif f.recursive_requirements.any? { |req| req.name == ff.name }
- uses << f.to_s
- end
+ f.recursive_dependencies.any? { |dep| dep.name == ff.name } ||
+ f.recursive_requirements.any? { |req| req.name == ff.name }
else
- if f.deps.any? { |dep| dep.name == ff.name }
- uses << f.to_s
- elsif f.requirements.any? { |req| req.name == ff.name }
- uses << f.to_s
- end
+ f.deps.any? { |dep| dep.name == ff.name } ||
+ f.requirements.any? { |req| req.name == ff.name }
end
end
end
- puts_columns uses
+ puts_columns uses.map(&:name)
end
end