class Git::Lint::Analyzers::Abstract
An abstract class which provides basic functionality from which all analyzers inherit from.
Constants
- ISSUE_LINE_OFFSET
- LEVELS
Public Class Methods
build_issue_line(index, line)
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 31 def self.build_issue_line(index, line) = {number: index + ISSUE_LINE_OFFSET, content: line} attr_reader :commit def initialize commit:, settings: self.class.defaults @commit = commit @settings = settings @filter_list = load_filter_list end def enabled? = settings.fetch(:enabled) def severity settings.fetch(:severity).tap do |level| fail Errors::Severity, level unless LEVELS.include? level end end def valid? fail NotImplementedError, "The `##{__method__}` method must be implemented." end def invalid? = !valid? def warning? = invalid? && severity == :warn def error? = invalid? && severity == :error def issue fail NotImplementedError, "The `##{__method__}` method must be implemented." end protected attr_reader :settings, :filter_list def load_filter_list = Kit::FilterList.new(settings[:list]) def affected_commit_body_lines commit.body_lines.each.with_object([]).with_index do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def affected_commit_trailers commit.trailers .each.with_object([]) .with_index(commit.trailers_index) do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def invalid_line? _line fail NotImplementedError, "The `.#{__method__}` method must be implemented." end end end
defaults()
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 25 def self.defaults fail NotImplementedError, "The `.#{__method__}` method must be implemented." end
descendants(= @descendants || [])
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 29 def self.descendants = @descendants || [] def self.build_issue_line(index, line) = {number: index + ISSUE_LINE_OFFSET, content: line} attr_reader :commit def initialize commit:, settings: self.class.defaults @commit = commit @settings = settings @filter_list = load_filter_list end def enabled? = settings.fetch(:enabled) def severity settings.fetch(:severity).tap do |level| fail Errors::Severity, level unless LEVELS.include? level end end def valid? fail NotImplementedError, "The `##{__method__}` method must be implemented." end def invalid? = !valid? def warning? = invalid? && severity == :warn def error? = invalid? && severity == :error def issue fail NotImplementedError, "The `##{__method__}` method must be implemented." end protected attr_reader :settings, :filter_list def load_filter_list = Kit::FilterList.new(settings[:list]) def affected_commit_body_lines commit.body_lines.each.with_object([]).with_index do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def affected_commit_trailers commit.trailers .each.with_object([]) .with_index(commit.trailers_index) do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def invalid_line? _line fail NotImplementedError, "The `.#{__method__}` method must be implemented." end end
id(= to_s.delete_prefix("Git::Lint::Analyzers").snakecase.to_sym)
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 21 def self.id = to_s.delete_prefix("Git::Lint::Analyzers").snakecase.to_sym def self.label = to_s.delete_prefix("Git::Lint::Analyzers").titleize def self.defaults fail NotImplementedError, "The `.#{__method__}` method must be implemented." end def self.descendants = @descendants || [] def self.build_issue_line(index, line) = {number: index + ISSUE_LINE_OFFSET, content: line} attr_reader :commit def initialize commit:, settings: self.class.defaults @commit = commit @settings = settings @filter_list = load_filter_list end def enabled? = settings.fetch(:enabled) def severity settings.fetch(:severity).tap do |level| fail Errors::Severity, level unless LEVELS.include? level end end def valid? fail NotImplementedError, "The `##{__method__}` method must be implemented." end def invalid? = !valid? def warning? = invalid? && severity == :warn def error? = invalid? && severity == :error def issue fail NotImplementedError, "The `##{__method__}` method must be implemented." end protected attr_reader :settings, :filter_list def load_filter_list = Kit::FilterList.new(settings[:list]) def affected_commit_body_lines commit.body_lines.each.with_object([]).with_index do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def affected_commit_trailers commit.trailers .each.with_object([]) .with_index(commit.trailers_index) do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def invalid_line? _line fail NotImplementedError, "The `.#{__method__}` method must be implemented." end
inherited(klass)
click to toggle source
Calls superclass method
# File lib/git/lint/analyzers/abstract.rb, line 15 def self.inherited klass super @descendants ||= [] @descendants << klass unless klass.to_s.start_with? "#<Class" # Ignore anonymous classes. end
label(= to_s.delete_prefix("Git::Lint::Analyzers").titleize)
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 23 def self.label = to_s.delete_prefix("Git::Lint::Analyzers").titleize def self.defaults fail NotImplementedError, "The `.#{__method__}` method must be implemented." end def self.descendants = @descendants || [] def self.build_issue_line(index, line) = {number: index + ISSUE_LINE_OFFSET, content: line} attr_reader :commit def initialize commit:, settings: self.class.defaults @commit = commit @settings = settings @filter_list = load_filter_list end def enabled? = settings.fetch(:enabled) def severity settings.fetch(:severity).tap do |level| fail Errors::Severity, level unless LEVELS.include? level end end def valid? fail NotImplementedError, "The `##{__method__}` method must be implemented." end def invalid? = !valid? def warning? = invalid? && severity == :warn def error? = invalid? && severity == :error def issue fail NotImplementedError, "The `##{__method__}` method must be implemented." end protected attr_reader :settings, :filter_list def load_filter_list = Kit::FilterList.new(settings[:list]) def affected_commit_body_lines commit.body_lines.each.with_object([]).with_index do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def affected_commit_trailers commit.trailers .each.with_object([]) .with_index(commit.trailers_index) do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def invalid_line? _line fail NotImplementedError, "The `.#{__method__}` method must be implemented." end end
new(commit:, settings: self.class.defaults)
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 35 def initialize commit:, settings: self.class.defaults @commit = commit @settings = settings @filter_list = load_filter_list end
Public Instance Methods
affected_commit_body_lines() { || ... }
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 69 def affected_commit_body_lines commit.body_lines.each.with_object([]).with_index do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end
affected_commit_trailers() { || ... }
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 76 def affected_commit_trailers commit.trailers .each.with_object([]) .with_index(commit.trailers_index) do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end
enabled?(= settings.fetch(:enabled))
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 41 def enabled? = settings.fetch(:enabled) def severity settings.fetch(:severity).tap do |level| fail Errors::Severity, level unless LEVELS.include? level end end def valid? fail NotImplementedError, "The `##{__method__}` method must be implemented." end def invalid? = !valid? def warning? = invalid? && severity == :warn def error? = invalid? && severity == :error def issue fail NotImplementedError, "The `##{__method__}` method must be implemented." end protected attr_reader :settings, :filter_list def load_filter_list = Kit::FilterList.new(settings[:list]) def affected_commit_body_lines commit.body_lines.each.with_object([]).with_index do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def affected_commit_trailers commit.trailers .each.with_object([]) .with_index(commit.trailers_index) do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def invalid_line? _line fail NotImplementedError, "The `.#{__method__}` method must be implemented." end end end end
error?(= invalid? && severity == :error)
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 57 def error? = invalid? && severity == :error def issue fail NotImplementedError, "The `##{__method__}` method must be implemented." end protected attr_reader :settings, :filter_list def load_filter_list = Kit::FilterList.new(settings[:list]) def affected_commit_body_lines commit.body_lines.each.with_object([]).with_index do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def affected_commit_trailers commit.trailers .each.with_object([]) .with_index(commit.trailers_index) do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def invalid_line? _line fail NotImplementedError, "The `.#{__method__}` method must be implemented." end end end
invalid?(= !valid?)
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 53 def invalid? = !valid? def warning? = invalid? && severity == :warn def error? = invalid? && severity == :error def issue fail NotImplementedError, "The `##{__method__}` method must be implemented." end protected attr_reader :settings, :filter_list def load_filter_list = Kit::FilterList.new(settings[:list]) def affected_commit_body_lines commit.body_lines.each.with_object([]).with_index do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def affected_commit_trailers commit.trailers .each.with_object([]) .with_index(commit.trailers_index) do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def invalid_line? _line fail NotImplementedError, "The `.#{__method__}` method must be implemented." end end end end end
invalid_line?(_line)
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 85 def invalid_line? _line fail NotImplementedError, "The `.#{__method__}` method must be implemented." end
issue()
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 59 def issue fail NotImplementedError, "The `##{__method__}` method must be implemented." end
load_filter_list(= Kit::FilterList.new(settings[:list]))
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 67 def load_filter_list = Kit::FilterList.new(settings[:list]) def affected_commit_body_lines commit.body_lines.each.with_object([]).with_index do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def affected_commit_trailers commit.trailers .each.with_object([]) .with_index(commit.trailers_index) do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def invalid_line? _line fail NotImplementedError, "The `.#{__method__}` method must be implemented." end end
severity()
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 43 def severity settings.fetch(:severity).tap do |level| fail Errors::Severity, level unless LEVELS.include? level end end
valid?()
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 49 def valid? fail NotImplementedError, "The `##{__method__}` method must be implemented." end
warning?(= invalid? && severity == :warn)
click to toggle source
# File lib/git/lint/analyzers/abstract.rb, line 55 def warning? = invalid? && severity == :warn def error? = invalid? && severity == :error def issue fail NotImplementedError, "The `##{__method__}` method must be implemented." end protected attr_reader :settings, :filter_list def load_filter_list = Kit::FilterList.new(settings[:list]) def affected_commit_body_lines commit.body_lines.each.with_object([]).with_index do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def affected_commit_trailers commit.trailers .each.with_object([]) .with_index(commit.trailers_index) do |(line, lines), index| yield if block_given? lines << self.class.build_issue_line(index, line) if invalid_line? line end end def invalid_line? _line fail NotImplementedError, "The `.#{__method__}` method must be implemented." end end end end