Class: Igniter::Extensions::Contracts::Capabilities::Report
- Inherits:
-
Object
- Object
- Igniter::Extensions::Contracts::Capabilities::Report
- Defined in:
- lib/igniter/extensions/contracts/capabilities/report.rb
Instance Attribute Summary collapse
-
#profile_capabilities ⇒ Object
readonly
Returns the value of attribute profile_capabilities.
-
#required_capabilities ⇒ Object
readonly
Returns the value of attribute required_capabilities.
-
#undeclared_nodes ⇒ Object
readonly
Returns the value of attribute undeclared_nodes.
-
#violations ⇒ Object
readonly
Returns the value of attribute violations.
Instance Method Summary collapse
-
#initialize(required_capabilities:, profile_capabilities:, violations:, undeclared_nodes:) ⇒ Report
constructor
A new instance of Report.
- #invalid? ⇒ Boolean
- #summary ⇒ Object
- #to_h ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(required_capabilities:, profile_capabilities:, violations:, undeclared_nodes:) ⇒ Report
Returns a new instance of Report.
10 11 12 13 14 15 16 17 18 |
# File 'lib/igniter/extensions/contracts/capabilities/report.rb', line 10 def initialize(required_capabilities:, profile_capabilities:, violations:, undeclared_nodes:) @required_capabilities = required_capabilities.transform_keys(&:to_sym).transform_values do |value| Array(value).map(&:to_sym).freeze end.freeze @profile_capabilities = Array(profile_capabilities).map(&:to_sym).uniq.freeze @violations = Array(violations).freeze @undeclared_nodes = Array(undeclared_nodes).map(&:to_sym).freeze freeze end |
Instance Attribute Details
#profile_capabilities ⇒ Object (readonly)
Returns the value of attribute profile_capabilities.
8 9 10 |
# File 'lib/igniter/extensions/contracts/capabilities/report.rb', line 8 def profile_capabilities @profile_capabilities end |
#required_capabilities ⇒ Object (readonly)
Returns the value of attribute required_capabilities.
8 9 10 |
# File 'lib/igniter/extensions/contracts/capabilities/report.rb', line 8 def required_capabilities @required_capabilities end |
#undeclared_nodes ⇒ Object (readonly)
Returns the value of attribute undeclared_nodes.
8 9 10 |
# File 'lib/igniter/extensions/contracts/capabilities/report.rb', line 8 def undeclared_nodes @undeclared_nodes end |
#violations ⇒ Object (readonly)
Returns the value of attribute violations.
8 9 10 |
# File 'lib/igniter/extensions/contracts/capabilities/report.rb', line 8 def violations @violations end |
Instance Method Details
#invalid? ⇒ Boolean
24 25 26 |
# File 'lib/igniter/extensions/contracts/capabilities/report.rb', line 24 def invalid? !valid? end |
#summary ⇒ Object
28 29 30 31 32 |
# File 'lib/igniter/extensions/contracts/capabilities/report.rb', line 28 def summary return "valid" if valid? "invalid - #{violations.length} capability violation(s)" end |
#to_h ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/igniter/extensions/contracts/capabilities/report.rb', line 34 def to_h { valid: valid?, required_capabilities: required_capabilities, profile_capabilities: profile_capabilities, undeclared_nodes: undeclared_nodes, violations: violations.map(&:to_h) } end |
#valid? ⇒ Boolean
20 21 22 |
# File 'lib/igniter/extensions/contracts/capabilities/report.rb', line 20 def valid? violations.empty? end |