Class: Ruby::Rego::Evaluator::ModuleContextRegistry
- Inherits:
-
Object
- Object
- Ruby::Rego::Evaluator::ModuleContextRegistry
- Defined in:
- lib/ruby/rego/evaluator/module_context_registry.rb
Overview
Maps package keys to reference resolvers for cross-package dispatch.
Instance Method Summary collapse
-
#initialize(resolvers_by_key) ⇒ ModuleContextRegistry
constructor
A new instance of ModuleContextRegistry.
-
#resolver_for(keys) ⇒ ReferenceResolver?
Find the resolver whose package is the longest prefix of keys.
Constructor Details
#initialize(resolvers_by_key) ⇒ ModuleContextRegistry
Returns a new instance of ModuleContextRegistry.
11 12 13 14 |
# File 'lib/ruby/rego/evaluator/module_context_registry.rb', line 11 def initialize(resolvers_by_key) @resolvers_by_key = resolvers_by_key @package_keys = resolvers_by_key.keys end |
Instance Method Details
#resolver_for(keys) ⇒ ReferenceResolver?
Find the resolver whose package is the longest prefix of keys.
20 21 22 23 |
# File 'lib/ruby/rego/evaluator/module_context_registry.rb', line 20 def resolver_for(keys) key = CompiledPolicySet.longest_prefix_key(package_keys, keys) key && resolvers_by_key[key] end |