Module: Igniter::Extensions::Contracts::Saga::Formatter

Defined in:
lib/igniter/extensions/contracts/saga/formatter.rb

Class Method Summary collapse

Class Method Details

.append_compensations(result, lines) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/igniter/extensions/contracts/saga/formatter.rb', line 24

def append_compensations(result, lines)
  return if result.compensations.empty?

  lines << ""
  lines << "COMPENSATIONS (#{result.compensations.length}):"
  result.compensations.each do |record|
    tag = record.success? ? "[ok]   " : "[fail] "
    lines << "  #{tag} :#{record.node_name}"
    lines << "    error: #{record.error.message}" if record.failed?
  end
end

.format(result) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/igniter/extensions/contracts/saga/formatter.rb', line 10

def format(result)
  lines = []
  lines << "Status:   #{result.success? ? "SUCCESS" : "FAILED"}"
  lines << "Profile:  #{result.execution_result.profile_fingerprint}"

  unless result.success?
    lines << "Error:    #{result.error.message}"
    lines << "At node:  :#{result.failed_node}" if result.failed_node
  end

  append_compensations(result, lines)
  lines.join("\n")
end