# module AbstractController::Rendering

### Constants

DEFAULT_PROTECTED_INSTANCE_VARIABLES

### Public Instance Methods

render(*args, &block) click to toggle source

Normalize arguments, options and then delegates #render_to_body and sticks the result in self.response_body.

    # File lib/abstract_controller/rendering.rb, line 86
    def render(*args, &block)
      options = _normalize_render(*args, &block)
      self.response_body = render_to_body(options)
    end

render_to_body(options = {}) click to toggle source

Raw rendering of a template to a Rack-compatible body. :api: plugin

    # File lib/abstract_controller/rendering.rb, line 101
    def render_to_body(options = {})
      _process_options(options)
      _render_template(options)
    end

render_to_string(*args, &block) click to toggle source

Raw rendering of a template to a string. Just convert the results of render_response into a String. :api: plugin

    # File lib/abstract_controller/rendering.rb, line 94
    def render_to_string(*args, &block)
      options = _normalize_render(*args, &block)
      render_to_body(options)
    end

view_assigns() click to toggle source

This method should return a hash with assigns. You can overwrite this configuration per controller. :api: public

    # File lib/abstract_controller/rendering.rb, line 121
    def view_assigns
      hash = {}
      variables  = instance_variable_names
      variables -= protected_instance_variables
      variables -= DEFAULT_PROTECTED_INSTANCE_VARIABLES
      variables.each { |name| hash[name.to_s[1, name.length]] = instance_variable_get(name) }
      hash
    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

View#render

    Returns String with the rendered template

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

    # File lib/abstract_controller/rendering.rb, line 75
    def view_context
      view_context_class.new(view_renderer, view_assigns, self)
    end

view_context_class() click to toggle source

    # File lib/abstract_controller/rendering.rb, line 62
    def view_context_class
      @_view_context_class ||= self.class.view_context_class
    end

view_renderer() click to toggle source

Returns an object that is able to render templates.

    # File lib/abstract_controller/rendering.rb, line 80
    def view_renderer
      @_view_renderer ||= ActionView::Renderer.new(lookup_context)
    end