2015-08-03 13:09:07 +01:00
|
|
|
require "options"
|
2013-01-26 20:05:39 -06:00
|
|
|
|
|
|
|
module Dependable
|
2018-03-05 10:36:39 +00:00
|
|
|
RESERVED_TAGS = [:build, :optional, :recommended, :run, :test, :linked].freeze
|
2013-01-26 20:05:39 -06:00
|
|
|
|
|
|
|
def build?
|
|
|
|
tags.include? :build
|
|
|
|
end
|
|
|
|
|
|
|
|
def optional?
|
|
|
|
tags.include? :optional
|
|
|
|
end
|
|
|
|
|
|
|
|
def recommended?
|
|
|
|
tags.include? :recommended
|
|
|
|
end
|
|
|
|
|
2013-11-04 12:00:06 -06:00
|
|
|
def run?
|
|
|
|
tags.include? :run
|
|
|
|
end
|
|
|
|
|
2018-03-05 10:36:39 +00:00
|
|
|
def test?
|
|
|
|
tags.include? :test
|
|
|
|
end
|
|
|
|
|
2013-05-10 23:45:06 -05:00
|
|
|
def required?
|
2018-03-05 10:36:39 +00:00
|
|
|
!build? && !test? && !optional? && !recommended?
|
2013-05-10 23:45:06 -05:00
|
|
|
end
|
|
|
|
|
2015-12-15 10:50:38 +01:00
|
|
|
def option_tags
|
|
|
|
tags - RESERVED_TAGS
|
|
|
|
end
|
|
|
|
|
2013-01-26 20:05:39 -06:00
|
|
|
def options
|
2015-12-15 10:50:38 +01:00
|
|
|
Options.create(option_tags)
|
2013-01-26 20:05:39 -06:00
|
|
|
end
|
|
|
|
end
|