Module: Vtasks::Utils::Semver

Included in:
Vtasks, Docker::Image, Release
Defined in:
lib/vtasks/utils/semver.rb

Overview

Semver module

Constant Summary collapse

SEM_LEVELS =
[:major, :minor, :patch].freeze

Instance Method Summary collapse

Instance Method Details

#bump(level) ⇒ Object

Increment the version number



22
23
24
25
26
27
28
# File 'lib/vtasks/utils/semver.rb', line 22

def bump(level)
  new_version = semver.dup
  new_version[level] = new_version[level].to_i + 1
  to_zero = SEM_LEVELS[SEM_LEVELS.index(level) + 1..SEM_LEVELS.size]
  to_zero.each { |z| new_version[z] = 0 }
  new_version
end

#gitverObject

Semantic version (from git tags)



8
9
10
# File 'lib/vtasks/utils/semver.rb', line 8

def gitver
  `git describe --always --tags 2>/dev/null || echo '0.0.0-0-0'`.chomp
end

#semverObject

Create semantic version hash



13
14
15
16
17
18
19
# File 'lib/vtasks/utils/semver.rb', line 13

def semver
  @semver ||= begin
    {}.tap do |h|
      h[:major], h[:minor], h[:patch], h[:rev], h[:rev_hash] = gitver[1..-1].split(/[.-]/)
    end
  end
end