Sha256: 15c87e40bdadc05121a52d02ef685a0276789d69c829f35f9c788b8dfc582036

Contents?: true

Size: 653 Bytes

Versions: 15

Compression:

Stored size: 653 Bytes

Contents

module Overcommit::Hook::CommitMsg
  # Ensures commit message subject lines start with a capital letter.
  class CapitalizedSubject < Base
    def run
      return :pass if empty_message?

      # Git treats the first non-empty line as the subject
      subject = commit_message_lines.find { |line| !line.strip.empty? }.to_s
      first_letter = subject.match(/^[[:punct:]]*(.)/)[1]
      unless special_prefix?(subject) || first_letter =~ /[[:upper:]]/
        return :warn, 'Subject should start with a capital letter'
      end

      :pass
    end

    private

    def special_prefix?(subject)
      subject =~ /^(fixup|squash)!/
    end
  end
end

Version data entries

15 entries across 13 versions & 2 rubygems

Version Path
config_gems_initialization_aim-0.1.4 vendor/bundle/ruby/2.5.0/gems/config_gems_initialization_aim-0.1.1/vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/commit_msg/capitalized_subject.rb
config_gems_initialization_aim-0.1.4 vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/commit_msg/capitalized_subject.rb
config_gems_initialization_aim-0.1.3 vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/commit_msg/capitalized_subject.rb
config_gems_initialization_aim-0.1.3 vendor/bundle/ruby/2.5.0/gems/config_gems_initialization_aim-0.1.1/vendor/bundle/ruby/2.5.0/gems/overcommit-0.46.0/lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.46.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.45.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.44.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.43.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.42.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.41.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.40.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.39.1 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.39.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.38.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.37.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb