blob: ef3cbf5269b0263b3b474812e95a54a05e2718e9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# frozen_string_literal: true
module Ml
INITIAL_VERSION = '1.0.0'
ALLOWED_INCREMENT_TYPES = [:patch, :minor, :major].freeze
class IncrementVersionService
def initialize(version, increment_type = nil)
@version = version
@increment_type = increment_type || :major
@parsed_version = Packages::SemVer.parse(@version.to_s)
raise "Version must be in a valid SemVer format" unless @parsed_version || @version.nil?
return if ALLOWED_INCREMENT_TYPES.include?(@increment_type)
raise "Increment type must be one of :patch, :minor, or :major"
end
def execute
return INITIAL_VERSION if @version.nil?
case @increment_type
when :patch
@parsed_version.patch += 1
when :minor
@parsed_version.minor += 1
when :major
@parsed_version.major += 1
end
@parsed_version.to_s
end
end
end
|