2013-01-07 14:06:34 -06:00
|
|
|
class Dependencies
|
|
|
|
include Enumerable
|
|
|
|
|
|
|
|
def initialize(*args)
|
|
|
|
@deps = Array.new(*args)
|
|
|
|
end
|
|
|
|
|
|
|
|
def each(*args, &block)
|
|
|
|
@deps.each(*args, &block)
|
|
|
|
end
|
2012-02-28 19:56:29 -08:00
|
|
|
|
2012-10-24 18:17:43 -05:00
|
|
|
def <<(o)
|
2013-01-07 14:06:34 -06:00
|
|
|
@deps << o unless @deps.include? o
|
|
|
|
self
|
|
|
|
end
|
|
|
|
|
|
|
|
def empty?
|
|
|
|
@deps.empty?
|
|
|
|
end
|
|
|
|
|
|
|
|
def *(arg)
|
|
|
|
@deps * arg
|
2012-10-24 18:17:43 -05:00
|
|
|
end
|
2013-01-07 18:16:11 -06:00
|
|
|
|
2013-01-23 00:26:30 -06:00
|
|
|
alias_method :to_ary, :to_a
|
2013-05-10 23:45:06 -05:00
|
|
|
|
|
|
|
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
|
2014-02-13 16:31:12 -05:00
|
|
|
|
|
|
|
attr_reader :deps
|
|
|
|
protected :deps
|
|
|
|
|
|
|
|
def ==(other)
|
|
|
|
deps == other.deps
|
|
|
|
end
|
|
|
|
alias_method :eql?, :==
|
2012-10-24 18:17:43 -05:00
|
|
|
end
|