Class: TerraformTemplateRenderer::Renderer

Inherits:
Object
  • Object
show all
Defined in:
lib/terraform_template_renderer/renderer.rb

Overview

Renderer to remder an ERB template with variables taken from a json string instead of from the original binding

Instance Method Summary collapse

Constructor Details

#initialize(template, template_path) ⇒ Renderer

Returns a new instance of Renderer.



10
11
12
13
14
# File 'lib/terraform_template_renderer/renderer.rb', line 10

def initialize(template, template_path)
  # The third argument enables trim mode using a hyphen
  @erb_template = ERB.new(template, nil, "-")
  @template_path = template_path
end

Instance Method Details

#render(json_variables) ⇒ Object

The passed in json_variables needs to be a JSON object (not array), all the keys will be used as variables in the templates



18
19
20
21
# File 'lib/terraform_template_renderer/renderer.rb', line 18

def render(json_variables)
  binding_ = template_binding(json_variables)
  render_with_binding(binding_)
end

#render_with_binding(binding_) ⇒ Object



23
24
25
# File 'lib/terraform_template_renderer/renderer.rb', line 23

def render_with_binding(binding_)
  @erb_template.result(binding_.bind)
end