Class: TerraformTemplateRenderer::Binding

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

Overview

Provides a Binding context which we can add arbitrary params to (which will become instance variables for the templates when they get rendered). Also provides a method to render partial templates which will pass through itself as the binding context for the partial template

Instance Method Summary collapse

Constructor Details

#initialize(template_path) ⇒ Binding

Returns a new instance of Binding.



9
10
11
# File 'lib/terraform_template_renderer/binding.rb', line 9

def initialize(template_path)
  @template_path = template_path
end

Instance Method Details

#add_param(key, value) ⇒ Object



13
14
15
# File 'lib/terraform_template_renderer/binding.rb', line 13

def add_param(key, value)
  instance_variable_set("@#{key}", value)
end

#bindObject



17
18
19
# File 'lib/terraform_template_renderer/binding.rb', line 17

def bind
  binding
end

#render(partial_path) ⇒ Object



21
22
23
24
25
26
# File 'lib/terraform_template_renderer/binding.rb', line 21

def render(partial_path)
  path_to_partial = File.join(@template_path, partial_path)
  renderer = Renderer.new(File.read(path_to_partial), @template_path)

  renderer.render_with_binding(self)
end