Class: Ruby::Rego::Evaluator::TemplateValueFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby/rego/evaluator/expression_evaluator.rb

Overview

Formats template string values using a stable JSON representation.

Instance Method Summary collapse

Constructor Details

#initialize(value) ⇒ TemplateValueFormatter

Returns a new instance of TemplateValueFormatter.

Parameters:

  • value (Object)


473
474
475
# File 'lib/ruby/rego/evaluator/expression_evaluator.rb', line 473

def initialize(value)
  @value = value
end

Instance Method Details

#canonical_valueObject

Returns:

  • (Object)


488
489
490
491
492
493
494
495
# File 'lib/ruby/rego/evaluator/expression_evaluator.rb', line 488

def canonical_value
  case value
  when Hash then canonicalize_hash
  when Array then canonicalize_array
  when Set then canonicalize_set
  else value
  end
end

#renderString

Returns:

  • (String)


478
479
480
481
482
483
484
485
# File 'lib/ruby/rego/evaluator/expression_evaluator.rb', line 478

def render
  case value
  when NilClass then "null"
  when String then value
  when Array, Hash, Set then JSON.generate(canonical_value)
  else value.to_s
  end
end