Class: Git::Lint::Analyzers::Commits::Subjects::Duplicate
- Defined in:
- lib/git/lint/analyzers/commits/subjects/duplicate.rb
Overview
Analyzes and detects duplicate subjects.
Constant Summary
Constants inherited from Abstract
Abstract::BODY_OFFSET, Abstract::LEVELS
Instance Attribute Summary
Attributes inherited from Abstract
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(commits) ⇒ Duplicate
constructor
A new instance of Duplicate.
- #issue ⇒ Object
- #valid? ⇒ Boolean
Methods inherited from Abstract
build_issue_line, #error?, #invalid?, #severity, #warning?
Constructor Details
#initialize(commits) ⇒ Duplicate
Returns a new instance of Duplicate.
18 19 20 21 |
# File 'lib/git/lint/analyzers/commits/subjects/duplicate.rb', line 18 def initialize(commits, **) super(nil, **) @commits = commits end |
Class Method Details
.id ⇒ Object
14 |
# File 'lib/git/lint/analyzers/commits/subjects/duplicate.rb', line 14 def self.id = "commits_subject_duplicate" |
.label ⇒ Object
16 |
# File 'lib/git/lint/analyzers/commits/subjects/duplicate.rb', line 16 def self.label = "Commit Subject Duplicate" |
Instance Method Details
#issue ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/git/lint/analyzers/commits/subjects/duplicate.rb', line 25 def issue return {} if valid? { hint: "Use unique subjects.", references: normals.map { |commit| "#{commit.sha} #{commit.subject}" } } end |
#valid? ⇒ Boolean
23 |
# File 'lib/git/lint/analyzers/commits/subjects/duplicate.rb', line 23 def valid? = normals.map(&:subject).tally.all? { |_subject, total| total == 1 } |