aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorJack Nagel2013-05-10 23:45:06 -0500
committerJack Nagel2013-05-10 23:45:06 -0500
commit2d93935e6a4a303d4c67c9007e02bb5ba73f2644 (patch)
treef894bb6e034e320be143efbd5894c4a0f50f0b06 /Library/Homebrew
parent7629d4485e9094a758ea9dfdab78f484f36c1714 (diff)
downloadbrew-2d93935e6a4a303d4c67c9007e02bb5ba73f2644.tar.bz2
Add type accessors to Dependencies
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/dependable.rb4
-rw-r--r--Library/Homebrew/dependencies.rb20
-rw-r--r--Library/Homebrew/test/test_dependencies.rb14
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