Expose a _render_partial hook as thhe _render_template one and make use of it.

This commit is contained in:
José Valim 2009-12-31 01:45:56 +01:00 committed by Yehuda Katz
parent 33c98b15bc
commit c03c40b481
3 changed files with 16 additions and 11 deletions

View File

@ -254,6 +254,7 @@ module ActionMailer #:nodoc:
include Quoting
extend AdvAttrAccessor
include AbstractController::Logger
include AbstractController::Rendering
include AbstractController::LocalizedCache
include AbstractController::Layouts

View File

@ -1,5 +1,4 @@
require "abstract_controller/base"
require "abstract_controller/logger"
module AbstractController
class DoubleRenderError < Error
@ -13,8 +12,6 @@ module AbstractController
module Rendering
extend ActiveSupport::Concern
include AbstractController::Logger
included do
extlib_inheritable_accessor :_view_paths
self._view_paths ||= ActionView::PathSet.new
@ -67,7 +64,7 @@ module AbstractController
def render_to_body(options = {})
# TODO: Refactor so we can just use the normal template logic for this
if options.key?(:partial)
view_context.render_partial(options)
_render_partial(options)
else
_determine_template(options)
_render_template(options)
@ -87,11 +84,18 @@ module AbstractController
# ==== Options
# _template<ActionView::Template>:: The template to render
# _layout<ActionView::Template>:: The layout to wrap the template in (optional)
# _partial<TrueClass, FalseClass>:: Whether or not the template to be rendered is a partial
def _render_template(options)
view_context.render_template(options)
end
# Renders the given partial.
#
# ==== Options
# partial<String|Object>:: The partial name or the object to be rendered
def _render_partial(options)
view_context.render_partial(options)
end
# The list of view paths for this controller. See ActionView::ViewPathSet for
# more details about writing custom view paths.
def view_paths

View File

@ -20,12 +20,6 @@ module ActionController
def render_to_body(options)
_process_options(options)
if options.key?(:partial)
options[:partial] = action_name if options[:partial] == true
options[:_details] = {:formats => formats}
end
super
end
@ -43,6 +37,12 @@ module ActionController
super
end
def _render_partial(options)
options[:partial] = action_name if options[:partial] == true
options[:_details] = {:formats => formats}
super
end
def format_for_text
formats.first
end