mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
45 lines
860 B
Ruby
45 lines
860 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/.match?(@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.match?(regex) }
|
|
index ? index + 1 : nil
|
|
end
|
|
|
|
def reverse_line_number(regex)
|
|
index = @lines.reverse.index { |line| line.match?(regex) }
|
|
index ? @lines.count - index : nil
|
|
end
|
|
end
|
|
end
|