Class: Igniter::Extensions::Contracts::Capabilities::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/igniter/extensions/contracts/capabilities/report.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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_capabilitiesObject (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_capabilitiesObject (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_nodesObject (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

#violationsObject (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

Returns:

  • (Boolean)


24
25
26
# File 'lib/igniter/extensions/contracts/capabilities/report.rb', line 24

def invalid?
  !valid?
end

#summaryObject



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_hObject



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

Returns:

  • (Boolean)


20
21
22
# File 'lib/igniter/extensions/contracts/capabilities/report.rb', line 20

def valid?
  violations.empty?
end