class Tilt::ERBTemplate

def initialize_engine

def initialize_engine
  return if defined? ::ERB
  require_template_library 'erb'
end

def precompiled(locals)

def precompiled(locals)
  source, offset = super
  [source, offset + 1]
end

def precompiled_postamble(locals)

def precompiled_postamble(locals)
  <<-RUBY
      #{super}
    ensure
      #{@outvar} = __original_outvar
    end
  RUBY
end

def precompiled_preamble(locals)

def precompiled_preamble(locals)
  <<-RUBY
    begin
      __original_outvar = #{@outvar} if defined?(#{@outvar})
      #{super}
  RUBY
end

def precompiled_template(locals)

def precompiled_template(locals)
  @engine.src
end

def prepare

def prepare
  @outvar = (options[:outvar] || '_erbout').to_s
  @engine = ::ERB.new(data, options[:safe], options[:trim], @outvar)
end