diff options
| -rw-r--r-- | Library/Homebrew/dependency.rb | 6 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_dependency_expansion.rb | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/Library/Homebrew/dependency.rb b/Library/Homebrew/dependency.rb index fda491b99..f492b9a6e 100644 --- a/Library/Homebrew/dependency.rb +++ b/Library/Homebrew/dependency.rb @@ -75,8 +75,8 @@ class Dependency # the list. # The default filter, which is applied when a block is not given, omits # optionals and recommendeds based on what the dependent has asked for. - def expand(dependent, &block) - deps = dependent.deps.map do |dep| + def expand(dependent, deps=dependent.deps, &block) + expanded_deps = deps.map do |dep| case action(dependent, dep, &block) when :prune next [] @@ -89,7 +89,7 @@ class Dependency end end.flatten - merge_repeats(deps) + merge_repeats(expanded_deps) end def action(dependent, dep, &block) diff --git a/Library/Homebrew/test/test_dependency_expansion.rb b/Library/Homebrew/test/test_dependency_expansion.rb index cf22b6170..b34cd35f4 100644 --- a/Library/Homebrew/test/test_dependency_expansion.rb +++ b/Library/Homebrew/test/test_dependency_expansion.rb @@ -108,4 +108,9 @@ class DependencyExpansionTests < Test::Unit::TestCase assert_equal [@foo, @baz], deps end + + def test_deps_with_collection_argument + assert_equal [@foo, @bar, @baz, @qux], @f.deps + assert_equal [@bar, @baz], Dependency.expand(@f, [@bar, @baz]) + end end |
