提交 0612fd0f 编写于 作者: Y Yehuda Katz

Replace _render_template_with_layout with _render_template since the layout is optional

上级 b3e199f6
......@@ -566,7 +566,7 @@ def render_template(template, body)
@template = initialize_template_class(body)
layout = _pick_layout(layout, true) unless
ActionController::Base.exempt_from_layout.include?(template.handler)
@template._render_template_with_layout(template, layout, {})
@template._render_template(template, layout, {})
ensure
@current_template_content_type = nil
end
......@@ -592,7 +592,7 @@ def render(opts)
!template || ActionController::Base.exempt_from_layout.include?(template.handler))
if template
@template._render_template_with_layout(template, layout, opts)
@template._render_template(template, layout, opts)
elsif inline = opts[:inline]
@template._render_inline(inline, layout, opts)
end
......
......@@ -573,12 +573,14 @@ def initialize
@info_contents, @debug_contents = "", ""
end
def info(str)
@info_contents << str
def info(str = nil, &blk)
@info_contents << str if str
@info_contents << blk.call if block_given?
end
def debug(str)
@debug_contents << str
def debug(str = nil, &blk)
@debug_contents << str if str
@debug_contents << blk.call if block_given?
end
end
......
......@@ -248,7 +248,7 @@ def _render_partial_object(template, options)
options[:_template] = template
_render_template(template, locals)
_render_single_template(template, locals)
end
end
......@@ -275,7 +275,7 @@ def _render_partial_collection(collection, options = {}, passed_template = nil)
index += 1
_render_template(template, locals)
_render_single_template(template, locals)
end.join(spacer)
end
......
......@@ -27,7 +27,7 @@ def render(options = {}, local_assigns = {}, &block) #:nodoc:
if file = options[:file]
template = find_by_parts(file, {:formats => formats})
_render_template_with_layout(template, layout, :locals => options[:locals])
_render_template(template, layout, :locals => options[:locals])
elsif inline = options[:inline]
_render_inline(inline, layout, options)
elsif text = options[:text]
......@@ -54,7 +54,7 @@ def _render_content(content, layout, locals)
old_content, @_content_for[:layout] = @_content_for[:layout], content
@cached_content_for_layout = @_content_for[:layout]
_render_template(layout, locals)
_render_single_template(layout, locals)
ensure
@_content_for[:layout] = old_content
end
......@@ -97,9 +97,9 @@ def layout_proc(name)
!@_content_for.key?(name) && @_proc_for_layout || @_default_layout
end
def _render_template(template, local_assigns = {})
def _render_single_template(template, locals = {})
with_template(template) do
template.render(self, local_assigns) do |*names|
template.render(self, locals) do |*names|
capture(*names, &layout_proc(names.first))
end
end
......@@ -115,7 +115,7 @@ def _render_template(template, local_assigns = {})
def _render_inline(inline, layout, options)
handler = Template.handler_class_for_extension(options[:type] || "erb")
template = Template.new(options[:inline], "inline #{options[:inline].inspect}", handler, {})
content = _render_template(template, options[:locals] || {})
content = _render_single_template(template, options[:locals] || {})
layout ? _render_content(content, layout, options[:locals]) : content
end
......@@ -132,18 +132,22 @@ def _render_text(text, layout, options)
def render_template(options)
@assigns_added = nil
template, layout, partial = options.values_at(:_template, :_layout, :_partial)
_render_template_with_layout(template, layout, options, partial)
_render_template(template, layout, options, partial)
end
def _render_template_with_layout(template, layout = nil, options = {}, partial = nil)
logger && logger.info("Rendering #{template.identifier}#{' (#{options[:status]})' if options[:status]}")
def _render_template(template, layout = nil, options = {}, partial = nil)
logger && logger.info do
msg = "Rendering #{template.identifier}"
msg << " (#{options[:status]})" if options[:status]
msg
end
locals = options[:locals] || {}
content = if partial
_render_partial_object(template, options)
else
_render_template(template, locals)
_render_single_template(template, locals)
end
_render_content(content, layout, locals)
......
......@@ -9,8 +9,8 @@ def initialize(*args)
end
attr_internal :rendered
alias_method :_render_template_without_template_tracking, :_render_template
def _render_template(template, local_assigns = {})
alias_method :_render_template_without_template_tracking, :_render_single_template
def _render_single_template(template, local_assigns = {})
if template.respond_to?(:identifier) && template.present?
@_rendered[:partials][template] += 1 if template.partial?
@_rendered[:template] ||= []
......
......@@ -17,9 +17,10 @@ def initialize
@level = Logger::DEBUG
end
def method_missing(method, *args)
def method_missing(method, *args, &blk)
@logged ||= []
@logged << args.first
@logged << blk.call if block_given?
end
end
......
......@@ -17,8 +17,9 @@ def initialize
@logged = []
end
def method_missing(method, *args)
def method_missing(method, *args, &blk)
@logged << args.first
@logged << blk.call if block_given?
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册