| 
									
										
										
										
											2013-11-16 14:10:23 -06:00
										 |  |  | require 'formula' | 
					
						
							|  |  |  | require 'tab' | 
					
						
							|  |  |  | require 'set' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-18 22:41:47 -05:00
										 |  |  | module Homebrew | 
					
						
							| 
									
										
										
										
											2013-11-16 14:10:23 -06:00
										 |  |  |   def leaves | 
					
						
							|  |  |  |     installed = Formula.installed | 
					
						
							|  |  |  |     deps_of_installed = Set.new | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     installed.each do |f| | 
					
						
							|  |  |  |       deps = [] | 
					
						
							| 
									
										
										
										
											2014-10-09 00:20:15 -05:00
										 |  |  |       tab = Tab.for_formula(f) | 
					
						
							| 
									
										
										
										
											2013-11-16 14:10:23 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |       f.deps.each do |dep| | 
					
						
							|  |  |  |         if dep.optional? || dep.recommended? | 
					
						
							| 
									
										
										
										
											2014-10-09 00:20:15 -05:00
										 |  |  |           deps << dep.to_formula.name if tab.with?(dep) | 
					
						
							| 
									
										
										
										
											2013-11-16 14:10:23 -06:00
										 |  |  |         else | 
					
						
							| 
									
										
										
										
											2014-03-04 16:59:26 +01:00
										 |  |  |           deps << dep.to_formula.name | 
					
						
							| 
									
										
										
										
											2013-11-16 14:10:23 -06:00
										 |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       deps_of_installed.merge(deps) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     installed.each do |f| | 
					
						
							|  |  |  |       puts f.name unless deps_of_installed.include? f.name | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |