| 
									
										
										
										
											2013-01-26 20:05:39 -06:00
										 |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-10 23:45:06 -05:00
										 |  |  |   def required? | 
					
						
							|  |  |  |     !build? && !optional? && !recommended? | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-26 20:05:39 -06:00
										 |  |  |   def options | 
					
						
							|  |  |  |     Options.coerce(tags - RESERVED_TAGS) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |