private Method

Base.compile_template(handler, template, file_name, local_assigns)

Compile and evaluate the template’s code

Source Code

# File action_view/base.rb, line 596
def compile_template(handler, template, file_name, local_assigns)
  render_symbol = assign_method_name(handler, template, file_name)
  render_source = create_template_source(handler, template, render_symbol, local_assigns.keys)
  line_offset   = @@template_args[render_symbol].size + handler.line_offset

  begin
    file_name = 'compiled-template' if file_name.blank?
    CompiledTemplates.module_eval(render_source, file_name, -line_offset)
  rescue Exception => e  # errors from template code
    if logger
      logger.debug "ERROR: compiling #{render_symbol} RAISED #{e}"
      logger.debug "Function body: #{render_source}"
      logger.debug "Backtrace: #{e.backtrace.join("\n")}"
    end

    raise TemplateError.new(extract_base_path_from(file_name) || view_paths.first, file_name || template, @assigns, template, e)
  end

  @@compile_time[render_symbol] = Time.now
  # logger.debug "Compiled template #{file_name || template}\n  ==> #{render_symbol}" if logger
end
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.