aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Nagel2013-06-25 10:12:14 -0500
committerJack Nagel2013-06-25 10:12:14 -0500
commit957b32b1f21b8d84ad3fb7442996568c2edcf8f3 (patch)
treed43964c808c59e5defeed9cc0666258fb6a67762
parentba37612e46e18479f18c6f7a97b99837dc209dfc (diff)
downloadhomebrew-957b32b1f21b8d84ad3fb7442996568c2edcf8f3.tar.bz2
Uniqify tags when merging dependencies
-rw-r--r--Library/Homebrew/dependency.rb2
-rw-r--r--Library/Homebrew/test/test_dependency_expansion.rb8
2 files changed, 9 insertions, 1 deletions
diff --git a/Library/Homebrew/dependency.rb b/Library/Homebrew/dependency.rb
index 3a203e896..05318fc9a 100644
--- a/Library/Homebrew/dependency.rb
+++ b/Library/Homebrew/dependency.rb
@@ -100,7 +100,7 @@ class Dependency
grouped = deps.group_by(&:name)
deps.uniq.map do |dep|
- tags = grouped.fetch(dep.name).map(&:tags).flatten
+ tags = grouped.fetch(dep.name).map(&:tags).flatten.uniq
merged_dep = dep.class.new(dep.name, tags)
merged_dep.env_proc = dep.env_proc
merged_dep
diff --git a/Library/Homebrew/test/test_dependency_expansion.rb b/Library/Homebrew/test/test_dependency_expansion.rb
index a6b9cbdec..d0dada2e0 100644
--- a/Library/Homebrew/test/test_dependency_expansion.rb
+++ b/Library/Homebrew/test/test_dependency_expansion.rb
@@ -74,4 +74,12 @@ class DependencyExpansionTests < Test::Unit::TestCase
env_proc = @foo.env_proc = stub
assert_equal env_proc, Dependency.expand(@f).first.env_proc
end
+
+ def test_merged_tags_no_dupes
+ @foo2 = build_dep(:foo, ['option'])
+ @foo3 = build_dep(:foo, ['option'])
+ @deps << @foo2 << @foo3
+
+ assert_equal %w{option}, Dependency.expand(@f).first.tags
+ end
end