Class: Violation

Inherits:
RuleDefinition show all
Defined in:
lib/cfn-nag/violation.rb

Overview

Rule definition for violations

Constant Summary

Constants inherited from RuleDefinition

RuleDefinition::FAILING_VIOLATION, RuleDefinition::WARNING

Instance Attribute Summary collapse

Attributes inherited from RuleDefinition

#id, #message, #name, #type

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from RuleDefinition

#==

Constructor Details

#initialize(id:, name:, type:, message:, logical_resource_ids: [], line_numbers: [], element_types: []) ⇒ Violation

rubocop:disable Metrics/ParameterLists



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/cfn-nag/violation.rb', line 10

def initialize(id:,
               name:,
               type:,
               message:,
               logical_resource_ids: [],
               line_numbers: [],
               element_types: [])
  super id: id,
        name: name,
        type: type,
        message: message

  @logical_resource_ids = logical_resource_ids
  @line_numbers = line_numbers
  @element_types = element_types
end

Instance Attribute Details

#element_typesObject (readonly)

Returns the value of attribute element_types.



7
8
9
# File 'lib/cfn-nag/violation.rb', line 7

def element_types
  @element_types
end

#line_numbersObject (readonly)

Returns the value of attribute line_numbers.



7
8
9
# File 'lib/cfn-nag/violation.rb', line 7

def line_numbers
  @line_numbers
end

#logical_resource_idsObject (readonly)

Returns the value of attribute logical_resource_ids.



7
8
9
# File 'lib/cfn-nag/violation.rb', line 7

def logical_resource_ids
  @logical_resource_ids
end

Class Method Details

.count_failures(violations) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/cfn-nag/violation.rb', line 54

def count_failures(violations)
  violations.inject(0) do |count, violation|
    if violation.type == Violation::FAILING_VIOLATION
      count += if empty?(violation.logical_resource_ids)
                 1
               else
                 violation.logical_resource_ids.size
               end
    end
    count
  end
end

.count_warnings(violations) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/cfn-nag/violation.rb', line 41

def count_warnings(violations)
  violations.inject(0) do |count, violation|
    if violation.type == Violation::WARNING
      count += if empty?(violation.logical_resource_ids)
                 1
               else
                 violation.logical_resource_ids.size
               end
    end
    count
  end
end

.fatal_violation(message) ⇒ Object



67
68
69
70
71
72
# File 'lib/cfn-nag/violation.rb', line 67

def fatal_violation(message)
  Violation.new(id: 'FATAL',
                name: 'system',
                type: Violation::FAILING_VIOLATION,
                message: message)
end

Instance Method Details

#to_hObject



32
33
34
35
36
37
38
# File 'lib/cfn-nag/violation.rb', line 32

def to_h
  super.to_h.merge(
    logical_resource_ids: @logical_resource_ids,
    line_numbers: @line_numbers,
    element_types: @element_types
  )
end

#to_sObject

rubocop:enable Metrics/ParameterLists



28
29
30
# File 'lib/cfn-nag/violation.rb', line 28

def to_s
  "#{super} #{@logical_resource_ids}"
end