| 
									
										
										
										
											2017-05-24 13:04:55 +05:30
										 |  |  | require_relative "./extend/formula_cop" | 
					
						
							|  |  |  | require_relative "../extend/string" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module RuboCop | 
					
						
							|  |  |  |   module Cop | 
					
						
							|  |  |  |     module FormulaAudit | 
					
						
							|  |  |  |       # This cop audits versioned Formulae for `conflicts_with` | 
					
						
							|  |  |  |       class Conflicts < FormulaCop | 
					
						
							| 
									
										
										
										
											2017-10-21 03:12:50 +02:00
										 |  |  |         MSG = "Versioned formulae should not use `conflicts_with`. " \ | 
					
						
							|  |  |  |               "Use `keg_only :versioned_formula` instead.".freeze | 
					
						
							| 
									
										
										
										
											2017-05-24 13:04:55 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |         WHITELIST = %w[
 | 
					
						
							|  |  |  |           node@ | 
					
						
							|  |  |  |           bash-completion@ | 
					
						
							|  |  |  |         ].freeze | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         def audit_formula(_node, _class_node, _parent_class_node, body) | 
					
						
							|  |  |  |           return unless versioned_formula? | 
					
						
							| 
									
										
										
										
											2017-08-30 15:48:41 +05:30
										 |  |  |           problem MSG if !@formula_name.start_with?(*WHITELIST) && | 
					
						
							| 
									
										
										
										
											2017-05-24 13:04:55 +05:30
										 |  |  |                          method_called_ever?(body, :conflicts_with) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |