- Three characters is the RuboCop limit for parameter names, but more descriptive is good. - Requested in https://github.com/Homebrew/brew/pull/14922#pullrequestreview-1330848594, but the automerge was too quick for me to get to it.
		
			
				
	
	
		
			45 lines
		
	
	
		
			845 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			845 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # typed: true
 | |
| # frozen_string_literal: true
 | |
| 
 | |
| module Homebrew
 | |
|   # Auditor for checking common violations in {Formula} text content.
 | |
|   #
 | |
|   # @api private
 | |
|   class FormulaTextAuditor
 | |
|     def initialize(path)
 | |
|       @text = path.open("rb", &:read)
 | |
|       @lines = @text.lines.to_a
 | |
|     end
 | |
| 
 | |
|     def without_patch
 | |
|       @text.split("\n__END__").first
 | |
|     end
 | |
| 
 | |
|     def trailing_newline?
 | |
|       /\Z\n/ =~ @text
 | |
|     end
 | |
| 
 | |
|     def =~(other)
 | |
|       other =~ @text
 | |
|     end
 | |
| 
 | |
|     def include?(string)
 | |
|       @text.include? string
 | |
|     end
 | |
| 
 | |
|     def to_s
 | |
|       @text
 | |
|     end
 | |
| 
 | |
|     def line_number(regex, skip = 0)
 | |
|       index = @lines.drop(skip).index { |line| line =~ regex }
 | |
|       index ? index + 1 : nil
 | |
|     end
 | |
| 
 | |
|     def reverse_line_number(regex)
 | |
|       index = @lines.reverse.index { |line| line =~ regex }
 | |
|       index ? @lines.count - index : nil
 | |
|     end
 | |
|   end
 | |
| end
 |