diff --git a/Library/Homebrew/dependencies.rb b/Library/Homebrew/dependencies.rb index 9d5c3dede4..addc17725c 100644 --- a/Library/Homebrew/dependencies.rb +++ b/Library/Homebrew/dependencies.rb @@ -46,4 +46,12 @@ class Dependencies def default build + required + recommended end + + attr_reader :deps + protected :deps + + def ==(other) + deps == other.deps + end + alias_method :eql?, :== end diff --git a/Library/Homebrew/test/test_dependencies.rb b/Library/Homebrew/test/test_dependencies.rb index ee7574c2bb..14b2e73b07 100644 --- a/Library/Homebrew/test/test_dependencies.rb +++ b/Library/Homebrew/test/test_dependencies.rb @@ -59,4 +59,22 @@ class DependenciesTests < Test::Unit::TestCase assert_equal [qux], @deps.recommended assert_equal [foo, baz, quux, qux].sort_by(&:name), @deps.default.sort_by(&:name) end + + def test_equality + a = Dependencies.new + b = Dependencies.new + + dep = Dependency.new("foo") + + a << dep + b << dep + + assert_equal a, b + assert a.eql?(b) + + b << Dependency.new("bar", [:optional]) + + assert_not_equal a, b + assert !a.eql?(b) + end end