| Class | Erubis::Helper::CachedRailsTemplate |
| In: |
erubis/helper/rails.rb
|
| Parent: | RailsTemplate |
# File erubis/helper/rails.rb, line 118 def render(template, assigns) ## template path without suffix ## (how to get template path name with suffix? I can't find...) c = @view.controller template_basename = c.template_root + "/" + c.controller_name + "/" + c.action_name ## cache template proc_obj = @@cache_table[template_basename] unless proc_obj code = convert(template) proc_obj = eval("proc do #{code} end") @@cache_table[template_basename] = proc_obj end ## use @view as context object @view.__send__(:evaluate_assigns) #or @view.instance_eval("evaluate_assigns()") context = @view ## evaluate ruby code with context object if assigns && !assigns.empty? return _evaluate_proc(proc_obj, context, assigns) else return context.instance_eval(&proc_obj) end end