Class: Ruby::Rego::Evaluator::RuleValueProvider

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby/rego/evaluator/rule_value_provider.rb

Overview

Provides evaluated rule values for data references.

Instance Method Summary collapse

Constructor Details

#initialize(rules_by_name:, memoization: nil) ⇒ RuleValueProvider

Returns a new instance of RuleValueProvider.

Parameters:



10
11
12
13
14
# File 'lib/ruby/rego/evaluator/rule_value_provider.rb', line 10

def initialize(rules_by_name:, memoization: nil)
  @rules_by_name = rules_by_name
  @memoization = memoization
  @rule_evaluator = nil
end

Instance Method Details

#attach(rule_evaluator) ⇒ void

This method returns an undefined value.

Parameters:



18
19
20
# File 'lib/ruby/rego/evaluator/rule_value_provider.rb', line 18

def attach(rule_evaluator)
  @rule_evaluator = rule_evaluator
end

#rule_defined?(name) ⇒ Boolean

Parameters:

  • name (String)

Returns:

  • (Boolean)


30
31
32
# File 'lib/ruby/rego/evaluator/rule_value_provider.rb', line 30

def rule_defined?(name)
  rules_by_name.key?(name)
end

#value_for(name) ⇒ Value

Parameters:

  • name (String)

Returns:



24
25
26
# File 'lib/ruby/rego/evaluator/rule_value_provider.rb', line 24

def value_for(name)
  memoization ? memoized_value_for(name) : evaluate_value_for(name)
end