diff options
| author | Jack Nagel | 2013-05-10 23:45:06 -0500 |
|---|---|---|
| committer | Jack Nagel | 2013-05-10 23:45:06 -0500 |
| commit | 2d93935e6a4a303d4c67c9007e02bb5ba73f2644 (patch) | |
| tree | f894bb6e034e320be143efbd5894c4a0f50f0b06 /Library/Homebrew | |
| parent | 7629d4485e9094a758ea9dfdab78f484f36c1714 (diff) | |
| download | brew-2d93935e6a4a303d4c67c9007e02bb5ba73f2644.tar.bz2 | |
Add type accessors to Dependencies
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/dependable.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/dependencies.rb | 20 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_dependencies.rb | 14 |
3 files changed, 38 insertions, 0 deletions
diff --git a/Library/Homebrew/dependable.rb b/Library/Homebrew/dependable.rb index 2a1d7d880..50ff5c90f 100644 --- a/Library/Homebrew/dependable.rb +++ b/Library/Homebrew/dependable.rb @@ -15,6 +15,10 @@ module Dependable tags.include? :recommended end + def required? + !build? && !optional? && !recommended? + end + def options Options.coerce(tags - RESERVED_TAGS) end diff --git a/Library/Homebrew/dependencies.rb b/Library/Homebrew/dependencies.rb index 76d285b56..9d5c3dede 100644 --- a/Library/Homebrew/dependencies.rb +++ b/Library/Homebrew/dependencies.rb @@ -26,4 +26,24 @@ class Dependencies @deps end alias_method :to_ary, :to_a + + def optional + select(&:optional?) + end + + def recommended + select(&:recommended?) + end + + def build + select(&:build?) + end + + def required + select(&:required?) + end + + def default + build + required + recommended + end end diff --git a/Library/Homebrew/test/test_dependencies.rb b/Library/Homebrew/test/test_dependencies.rb index d0d078318..ee7574c2b 100644 --- a/Library/Homebrew/test/test_dependencies.rb +++ b/Library/Homebrew/test/test_dependencies.rb @@ -45,4 +45,18 @@ class DependenciesTests < Test::Unit::TestCase @deps << dep assert_equal [dep], @deps.to_ary end + + def test_type_helpers + foo = Dependency.new("foo") + bar = Dependency.new("bar", [:optional]) + baz = Dependency.new("baz", [:build]) + qux = Dependency.new("qux", [:recommended]) + quux = Dependency.new("quux") + @deps << foo << bar << baz << qux << quux + assert_equal [foo, quux], @deps.required + assert_equal [bar], @deps.optional + assert_equal [baz], @deps.build + assert_equal [qux], @deps.recommended + assert_equal [foo, baz, quux, qux].sort_by(&:name), @deps.default.sort_by(&:name) + end end |
