Class: Ruby::Rego::WithModifiers::WithModifierBuiltinOverride
- Inherits:
-
Object
- Object
- Ruby::Rego::WithModifiers::WithModifierBuiltinOverride
- Defined in:
- lib/ruby/rego/with_modifiers/with_modifier_builtin_override.rb
Overview
Temporarily replaces a builtin with another builtin implementation. :reek:DataClump
Instance Method Summary collapse
-
#apply(environment) {|environment| ... } ⇒ Object
-
#initialize(name:, value:, expression_evaluator:, location: nil) ⇒ WithModifierBuiltinOverride
constructor
A new instance of WithModifierBuiltinOverride.
Constructor Details
#initialize(name:, value:, expression_evaluator:, location: nil) ⇒ WithModifierBuiltinOverride
Returns a new instance of WithModifierBuiltinOverride.
152 153 154 155 156 157 |
# File 'lib/ruby/rego/with_modifiers/with_modifier_builtin_override.rb', line 152 def initialize(name:, value:, expression_evaluator:, location: nil) @name = name.to_s @value = value @expression_evaluator = expression_evaluator @location = location end |
Instance Method Details
#apply(environment) {|environment| ... } ⇒ Object
161 162 163 164 165 166 167 168 169 170 171 172 |
# File 'lib/ruby/rego/with_modifiers/with_modifier_builtin_override.rb', line 161 def apply(environment, &block) block ||= ->(_env) {} registry = environment.builtin_registry resolver = WithModifierBuiltinResolver.new( registry: registry, environment: environment, expression_evaluator: expression_evaluator, location: location ) override_registry = registry.with_override(name, override_entry(resolver)) environment.with_builtin_registry(override_registry, &block) end |