class ActionView::TemplateRenderer

def render_with_layout(view, template, path, locals)

def render_with_layout(view, template, path, locals)
  layout  = path && find_layout(path, locals.keys, [formats.first])
  body = if layout
    ActiveSupport::Notifications.instrument("render_layout.action_view", identifier: layout.identifier) do
      view.view_flow.set(:layout, yield(layout))
      layout.render(view, locals) { |*name| view._layout_for(*name) }
    end
  else
    yield
  end
  build_rendered_template(body, template)
end