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, package_key: "") ⇒ RuleValueProvider

Returns a new instance of RuleValueProvider.

Parameters:

  • rules_by_name (Hash{String => Array<AST::Rule>})
  • memoization (Memoization::Store, nil) (defaults to: nil)
  • package_key (String) (defaults to: "")

    package key used to namespace cache entries



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

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

Instance Method Details

#attach(rule_evaluator) ⇒ void

This method returns an undefined value.

Parameters:



20
21
22
# File 'lib/ruby/rego/evaluator/rule_value_provider.rb', line 20

def attach(rule_evaluator)
  @rule_evaluator = rule_evaluator
end

#rule_defined?(name) ⇒ Boolean

Parameters:

  • name (String)

Returns:

  • (Boolean)


32
33
34
# File 'lib/ruby/rego/evaluator/rule_value_provider.rb', line 32

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

#value_for(name) ⇒ Value

Parameters:

  • name (String)

Returns:



26
27
28
# File 'lib/ruby/rego/evaluator/rule_value_provider.rb', line 26

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