Class: Merb::Template::Erubis
- Defined in:
- lib/merb-core/controller/template.rb
Defined Under Namespace
Modules: Mixin
Constant Summary collapse
- XmlHelper =
Fixing bug in Erubis rubyforge.org/tracker/index.php?func=detail&aid=21825&group_id=1320&atid=5201
::Erubis::XmlHelper
Class Method Summary collapse
-
.compile_template(io, name, locals, mod) ⇒ Object
Parameters io<#path>:: An IO containing the full path of the template.
Class Method Details
.compile_template(io, name, locals, mod) ⇒ Object
Parameters
- io<#path>
-
An IO containing the full path of the template.
- name<String>
-
The name of the method that will be created.
- locals<Array>
-
A list of locals to assign from the args passed into the compiled template.
- mod<Module>
-
The module that the compiled method will be placed into.
:api: private
201 202 203 204 205 206 207 208 209 210 211 212 213 |
# File 'lib/merb-core/controller/template.rb', line 201 def self.compile_template(io, name, locals, mod) template = ::Erubis::BlockAwareEruby.new(io.read) _old_verbose, $VERBOSE = $VERBOSE, nil assigns = locals.inject([]) do |assigns, local| assigns << "#{local} = _locals[#{local.inspect}]" end.join(";") code = "def #{name}(_locals={}); #{assigns}; #{template.src}; end" mod.module_eval code, File.(io.path) $VERBOSE = _old_verbose name end |