def render_file(path, options = {})
      pn = absolute_path_from_current_template(path)

      template = template(pn.to_s, nil)

      # Track rendered file also on the rendered stack
      template_nesting.push(template)

      template.render(options[:locals] || {})
    ensure
      # Only pop the template from the nesting if we actually
      # put it on the nesting stack.
      template_nesting.pop if template
    end
def render_file(path, options = {})
      pn = absolute_path_from_current_template(path)

      template = template(pn.to_s, nil)

      # Track rendered file also on the rendered stack
      template_nesting.push(template)

      template.render(options[:locals] || {})
    ensure
      # Only pop the template from the nesting if we actually
      # put it on the nesting stack.
      template_nesting.pop if template
    end
Render any file on disk. No magic. Just rendering.

 A couple of things to keep in mind:
 - The file will be rendered in this rendering context
 - Does not have layouts or block style
 - When you pass a relative path and we are within another template
   it will be relative to that template.

 @options options [Hash] :locals