Class: Gempilot::VersionTag
- Inherits:
-
Object
- Object
- Gempilot::VersionTag
- Includes:
- StrictShell
- Defined in:
- lib/gempilot/version_tag.rb
Overview
Manages git operations for version releases.
Instance Attribute Summary collapse
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Instance Method Summary collapse
- #create ⇒ Object
-
#initialize(version) ⇒ VersionTag
constructor
A new instance of VersionTag.
- #reset ⇒ Object
- #revert ⇒ Object
- #tag ⇒ Object
- #untag ⇒ Object
Constructor Details
#initialize(version) ⇒ VersionTag
Returns a new instance of VersionTag.
10 11 12 |
# File 'lib/gempilot/version_tag.rb', line 10 def initialize(version) @version = version end |
Instance Attribute Details
#version ⇒ Object (readonly)
Returns the value of attribute version.
8 9 10 |
# File 'lib/gempilot/version_tag.rb', line 8 def version @version end |
Instance Method Details
#create ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/gempilot/version_tag.rb', line 14 def create _, _, status = Open3.capture3("git", "diff", "--staged", "--quiet") raise "Cannot proceed, staging area must be clean" unless status.success? sh "git", "add", version.path.to_s sh "git", "commit", "-m", "Bump version to #{version.value}" end |
#reset ⇒ Object
32 33 34 35 36 |
# File 'lib/gempilot/version_tag.rb', line 32 def reset assert_last_commit_is_bump! sh "git", "reset", "--quiet", "--mixed", "HEAD~1" sh "git", "restore", version.path.to_s end |
#revert ⇒ Object
38 39 40 41 |
# File 'lib/gempilot/version_tag.rb', line 38 def revert assert_last_commit_is_bump! sh "git", "revert", "HEAD", "--no-edit" end |
#tag ⇒ Object
22 23 24 25 |
# File 'lib/gempilot/version_tag.rb', line 22 def tag assert_last_commit_is_bump! sh "git", "tag", version.tag end |
#untag ⇒ Object
27 28 29 30 |
# File 'lib/gempilot/version_tag.rb', line 27 def untag assert_last_commit_is_bump! sh "git", "tag", "--delete", version.tag end |