class GitSemverCop::Semver

Class for modifying and detecting semver

Public Class Methods

new() click to toggle source
# File lib/git-semver-cop/semver.rb, line 5
def initialize
  @semver = `git status -z .semver`.strip
end

Public Instance Methods

added?() click to toggle source
# File lib/git-semver-cop/semver.rb, line 38
def added?
  @semver =~ /(M|A)  .semver/
end
ask_add_changes() click to toggle source

# Get user input

# File lib/git-semver-cop/semver.rb, line 19
def ask_add_changes
  puts ".semver was modified. Add the file to the commit?\n[y|n]"
  add_to_git if gets.chomp =~ /^y$/i
end
ask_increment() click to toggle source
# File lib/git-semver-cop/semver.rb, line 24
def ask_increment
  puts "How big of an increment is this? (semver: M.m.p)\n"\
       "[n] none (default)\n[p] patch\n[m] minor\n[M] Major"
  inc = gets.chomp
  val = %w(none patch minor Major).find { |v| v =~ /^#{inc[0]}/ }
  val == "none" ? exit(0) : semver_inc(val)
end
enforce() click to toggle source
# File lib/git-semver-cop/semver.rb, line 9
def enforce
  if    none?     then semver_init
  elsif added?    # Nothing to do
  elsif modified? then ask_add_changes
  else  ask_increment
  end
end
modified?() click to toggle source
# File lib/git-semver-cop/semver.rb, line 42
def modified?
  @semver =~ /(M|A) .semver/
end
none?() click to toggle source

# Check status of semver file

# File lib/git-semver-cop/semver.rb, line 34
def none?
  !File.exist?(".semver")
end

Private Instance Methods

add_to_git() click to toggle source

# Command line operations

# File lib/git-semver-cop/semver.rb, line 50
def add_to_git
  system("git add .semver")
end
semver_inc(inc) click to toggle source
# File lib/git-semver-cop/semver.rb, line 59
def semver_inc(inc)
  system("semver inc #{inc}")
  add_to_git
end
semver_init() click to toggle source
# File lib/git-semver-cop/semver.rb, line 54
def semver_init
  puts "Creating a new .semver file"
  system("semver init")
end