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

Inherits:
Object
  • Object
show all
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

Constructor Details

#initialize(expression_evaluator:, environment:) ⇒ ComprehensionEvaluator

Returns a new instance of ComprehensionEvaluator.

Parameters:



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.

Parameters:



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

Parameters:

Returns:



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

Parameters:

Returns:



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

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

#eval_set(node) ⇒ Value

Parameters:

Returns:



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

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