Add type accessors to Dependencies
This commit is contained in:
parent
7629d4485e
commit
2d93935e6a
@ -15,6 +15,10 @@ module Dependable
|
|||||||
tags.include? :recommended
|
tags.include? :recommended
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def required?
|
||||||
|
!build? && !optional? && !recommended?
|
||||||
|
end
|
||||||
|
|
||||||
def options
|
def options
|
||||||
Options.coerce(tags - RESERVED_TAGS)
|
Options.coerce(tags - RESERVED_TAGS)
|
||||||
end
|
end
|
||||||
|
@ -26,4 +26,24 @@ class Dependencies
|
|||||||
@deps
|
@deps
|
||||||
end
|
end
|
||||||
alias_method :to_ary, :to_a
|
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
|
end
|
||||||
|
@ -45,4 +45,18 @@ class DependenciesTests < Test::Unit::TestCase
|
|||||||
@deps << dep
|
@deps << dep
|
||||||
assert_equal [dep], @deps.to_ary
|
assert_equal [dep], @deps.to_ary
|
||||||
end
|
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
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user