class ActionView::AbstractRenderer
:nodoc:
into a separate classes for partials and templates.
that new object is called in turn. This abstracts the set up and rendering
renderer object of the correct type is created, and the render
method on
Whenever the render
method is called on the base Renderer
class, a new
StreamingTemplateRenderer - Used for streaming
TemplateRenderer - Used for rendering other types of templates
PartialRenderer - Used for rendering partials
renderers. These currently consist of
The base Renderer
class uses its render
method to delegate to the
render a specific type of object.
subclasses AbstractRenderer
is used by the base Renderer
class to
This class defines the interface for a renderer. Each class that
def build_rendered_collection(templates, spacer)
def build_rendered_collection(templates, spacer) RenderedCollection.new templates, spacer end
def build_rendered_template(content, template)
def build_rendered_template(content, template) RenderedTemplate.new content, template end
def extract_details(options) # :doc:
def extract_details(options) # :doc: details = nil LookupContext.registered_details.each do |key| value = options[key] if value (details ||= {})[key] = Array(value) end end details || NO_DETAILS end
def initialize(lookup_context)
def initialize(lookup_context) @lookup_context = lookup_context end
def prepend_formats(formats) # :doc:
def prepend_formats(formats) # :doc: formats = Array(formats) return if formats.empty? || @lookup_context.html_fallback_for_js @lookup_context.formats = formats | @lookup_context.formats end
def render
def render raise NotImplementedError end