Class: GitSemverCop::Semver

Inherits:
Object
  • Object
show all
Defined in:
lib/git-semver-cop/semver.rb

Overview

Class for modifying and detecting semver

Instance Method Summary collapse

Constructor Details

#initializeSemver

Returns a new instance of Semver.



5
6
7
# File 'lib/git-semver-cop/semver.rb', line 5

def initialize
  @semver = `git status -z .semver`.strip
end

Instance Method Details

#added?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/git-semver-cop/semver.rb', line 36

def added?
  @semver =~ /(M|A)  .semver/
end

#ask_add_changesObject

# Get user input



19
20
21
22
# 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_incrementObject



24
25
26
27
28
# File 'lib/git-semver-cop/semver.rb', line 24

def ask_increment
  puts "How big of an increment is this?\n[#{inc_opts.join('|')}]"
  inc = gets.chomp
  inc_opts.include?(inc) ? semver_inc(inc) : exit(0)
end

#enforceObject



9
10
11
12
13
14
15
# 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?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/git-semver-cop/semver.rb', line 40

def modified?
  @semver =~ /(M|A) .semver/
end

#none?Boolean

# Check status of semver file

Returns:

  • (Boolean)


32
33
34
# File 'lib/git-semver-cop/semver.rb', line 32

def none?
  !File.exist?(".semver")
end