module ReleaseNotes::Versioning::Semantic

Public Class Methods

increment(version, type) click to toggle source
# File lib/release_notes/versioning/semantic.rb, line 6
def increment(version, type)
  if version.nil?
    ReleaseNotes.starting_version
  else
    parts = parse_version(version.gsub('.md', ''))

    if type.downcase == 'major' or type == 'M'
      parts = increment_major(parts)
    elsif type.downcase == 'minor' or type == 'm'
      parts = increment_minor(parts)
    else
      parts = increment_patch(parts)
    end
      
    new_version = parts.join('.')
    new_version
  end
end

Protected Class Methods

increment_major(parts) click to toggle source
# File lib/release_notes/versioning/semantic.rb, line 30
def increment_major(parts)
  parts[0] = (parts[0].to_i + 1).to_s
  parts[1] = '0'
  parts[2] = '0'
  parts
end
increment_minor(parts) click to toggle source
# File lib/release_notes/versioning/semantic.rb, line 37
def increment_minor(parts)
  parts[1] = (parts[1].to_i + 1).to_s
  parts[2] = '0'
  parts
end
increment_patch(parts) click to toggle source
# File lib/release_notes/versioning/semantic.rb, line 43
def increment_patch(parts)
  parts[2] = (parts[2].to_i + 1).to_s
  parts
end
parse_version(version) click to toggle source
# File lib/release_notes/versioning/semantic.rb, line 26
def parse_version(version)
  version.split('-').first.split('.')
end