Class: Git::Lint::Analyzers::Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/git/lint/analyzers/abstract.rb

Overview

An abstract class which provides basic functionality from which all analyzers inherit from.

Constant Summary collapse

LEVELS =
%i[warn error].freeze
ISSUE_LINE_OFFSET =
2

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(commit, **dependencies) ⇒ Abstract

Returns a new instance of Abstract.



25
26
27
28
29
# File 'lib/git/lint/analyzers/abstract.rb', line 25

def initialize commit, **dependencies
  super(**dependencies)
  @commit = commit
  @filter_list = load_filter_list
end

Instance Attribute Details

#commitObject (readonly)

Returns the value of attribute commit.



23
24
25
# File 'lib/git/lint/analyzers/abstract.rb', line 23

def commit
  @commit
end

Class Method Details

.build_issue_line(index, line) ⇒ Object



21
# File 'lib/git/lint/analyzers/abstract.rb', line 21

def self.build_issue_line(index, line) = {number: index + ISSUE_LINE_OFFSET, content: line}

.idObject



17
# File 'lib/git/lint/analyzers/abstract.rb', line 17

def self.id = to_s.delete_prefix("Git::Lint::Analyzers").snakecase.to_sym

.labelObject



19
# File 'lib/git/lint/analyzers/abstract.rb', line 19

def self.label = to_s.delete_prefix("Git::Lint::Analyzers").titleize

Instance Method Details

#enabled?Boolean

Returns:

  • (Boolean)


31
# File 'lib/git/lint/analyzers/abstract.rb', line 31

def enabled? = settings.enabled

#error?Boolean

Returns:

  • (Boolean)


47
# File 'lib/git/lint/analyzers/abstract.rb', line 47

def error? = invalid? && severity == :error

#invalid?Boolean

Returns:

  • (Boolean)


43
# File 'lib/git/lint/analyzers/abstract.rb', line 43

def invalid? = !valid?

#issueObject



49
50
51
# File 'lib/git/lint/analyzers/abstract.rb', line 49

def issue
  fail NotImplementedError, "The `##{__method__}` method must be implemented."
end

#severityObject



33
34
35
36
37
# File 'lib/git/lint/analyzers/abstract.rb', line 33

def severity
  settings.severity.tap do |level|
    fail Errors::Severity, level unless LEVELS.include? level
  end
end

#valid?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/git/lint/analyzers/abstract.rb', line 39

def valid?
  fail NotImplementedError, "The `##{__method__}` method must be implemented."
end

#warning?Boolean

Returns:

  • (Boolean)


45
# File 'lib/git/lint/analyzers/abstract.rb', line 45

def warning? = invalid? && severity == :warn