class RakeCommit::CommitMessage

Constants

SUBJECT_MAX_LENGTH

Attributes

author[R]
feature[R]
message[R]

Public Class Methods

new(prompt_exclusions = [], type = MessageType::MESSAGE) click to toggle source
# File lib/rake_commit/commit_message.rb, line 14
def initialize(prompt_exclusions = [], type = MessageType::MESSAGE)
  @author = RakeCommit::PromptLine.new("author", prompt_exclusions).prompt
  @feature = RakeCommit::PromptLine.new("feature", prompt_exclusions).prompt
  @message = case type
    when MessageType::MESSAGE
      RakeCommit::PromptLine.new("message", prompt_exclusions).prompt
    when MessageType::WHAT_AND_WHY
      what = RakeCommit::PromptLine.new("what", prompt_exclusions).prompt
      why = RakeCommit::PromptLine.new("why", prompt_exclusions).prompt

      subject_space_remaining = SUBJECT_MAX_LENGTH - @feature.length
      truncated_what = what[0...subject_space_remaining]
      subject = RakeCommit::PromptLine.new("subject", prompt_exclusions, truncated_what).prompt

      create_message_with_subject_what_and_why(subject, what, why)
    end
end

Public Instance Methods

joined_message(wrap = nil) click to toggle source
# File lib/rake_commit/commit_message.rb, line 32
def joined_message(wrap = nil)
  message = [@feature, @message].compact.join(' - ')
  message = WordWrap.ww(message, wrap) if wrap
  message
end
joined_message_with_author(wrap = nil) click to toggle source
# File lib/rake_commit/commit_message.rb, line 38
def joined_message_with_author(wrap = nil)
  message = [@author, @feature, @message].compact.join(' - ')
  message = WordWrap.ww(message, wrap) if wrap
  message
end

Private Instance Methods

create_message_with_subject_what_and_why(subject, what, why) click to toggle source
# File lib/rake_commit/commit_message.rb, line 46
    def create_message_with_subject_what_and_why(subject, what, why)
      <<-EOS
#{subject}

What
===
#{what}

Why
===
#{why}
EOS
    end