Class: Ruby::Rego::Evaluator::ReferenceResolver::StaticKeyBuilder
- Inherits:
-
Object
- Object
- Ruby::Rego::Evaluator::ReferenceResolver::StaticKeyBuilder
- Defined in:
- lib/ruby/rego/evaluator/reference_resolver.rb
Overview
Builds static reference keys for cacheable references.
Constant Summary collapse
- ROOT_NAMES =
%w[input data].freeze
Instance Method Summary collapse
-
#call ⇒ Array<Object>?
-
#initialize(reference) ⇒ StaticKeyBuilder
constructor
A new instance of StaticKeyBuilder.
Constructor Details
#initialize(reference) ⇒ StaticKeyBuilder
Returns a new instance of StaticKeyBuilder.
16 17 18 |
# File 'lib/ruby/rego/evaluator/reference_resolver.rb', line 16 def initialize(reference) @reference = reference end |
Instance Method Details
#call ⇒ Array<Object>?
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/ruby/rego/evaluator/reference_resolver.rb', line 21 def call base = reference.base return nil unless base.is_a?(AST::Variable) return nil unless ROOT_NAMES.include?(base.name) keys = [] # @type var keys: Array[Object] reference.path.each do |segment| key = segment_key(segment) return nil unless key keys << key end keys end |