class Git::Cop::Styles::CommitBodyPhrase

Public Class Methods

defaults() click to toggle source

rubocop:disable Metrics/MethodLength

# File lib/git/cop/styles/commit_body_phrase.rb, line 8
def self.defaults
  {
    enabled: true,
    severity: :error,
    blacklist: [
      "basically",
      /\beasy\b/,
      "everyone knows",
      "however",
      /\bjust\b/,
      "obviously",
      "of course",
      "simply"
    ]
  }
end

Public Instance Methods

issue() click to toggle source
# File lib/git/cop/styles/commit_body_phrase.rb, line 29
def issue
  return {} if valid?

  {
    hint: %(Avoid: #{graylist.to_hint}.),
    lines: affected_lines
  }
end
valid?() click to toggle source
# File lib/git/cop/styles/commit_body_phrase.rb, line 25
def valid?
  commit.body_lines.all? { |line| valid_line? line }
end

Protected Instance Methods

load_graylist() click to toggle source
# File lib/git/cop/styles/commit_body_phrase.rb, line 40
def load_graylist
  Kit::Graylist.new settings.fetch(:blacklist)
end

Private Instance Methods

affected_lines() click to toggle source
# File lib/git/cop/styles/commit_body_phrase.rb, line 53
def affected_lines
  commit.body_lines.each.with_object([]).with_index do |(line, lines), index|
    lines << self.class.build_issue_line(index, line) unless valid_line?(line)
  end
end
valid_line?(line) click to toggle source
# File lib/git/cop/styles/commit_body_phrase.rb, line 46
def valid_line? line
  !line.downcase.match? Regexp.new(
    Regexp.union(graylist.to_regexp).source,
    Regexp::IGNORECASE
  )
end