Class: Rule
- Inherits:
-
Object
- Object
- Rule
- Defined in:
- lib/rule.rb
Defined Under Namespace
Classes: RuleError
Constant Summary collapse
- VALID_KEYS =
[:resources, 'resources', :description, 'description', :severity, 'severity'].freeze
Instance Attribute Summary collapse
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#resources ⇒ Object
readonly
Returns the value of attribute resources.
-
#severity ⇒ Object
readonly
Returns the value of attribute severity.
Instance Method Summary collapse
- #check_resources ⇒ Object
-
#initialize(rule) ⇒ Rule
constructor
A new instance of Rule.
Constructor Details
#initialize(rule) ⇒ Rule
Returns a new instance of Rule.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/rule.rb', line 19 def initialize(rule) if (invalid_keys = rule.keys - VALID_KEYS).size > 0 raise RuleError, "invalid field(s) '#{invalid_keys.join(',')}'" end tmp_resources = rule[:resources] or rule['resources'] or raise RuleError, 'missing required field "resources"' @description = rule[:description] or rule['description'] or raise RuleError, 'missing required field "description"' @severity = rule[:severity] or rule['severity'] unless tmp_resources.is_a? Hash raise RuleError, 'resources field must be an Hash' end @resources = tmp_resources.map do |title, properties| Resource.new(title, properties) end end |
Instance Attribute Details
#description ⇒ Object (readonly)
Returns the value of attribute description.
16 17 18 |
# File 'lib/rule.rb', line 16 def description @description end |
#resources ⇒ Object (readonly)
Returns the value of attribute resources.
15 16 17 |
# File 'lib/rule.rb', line 15 def resources @resources end |
#severity ⇒ Object (readonly)
Returns the value of attribute severity.
17 18 19 |
# File 'lib/rule.rb', line 17 def severity @severity end |
Instance Method Details
#check_resources ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/rule.rb', line 39 def check_resources result = { :description => @description, :severity => @severity, :success => true, :resources => [] } @resources.each do |resource| resource_result = resource.check_properties result[:resources] << resource_result result[:success] = false unless resource_result[:success] end result end |