class Renegade::CommitMessage
Check commit messages meet certain criteria
Constants
- COMMIT_FORMAT
Attributes
errors[R]
warnings[R]
Public Class Methods
new()
click to toggle source
# File lib/renegade/commit_message.rb, line 10 def initialize # Instance variables @warnings = [] @errors = [] @min_length = 7 @max_length = 50 end
Public Instance Methods
check_commit_message_format(message)
click to toggle source
Check commit message contains no non-ASCII characters
# File lib/renegade/commit_message.rb, line 58 def check_commit_message_format(message) check_label = 'Includes a valid BugId, Story or Epic number' matches = COMMIT_FORMAT.match(message) if matches Status.report(check_label, true) check_commit_message_length(matches[1]) else Status.report(check_label, false) check_commit_message_length(message) @errors.push(check_commit_message_format_error) end end
check_commit_message_format_error()
click to toggle source
# File lib/renegade/commit_message.rb, line 49 def check_commit_message_format_error "You must include a valid BugId, Story or Epic number.\n"\ " Examples:\n"\ " - BugId: 12345 | Helpful comment describing bug fix\n"\ " - Story: B-12345 | Helpful comment describing story\n"\ ' - Epic: E-12345 | Epic comment' end
check_commit_message_length(message)
click to toggle source
Check message length
# File lib/renegade/commit_message.rb, line 25 def check_commit_message_length(message) check_label = 'Commit message length' if message.length >= @min_length && message.length <= @max_length Status.report(check_label, true) else @errors.push "Commit messages should be between #{@min_length} "\ "and #{@max_length} characters." Status.report(check_label, false) end end
check_commit_message_non_ascii(message)
click to toggle source
Check commit message contains no non-ASCII characters
# File lib/renegade/commit_message.rb, line 38 def check_commit_message_non_ascii(message) check_label = 'Only ASCII characters' if message.ascii_only? Status.report(check_label, true) else Status.report(check_label, false) @errors.push('Commit messages may not contain non-ASCII characters') end end
run(message)
click to toggle source
# File lib/renegade/commit_message.rb, line 19 def run(message) check_commit_message_format(message) check_commit_message_non_ascii(message) end