Class: Overcommit::Hook::CommitMsg::TextWidth

Inherits:
Base
  • Object
show all
Defined in:
lib/overcommit/hook/commit_msg/text_width.rb

Overview

Ensures the number of columns the subject and commit message lines occupy is under the preferred limits.

Instance Method Summary collapse

Methods inherited from Base

#applicable_files, #description, #enabled?, #execute, #in_path?, #initialize, #name, #quiet?, #required?, #run?, #skip?

Constructor Details

This class inherits a constructor from Overcommit::Hook::Base

Instance Method Details

#runObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/overcommit/hook/commit_msg/text_width.rb', line 5

def run
  errors = []

  max_subject_width = @config['max_subject_width']
  max_body_width = @config['max_body_width']

  if commit_message_lines.first.size > max_subject_width
    errors << "Please keep the subject <= #{max_subject_width} characters"
  end

  if commit_message_lines.size > 2
    commit_message_lines[2..-1].each_with_index do |line, index|
      chomped = line.chomp
      if chomped.size > max_body_width
        error = "Line #{index + 3} of commit message has > " \
                "#{max_body_width} characters"
        errors << error
      end
    end
  end

  return :warn, errors.join("\n") if errors.any?

  :good
end