class Temple::Engines::ERB

template.result # => “2”
template = Temple::Engine::ERB.new(“<%= 1 + 1 %>”)
require ‘temple’
An engine which works in-place for ERB:

def self.rock!

ERB == Temple::Engine::ERB
Temple::Engine::ERB.rock!
require 'temple'

Example:

Sets the ERB constant to Temple::Engine::ERB
def self.rock!
  Object.send(:remove_const, :ERB)
  Object.send(:const_set, :ERB, self)
end

def self.suck!

def self.suck!
  Object.send(:remove_const, :ERB)
  Object.send(:const_set, :ERB, OriginalERB)
end

def detect_magic_comment(s)

def detect_magic_comment(s)
  if /\A<%#(.*)%>/ =~ s or (percent? and /\A%#(.*)/ =~ s)
   comment = $1
   comment = $1 if comment[/-\*-\s*(.*?)\s*-*-$/]
   if %r"coding\s*[=:]\s*([[:alnum:]\-_]+)" =~ comment
     enc = $1.sub(/-(?:mac|dos|unix)/i, '')
     enc = Encoding.find(enc)
   end
  end
end

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

def percent?

def percent?
  @trim_mode.is_a?(String) and @trim_mode.include?("%")
end