Class: ChurnVsComplexity::Timetravel::Worktree
- Inherits:
-
Object
- Object
- ChurnVsComplexity::Timetravel::Worktree
- Defined in:
- lib/churn_vs_complexity/timetravel/worktree.rb
Defined Under Namespace
Classes: Error
Instance Attribute Summary collapse
-
#folder ⇒ Object
readonly
Returns the value of attribute folder.
Instance Method Summary collapse
- #checkout(sha) ⇒ Object
-
#initialize(root_folder:, git_strategy:, number:) ⇒ Worktree
constructor
A new instance of Worktree.
- #prepare ⇒ Object
- #remove ⇒ Object
Constructor Details
#initialize(root_folder:, git_strategy:, number:) ⇒ Worktree
Returns a new instance of Worktree.
8 9 10 11 12 |
# File 'lib/churn_vs_complexity/timetravel/worktree.rb', line 8 def initialize(root_folder:, git_strategy:, number:) @root_folder = root_folder @git_strategy = git_strategy @number = number end |
Instance Attribute Details
#folder ⇒ Object (readonly)
Returns the value of attribute folder.
6 7 8 |
# File 'lib/churn_vs_complexity/timetravel/worktree.rb', line 6 def folder @folder end |
Instance Method Details
#checkout(sha) ⇒ Object
20 21 22 23 24 |
# File 'lib/churn_vs_complexity/timetravel/worktree.rb', line 20 def checkout(sha) raise Error, 'Worktree not prepared' if @folder.nil? @git_strategy.checkout_in_worktree(@folder, sha) end |
#prepare ⇒ Object
14 15 16 17 18 |
# File 'lib/churn_vs_complexity/timetravel/worktree.rb', line 14 def prepare @folder = prepare_worktree rescue StandardError => e raise Error, "Failed to prepare worktree: #{e.message}" end |
#remove ⇒ Object
26 27 28 29 30 |
# File 'lib/churn_vs_complexity/timetravel/worktree.rb', line 26 def remove raise Error, 'Worktree not prepared' if @folder.nil? @git_strategy.remove_worktree(@folder) end |