class Versi::GenerateCommand::Interactors::ExtractReleaseTypeFromCommitMessage

Constants

MERGE_COMMIT_REGEXES

Public Instance Methods

call() click to toggle source
# File lib/versi/generate_command/interactors/extract_release_type_from_commit_message.rb, line 15
def call
  source_branch = extract_source_branch
  return if !source_branch
  
  context.release_type = extract_release_type_from_merge_source_branch(source_branch)
end

Private Instance Methods

extract_release_type_from_merge_source_branch(source_branch) click to toggle source
# File lib/versi/generate_command/interactors/extract_release_type_from_commit_message.rb, line 38
def extract_release_type_from_merge_source_branch(source_branch)
  if source_branch.start_with?("hotfix/")
    if source_branch =~ /feature/i
      Versi::Util::SemanticReleaseTypes::MINOR
    else
      Versi::Util::SemanticReleaseTypes::PATCH
    end
  elsif source_branch.start_with?("release/")
    Versi::Util::SemanticReleaseTypes::MINOR
  elsif source_branch.start_with?("major-release/")
    Versi::Util::SemanticReleaseTypes::MAJOR
  end
end
extract_source_branch() click to toggle source
# File lib/versi/generate_command/interactors/extract_release_type_from_commit_message.rb, line 28
def extract_source_branch
  MERGE_COMMIT_REGEXES.each do |regex|
    match_data = context.commit_message.match(regex)
    return match_data[1] if match_data && match_data[1]
  end
  # The nil here is to ensure that the nil value will be returned if
  # the commit_message doesn't match any regex
  nil
end
setup() click to toggle source
# File lib/versi/generate_command/interactors/extract_release_type_from_commit_message.rb, line 24
def setup
  raise(ArgumentError, "Missing commit_message argument") if !context.commit_message
end