Class: Ruby::Rego::Evaluator::ComprehensionEvaluator
- Inherits:
-
Object
- Object
- Ruby::Rego::Evaluator::ComprehensionEvaluator
- Defined in:
- lib/ruby/rego/evaluator/comprehension_evaluator.rb
Overview
Evaluates comprehensions in isolated scopes. :reek:TooManyMethods rubocop:disable Metrics/ClassLength
Instance Method Summary collapse
-
#attach_query_evaluator(query_evaluator) ⇒ void
-
#eval_array(node) ⇒ Value
-
#eval_object(node) ⇒ Value
-
#eval_set(node) ⇒ Value
-
#initialize(expression_evaluator:, environment:) ⇒ ComprehensionEvaluator
constructor
A new instance of ComprehensionEvaluator.
Constructor Details
#initialize(expression_evaluator:, environment:) ⇒ ComprehensionEvaluator
Returns a new instance of ComprehensionEvaluator.
40 41 42 43 44 |
# File 'lib/ruby/rego/evaluator/comprehension_evaluator.rb', line 40 def initialize(expression_evaluator:, environment:) @expression_evaluator = expression_evaluator @environment = environment @query_evaluator = nil end |
Instance Method Details
#attach_query_evaluator(query_evaluator) ⇒ void
This method returns an undefined value.
48 49 50 51 |
# File 'lib/ruby/rego/evaluator/comprehension_evaluator.rb', line 48 def attach_query_evaluator(query_evaluator) @query_evaluator = query_evaluator nil end |
#eval_array(node) ⇒ Value
55 56 57 |
# File 'lib/ruby/rego/evaluator/comprehension_evaluator.rb', line 55 def eval_array(node) ArrayValue.new(collect_values(node)) end |
#eval_object(node) ⇒ Value
61 62 63 |
# File 'lib/ruby/rego/evaluator/comprehension_evaluator.rb', line 61 def eval_object(node) ObjectValue.new(object_pairs(node)) end |