Class: Ruby::Rego::WithModifiers::WithModifierPathKeyResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby/rego/with_modifiers/with_modifier_path_key_resolver.rb

Overview

Resolves reference path segments for with modifiers.

Instance Method Summary collapse

Constructor Details

#initialize(expression_evaluator:) ⇒ WithModifierPathKeyResolver

Returns a new instance of WithModifierPathKeyResolver.

Parameters:



12
13
14
# File 'lib/ruby/rego/with_modifiers/with_modifier_path_key_resolver.rb', line 12

def initialize(expression_evaluator:)
  @expression_evaluator = expression_evaluator
end

Instance Method Details

#resolve(segment) ⇒ Object

:reek:FeatureEnvy :reek:TooManyStatements

Parameters:

  • segment (Object)

Returns:

  • (Object)


20
21
22
23
24
25
26
# File 'lib/ruby/rego/with_modifiers/with_modifier_path_key_resolver.rb', line 20

def resolve(segment)
  raw = segment.is_a?(AST::RefArg) ? segment.value : segment
  key = resolved_key(raw)
  return key if key.is_a?(UndefinedValue)

  key.is_a?(Symbol) ? key.to_s : key
end