In: |
erb.rb
|
Parent: | Object |
Revision | = | '$Date: 2003/12/10 09:07:52 $' |
filename | [RW] | |
src | [R] |
# File erb.rb, line 385 def initialize(str, safe_level=nil, trim_mode=nil, eoutvar='_erbout') @safe_level = safe_level compiler = ERB::Compiler.new(trim_mode) set_eoutvar(compiler, eoutvar) @src = compiler.compile(str) @filename = nil end
# File erb.rb, line 395 def set_eoutvar(compiler, eoutvar = '_erbout') compiler.put_cmd = "#{eoutvar}.concat" cmd = [] cmd.push "#{eoutvar} = ''" compiler.pre_cmd = cmd cmd = [] cmd.push(eoutvar) compiler.post_cmd = cmd end
# File erb.rb, line 413 def result(b=TOPLEVEL_BINDING) if @safe_level th = Thread.start { $SAFE = @safe_level eval(@src, b) } return th.value else return eval(@src, b, (@filename || '(erb)'), 1) end end
# File erb.rb, line 425 def def_method(mod, methodname, fname='(ERB)') mod.module_eval("def #{methodname}\n" + self.src + "\nend\n", fname, 0) end
# File erb.rb, line 429 def def_module(methodname='erb') mod = Module.new def_method(mod, methodname) mod end