diff options
| author | Jack Nagel | 2014-04-07 13:07:04 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-04-07 13:07:04 -0500 |
| commit | 872f46dc1e033447c02b6e8a426bef26dc0154ef (patch) | |
| tree | b3616b33285c5710092399b6ff74313a8dc1890d | |
| parent | 574fc99258b1a40796ea53dcd60d38e25303490f (diff) | |
| download | brew-872f46dc1e033447c02b6e8a426bef26dc0154ef.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.rb | 19 |
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 |
