Class: Ruby::Rego::WithModifiers::WithModifierBuiltinResolver
- Inherits:
-
Object
- Object
- Ruby::Rego::WithModifiers::WithModifierBuiltinResolver
- Defined in:
- lib/ruby/rego/with_modifiers/with_modifier_builtin_override.rb
Overview
Resolves builtin replacement entries for with builtin overrides.
:reek:DataClump
Instance Method Summary collapse
-
#initialize(registry:, environment:, expression_evaluator:, location:) ⇒ WithModifierBuiltinResolver
constructor
A new instance of WithModifierBuiltinResolver.
-
#replacement_entry(value) ⇒ Array
-
#target_entry(function_name) ⇒ Builtins::BuiltinRegistry::Entry
Constructor Details
#initialize(registry:, environment:, expression_evaluator:, location:) ⇒ WithModifierBuiltinResolver
Returns a new instance of WithModifierBuiltinResolver.
19 20 21 22 23 24 |
# File 'lib/ruby/rego/with_modifiers/with_modifier_builtin_override.rb', line 19 def initialize(registry:, environment:, expression_evaluator:, location:) @registry = registry @environment = environment @expression_evaluator = expression_evaluator @location = location end |
Instance Method Details
#replacement_entry(value) ⇒ Array
37 38 39 40 41 42 43 |
# File 'lib/ruby/rego/with_modifiers/with_modifier_builtin_override.rb', line 37 def replacement_entry(value) function_name = replacement_function_name(value) return function_replacement_entry(function_name) if function_name && function_replacement?(function_name) ensure_safe_replacement_variable(value, function_name) value_replacement_entry(value) end |
#target_entry(function_name) ⇒ Builtins::BuiltinRegistry::Entry
28 29 30 31 32 33 |
# File 'lib/ruby/rego/with_modifiers/with_modifier_builtin_override.rb', line 28 def target_entry(function_name) return registry.entry_for(function_name) if registry.registered?(function_name) return function_entry(function_name) if function_defined?(function_name) raise EvaluationError.new("Undefined built-in function: #{function_name}", rule: nil, location: location) end |