Class: CaptiveRelease::VersionBumper

Inherits:
Object
  • Object
show all
Defined in:
lib/captive_release/version_bumper.rb

Constant Summary collapse

SEMVER_RE =
/\A\d+\.\d+\.\d+\z/

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(current) ⇒ VersionBumper

Returns a new instance of VersionBumper.

Raises:

  • (ArgumentError)


11
12
13
14
15
# File 'lib/captive_release/version_bumper.rb', line 11

def initialize(current)
  raise ArgumentError, "Invalid semver: #{current}" unless current.match?(SEMVER_RE)

  @major, @minor, @patch = current.split(".").map(&:to_i)
end

Class Method Details

.bump(current, type) ⇒ Object



7
8
9
# File 'lib/captive_release/version_bumper.rb', line 7

def self.bump(current, type)
  new(current).bump(type)
end

Instance Method Details

#bump(type) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/captive_release/version_bumper.rb', line 17

def bump(type)
  case type.to_s
  when "major" then "#{@major + 1}.0.0"
  when "minor" then "#{@major}.#{@minor + 1}.0"
  when "patch" then "#{@major}.#{@minor}.#{@patch + 1}"
  else
    raise ArgumentError, "Invalid version: #{type}" unless type.to_s.match?(SEMVER_RE)

    type.to_s
  end
end