class Temple::Engines::ERB

def initialize(str, safe_level = nil, trim_mode = nil, eoutvar = '_erbout', options = {})

def initialize(str, safe_level = nil, trim_mode = nil, eoutvar = '_erbout', options = {})
  @safe_level = safe_level
  @trim_mode = trim_mode
  @parser = Parsers::ERB.new(:trim_mode => @trim_mode)
  
  @generator = options[:generator] || Core::ArrayBuffer
  
  if @generator.is_a?(Class)
    @generator = @generator.new(:buffer => eoutvar)
  end
  
  @sexp = @parser.compile(str)
  @optimized_sexp = Optimizers.inject(@sexp) { |m, e| e.compile(m) }
  @src = @generator.compile(@optimized_sexp)
  
  if str.respond_to?(:encoding)
    @enc = detect_magic_comment(str) || str.encoding
    @src.insert(0, "#coding:#{@enc}\n")
    @src << ".force_encoding(__ENCODING__)"
  end
end