26 lines
		
	
	
		
			374 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			374 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require 'options'
 | |
| 
 | |
| module Dependable
 | |
|   RESERVED_TAGS = [:build, :optional, :recommended]
 | |
| 
 | |
|   def build?
 | |
|     tags.include? :build
 | |
|   end
 | |
| 
 | |
|   def optional?
 | |
|     tags.include? :optional
 | |
|   end
 | |
| 
 | |
|   def recommended?
 | |
|     tags.include? :recommended
 | |
|   end
 | |
| 
 | |
|   def required?
 | |
|     !build? && !optional? && !recommended?
 | |
|   end
 | |
| 
 | |
|   def options
 | |
|     Options.coerce(tags - RESERVED_TAGS)
 | |
|   end
 | |
| end
 | 
