Class: Ruby::Rego::Evaluator::ComprehensionEvaluator

Inherits:
Object
  • Object
show all
Includes:
LocalShadowing
Defined in:
lib/ruby/rego/evaluator/comprehension_evaluator.rb

Overview

Evaluates comprehensions in isolated scopes. :reek:TooManyMethods

Instance Method Summary collapse

Constructor Details

#initialize(expression_evaluator:, environment:) ⇒ ComprehensionEvaluator

Returns a new instance of ComprehensionEvaluator.

Parameters:



41
42
43
44
45
# File 'lib/ruby/rego/evaluator/comprehension_evaluator.rb', line 41

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.

Parameters:



49
50
51
52
# File 'lib/ruby/rego/evaluator/comprehension_evaluator.rb', line 49

def attach_query_evaluator(query_evaluator)
  @query_evaluator = query_evaluator
  nil
end

#eval_array(node) ⇒ Value

Parameters:

Returns:



56
57
58
# File 'lib/ruby/rego/evaluator/comprehension_evaluator.rb', line 56

def eval_array(node)
  ArrayValue.new(collect_values(node))
end

#eval_object(node) ⇒ Value

Parameters:

Returns:



62
63
64
# File 'lib/ruby/rego/evaluator/comprehension_evaluator.rb', line 62

def eval_object(node)
  ObjectValue.new(object_pairs(node))
end

#eval_set(node) ⇒ Value

Parameters:

Returns:



68
69
70
# File 'lib/ruby/rego/evaluator/comprehension_evaluator.rb', line 68

def eval_set(node)
  SetValue.new(collect_values(node))
end