Class: Ruby::Rego::DefaultRuleValidator
- Inherits:
-
Object
- Object
- Ruby::Rego::DefaultRuleValidator
- Defined in:
- lib/ruby/rego/compiler.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.
564 565 566 567 568 569 570 |
# File 'lib/ruby/rego/compiler.rb', line 564 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
573 574 575 576 577 578 579 580 581 582 583 584 585 |
# File 'lib/ruby/rego/compiler.rb', line 573 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 |