Add type accessors to Dependencies
This commit is contained in:
parent
7629d4485e
commit
2d93935e6a
@ -15,6 +15,10 @@ module Dependable
|
||||
tags.include? :recommended
|
||||
end
|
||||
|
||||
def required?
|
||||
!build? && !optional? && !recommended?
|
||||
end
|
||||
|
||||
def options
|
||||
Options.coerce(tags - RESERVED_TAGS)
|
||||
end
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user