Class: Git::Lint::Analyzers::Abstract
- Inherits:
-
Object
- Object
- Git::Lint::Analyzers::Abstract
show all
- Defined in:
- lib/git/lint/analyzers/abstract.rb
Overview
An abstract class which provides basic functionality from which all analyzers inherit from.
Direct Known Subclasses
CommitAuthorCapitalization, CommitAuthorEmail, CommitAuthorName, CommitBodyBullet, CommitBodyBulletCapitalization, CommitBodyBulletDelimiter, CommitBodyLeadingLine, CommitBodyLineLength, CommitBodyParagraphCapitalization, CommitBodyPhrase, CommitBodyPresence, CommitBodySingleBullet, CommitBodyTrackerShorthand, CommitSubjectLength, CommitSubjectPrefix, CommitSubjectSuffix, CommitTrailerCollaboratorCapitalization, CommitTrailerCollaboratorDuplication, CommitTrailerCollaboratorEmail, CommitTrailerCollaboratorKey, CommitTrailerCollaboratorName
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
#commit ⇒ Object
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}
|
.id ⇒ Object
17
|
# File 'lib/git/lint/analyzers/abstract.rb', line 17
def self.id = to_s.delete_prefix("Git::Lint::Analyzers").snakecase.to_sym
|
.label ⇒ Object
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
31
|
# File 'lib/git/lint/analyzers/abstract.rb', line 31
def enabled? = settings.enabled
|
#error? ⇒ Boolean
47
|
# File 'lib/git/lint/analyzers/abstract.rb', line 47
def error? = invalid? && severity == :error
|
#invalid? ⇒ Boolean
43
|
# File 'lib/git/lint/analyzers/abstract.rb', line 43
def invalid? = !valid?
|
#issue ⇒ Object
49
50
51
|
# File 'lib/git/lint/analyzers/abstract.rb', line 49
def issue
fail NotImplementedError, "The `##{__method__}` method must be implemented."
end
|
#severity ⇒ Object
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
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
45
|
# File 'lib/git/lint/analyzers/abstract.rb', line 45
def warning? = invalid? && severity == :warn
|