module ActionView::Rendering

Attributes

rendered_format[R]

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/action_view/rendering.rb, line 31
def initialize
  @rendered_format = nil
  super
end

Public Instance Methods

render_to_body(options = {}) click to toggle source
# File lib/action_view/rendering.rb, line 101
def render_to_body(options = {})
  _process_options(options)
  _render_template(options)
end
view_context() click to toggle source

An instance of a view class. The default view class is ActionView::Base.

The view class must have the following methods:

  • View.new(lookup_context, assigns, controller) — Create a new ActionView instance for a controller and we can also pass the arguments.

  • View#render(option) — Returns String with the rendered template.

Override this method in a module to change the default behavior.

# File lib/action_view/rendering.rb, line 91
def view_context
  view_context_class.new(lookup_context, view_assigns, self)
end
view_context_class() click to toggle source
# File lib/action_view/rendering.rb, line 77
def view_context_class
  self.class.view_context_class
end

Private Instance Methods

_normalize_args(action = nil, options = {}) click to toggle source

Normalize args by converting render “foo” to render :action => “foo” and render “foo/bar” to render :template => “foo/bar”.

Calls superclass method
# File lib/action_view/rendering.rb, line 134
def _normalize_args(action = nil, options = {})
  options = super(action, options)
  case action
  when NilClass
  when Hash
    options = action
  when String, Symbol
    action = action.to_s
    key = action.include?(?/) ? :template : :action
    options[key] = action
  else
    if action.respond_to?(:permitted?) && action.permitted?
      options = action
    elsif action.respond_to?(:render_in)
      options[:renderable] = action
    else
      options[:partial] = action
    end
  end

  options
end
_normalize_options(options) click to toggle source

Normalize options.

Calls superclass method
# File lib/action_view/rendering.rb, line 158
def _normalize_options(options)
  options = super(options)
  if options[:partial] == true
    options[:partial] = action_name
  end

  if (options.keys & [:partial, :file, :template]).empty?
    options[:prefixes] ||= _prefixes
  end

  options[:template] ||= (options[:action] || action_name).to_s
  options
end
_process_format(format) click to toggle source

Assign the rendered format to look up context.

Calls superclass method
# File lib/action_view/rendering.rb, line 127
def _process_format(format)
  super
  lookup_context.formats = [format.to_sym] if format.to_sym
end
_render_template(options) click to toggle source

Find and render a template based on the options given.

# File lib/action_view/rendering.rb, line 108
def _render_template(options)
  variant = options.delete(:variant)
  assigns = options.delete(:assigns)
  context = view_context

  context.assign assigns if assigns
  lookup_context.variants = variant if variant

  rendered_template = context.in_rendering_context(options) do |renderer|
    renderer.render_to_object(context, options)
  end

  rendered_format = rendered_template.format || lookup_context.formats.first
  @rendered_format = Template::Types[rendered_format]

  rendered_template.body
end