Class: AppVersionTasks::SemanticVersion

Inherits:
Object
  • Object
show all
Defined in:
lib/app_version_tasks/semantic_version.rb

Overview

Manage application semantic version

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSemanticVersion

Returns a new instance of SemanticVersion.



10
11
12
13
# File 'lib/app_version_tasks/semantic_version.rb', line 10

def initialize
  @version_file = SemanticVersionFile.new
  @major, @minor, @patch = version_file.version_parts
end

Instance Attribute Details

#majorObject (readonly)

Semantic version attributes



8
9
10
# File 'lib/app_version_tasks/semantic_version.rb', line 8

def major
  @major
end

#minorObject (readonly)

Semantic version attributes



8
9
10
# File 'lib/app_version_tasks/semantic_version.rb', line 8

def minor
  @minor
end

#patchObject (readonly)

Semantic version attributes



8
9
10
# File 'lib/app_version_tasks/semantic_version.rb', line 8

def patch
  @patch
end

Instance Method Details

#bump(category) ⇒ Object

Bump semantic version category

Parameters:

  • category (String|Symbol)

    (:major, :minor, :patch)



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

def bump(category)
  case category.to_sym
  when :major
    bump_major
  when :minor
    bump_minor
  when :patch
    bump_patch
  end
  bump_version
end

#releaseObject



29
30
31
32
# File 'lib/app_version_tasks/semantic_version.rb', line 29

def release
  return 'Aborting - checkout correct branch and try again.' unless git_release_branch?
  git_release
end

#versionObject



34
35
36
# File 'lib/app_version_tasks/semantic_version.rb', line 34

def version
  [major, minor, patch].join('.')
end