Class: Igniter::Extensions::Contracts::Invariants::Report
- Inherits:
-
Object
- Object
- Igniter::Extensions::Contracts::Invariants::Report
- Defined in:
- lib/igniter/extensions/contracts/invariants/report.rb
Instance Attribute Summary collapse
-
#execution_result ⇒ Object
readonly
Returns the value of attribute execution_result.
-
#outputs ⇒ Object
readonly
Returns the value of attribute outputs.
-
#suite ⇒ Object
readonly
Returns the value of attribute suite.
-
#violations ⇒ Object
readonly
Returns the value of attribute violations.
Instance Method Summary collapse
-
#initialize(suite:, outputs:, violations:, execution_result: nil) ⇒ Report
constructor
A new instance of Report.
- #invalid? ⇒ Boolean
- #summary ⇒ Object
- #to_h ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(suite:, outputs:, violations:, execution_result: nil) ⇒ Report
Returns a new instance of Report.
10 11 12 13 14 15 16 |
# File 'lib/igniter/extensions/contracts/invariants/report.rb', line 10 def initialize(suite:, outputs:, violations:, execution_result: nil) @suite = suite @outputs = outputs.transform_keys(&:to_sym).freeze @violations = Array(violations).freeze @execution_result = execution_result freeze end |
Instance Attribute Details
#execution_result ⇒ Object (readonly)
Returns the value of attribute execution_result.
8 9 10 |
# File 'lib/igniter/extensions/contracts/invariants/report.rb', line 8 def execution_result @execution_result end |
#outputs ⇒ Object (readonly)
Returns the value of attribute outputs.
8 9 10 |
# File 'lib/igniter/extensions/contracts/invariants/report.rb', line 8 def outputs @outputs end |
#suite ⇒ Object (readonly)
Returns the value of attribute suite.
8 9 10 |
# File 'lib/igniter/extensions/contracts/invariants/report.rb', line 8 def suite @suite end |
#violations ⇒ Object (readonly)
Returns the value of attribute violations.
8 9 10 |
# File 'lib/igniter/extensions/contracts/invariants/report.rb', line 8 def violations @violations end |
Instance Method Details
#invalid? ⇒ Boolean
22 23 24 |
# File 'lib/igniter/extensions/contracts/invariants/report.rb', line 22 def invalid? !valid? end |
#summary ⇒ Object
26 27 28 29 30 |
# File 'lib/igniter/extensions/contracts/invariants/report.rb', line 26 def summary return "valid" if valid? "invalid - #{violations.length} invariant(s) violated: #{violations.map(&:name).join(", ")}" end |
#to_h ⇒ Object
32 33 34 35 36 37 38 39 40 |
# File 'lib/igniter/extensions/contracts/invariants/report.rb', line 32 def to_h { valid: valid?, outputs: outputs, invariants: suite.names, violations: violations.map(&:to_h), execution_result: execution_result&.to_h } end |
#valid? ⇒ Boolean
18 19 20 |
# File 'lib/igniter/extensions/contracts/invariants/report.rb', line 18 def valid? violations.empty? end |