class Bosh::Director::Core::Templates::SourceErb

Attributes

dest_name[R]
erb[R]
src_name[R]

Public Class Methods

new(src_name, dest_name, erb_contents, template_name) click to toggle source
# File lib/bosh/director/core/templates/source_erb.rb, line 8
def initialize(src_name, dest_name, erb_contents, template_name)
  @src_name = src_name
  @dest_name = dest_name
  erb = ERB.new(erb_contents)
  erb.filename = File.join(template_name, src_name)
  @erb = erb
end

Public Instance Methods

render(context, logger) click to toggle source
# File lib/bosh/director/core/templates/source_erb.rb, line 16
def render(context, logger)
  erb.result(context.get_binding)
  # rubocop:disable RescueException
rescue Exception => e
  # rubocop:enable RescueException

  logger.debug(e.inspect)
  line_index = e.backtrace.index { |l| l.include?(erb.filename) }
  line = line_index ? e.backtrace[line_index] : '(unknown):(unknown)'
  template_name, line = line.split(':')

  message = "Error filling in template '#{File.basename(template_name)}' (line #{line}: #{e})"

  logger.debug("#{message}\n#{e.backtrace.join("\n")}")
  raise message
end