Class | Merb::Template::Erubis |
In: |
merb-core/lib/merb-core/controller/template.rb
|
Parent: | Object |
io<path>: | An IO containing the full path of the template. |
name<String>: | The name of the method that will be created. |
locals<Array[Symbol]>: | 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
# File merb-core/lib/merb-core/controller/template.rb, line 198 198: def self.compile_template(io, name, locals, mod) 199: template = ::Erubis::BlockAwareEruby.new(io.read) 200: _old_verbose, $VERBOSE = $VERBOSE, nil 201: assigns = locals.inject([]) do |assigns, local| 202: assigns << "#{local} = _locals[#{local.inspect}]" 203: end.join(";") 204: 205: code = "def #{name}(_locals={}); #{assigns}; #{template.src}; end" 206: mod.module_eval code, File.expand_path(io.path) 207: $VERBOSE = _old_verbose 208: 209: name 210: end