Class: Ace::GitCommit::Models::SplitCommitResult

Inherits:
Object
  • Object
show all
Defined in:
lib/ace/git_commit/models/split_commit_result.rb

Overview

SplitCommitResult tracks results for split commit execution

Defined Under Namespace

Classes: CommitRecord

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(original_head: nil) ⇒ SplitCommitResult



12
13
14
15
16
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 12

def initialize(original_head: nil)
  @records = []
  @original_head = original_head
  @rollback_error = nil
end

Instance Attribute Details

#original_headObject (readonly)

Returns the value of attribute original_head.



10
11
12
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 10

def original_head
  @original_head
end

#recordsObject (readonly)

Returns the value of attribute records.



10
11
12
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 10

def records
  @records
end

#rollback_errorObject (readonly)

Returns the value of attribute rollback_error.



10
11
12
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 10

def rollback_error
  @rollback_error
end

Instance Method Details

#add_dry_run(group) ⇒ Object



22
23
24
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 22

def add_dry_run(group)
  @records << CommitRecord.new(group: group, sha: nil, status: :dry_run, error: nil)
end

#add_failure(group, error) ⇒ Object



26
27
28
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 26

def add_failure(group, error)
  @records << CommitRecord.new(group: group, sha: nil, status: :failure, error: error)
end

#add_skipped(group, reason) ⇒ Object



30
31
32
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 30

def add_skipped(group, reason)
  @records << CommitRecord.new(group: group, sha: nil, status: :skipped, error: reason)
end

#add_success(group, sha) ⇒ Object



18
19
20
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 18

def add_success(group, sha)
  @records << CommitRecord.new(group: group, sha: sha, status: :success, error: nil)
end

#commit_shasObject



34
35
36
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 34

def commit_shas
  records.map(&:sha).compact
end

#dry_run?Boolean



46
47
48
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 46

def dry_run?
  records.any? { |record| record.status == :dry_run }
end

#failed?Boolean



50
51
52
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 50

def failed?
  !success?
end

#mark_rollback_error(error) ⇒ Object



54
55
56
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 54

def mark_rollback_error(error)
  @rollback_error = error
end

#skipped?Boolean



42
43
44
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 42

def skipped?
  records.any? { |record| record.status == :skipped }
end

#success?Boolean



38
39
40
# File 'lib/ace/git_commit/models/split_commit_result.rb', line 38

def success?
  records.all? { |record| record.status == :success || record.status == :dry_run || record.status == :skipped }
end