Class: Igniter::Contracts::Execution::ValidationReport

Inherits:
Object
  • Object
show all
Defined in:
lib/igniter/contracts/execution/validation_report.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(operations:, findings:, profile_fingerprint:) ⇒ ValidationReport

Returns a new instance of ValidationReport.



9
10
11
12
13
14
# File 'lib/igniter/contracts/execution/validation_report.rb', line 9

def initialize(operations:, findings:, profile_fingerprint:)
  @operations = operations.freeze
  @findings = findings.freeze
  @profile_fingerprint = profile_fingerprint
  freeze
end

Instance Attribute Details

#findingsObject (readonly)

Returns the value of attribute findings.



7
8
9
# File 'lib/igniter/contracts/execution/validation_report.rb', line 7

def findings
  @findings
end

#operationsObject (readonly)

Returns the value of attribute operations.



7
8
9
# File 'lib/igniter/contracts/execution/validation_report.rb', line 7

def operations
  @operations
end

#profile_fingerprintObject (readonly)

Returns the value of attribute profile_fingerprint.



7
8
9
# File 'lib/igniter/contracts/execution/validation_report.rb', line 7

def profile_fingerprint
  @profile_fingerprint
end

Instance Method Details

#invalid?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/igniter/contracts/execution/validation_report.rb', line 20

def invalid?
  !ok?
end

#ok?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/igniter/contracts/execution/validation_report.rb', line 16

def ok?
  findings.empty?
end

#raise_if_invalid!Object

Raises:



24
25
26
27
28
# File 'lib/igniter/contracts/execution/validation_report.rb', line 24

def raise_if_invalid!
  return self if ok?

  raise ValidationError.new(findings: findings)
end

#to_compiled_graphObject



30
31
32
33
# File 'lib/igniter/contracts/execution/validation_report.rb', line 30

def to_compiled_graph
  raise_if_invalid!
  CompiledGraph.new(operations: operations, profile_fingerprint: profile_fingerprint)
end

#to_hObject



35
36
37
38
39
40
41
42
# File 'lib/igniter/contracts/execution/validation_report.rb', line 35

def to_h
  {
    operations: StructuredDump.dump(operations),
    findings: StructuredDump.dump(findings),
    profile_fingerprint: profile_fingerprint,
    ok: ok?
  }
end