Class: Ruby::Rego::DefaultRuleValidator
- Inherits:
-
Object
- Object
- Ruby::Rego::DefaultRuleValidator
- Defined in:
- lib/ruby/rego/compiler/safety.rb
Overview
Validates default rule values for groundness.
Instance Method Summary collapse
-
#check(rules_by_name) ⇒ Object
:reek:TooManyStatements.
-
#initialize(child_node_extractors: DEFAULT_RULE_CHILD_NODE_EXTRACTORS, builtin_registry: Builtins::BuiltinRegistry.instance) ⇒ DefaultRuleValidator
constructor
A new instance of DefaultRuleValidator.
Constructor Details
#initialize(child_node_extractors: DEFAULT_RULE_CHILD_NODE_EXTRACTORS, builtin_registry: Builtins::BuiltinRegistry.instance) ⇒ DefaultRuleValidator
Returns a new instance of DefaultRuleValidator.
122 123 124 125 126 127 128 |
# File 'lib/ruby/rego/compiler/safety.rb', line 122 def initialize( child_node_extractors: DEFAULT_RULE_CHILD_NODE_EXTRACTORS, builtin_registry: Builtins::BuiltinRegistry.instance ) @child_node_extractors = child_node_extractors _ = builtin_registry end |
Instance Method Details
#check(rules_by_name) ⇒ Object
:reek:TooManyStatements
131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/ruby/rego/compiler/safety.rb', line 131 def check(rules_by_name) Array(rules_by_name.values).flatten.each do |rule| value = rule.default_value next unless value next if comprehension_value?(value) next unless contains_variable_or_reference?(value) raise CompilationError.new( "Default rule values must be ground (no variables, references, or calls)", location: rule.location ) end end |