Module: AbstractController::Rendering
- Extended by:
- ActiveSupport::Concern
- Includes:
- ViewPaths
- Defined in:
- actionpack/lib/abstract_controller/rendering.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- DEFAULT_PROTECTED_INSTANCE_VARIABLES =
%w( @_action_name @_response_body @_formats @_prefixes @_config @_view_context_class @_view_renderer @_lookup_context
Instance Method Summary collapse
-
#_render_template(options) ⇒ Object
Find and renders a template based on the options given.
- #initialize ⇒ Object
-
#process ⇒ Object
Overwrite process to setup I18n proxy.
-
#protected_instance_variables ⇒ Object
Explicitly define protected_instance_variables so it can be inherited and overwritten by other modules if needed.
-
#render(*args, &block) ⇒ Object
Normalize arguments, options and then delegates render_to_body and sticks the result in self.response_body.
-
#render_to_body(options = {}) ⇒ Object
Raw rendering of a template to a Rack-compatible body.
-
#render_to_string(*args, &block) ⇒ Object
Raw rendering of a template to a string.
-
#view_assigns ⇒ Object
This method should return a hash with assigns.
-
#view_context ⇒ Object
An instance of a view class.
- #view_context_class ⇒ Object
-
#view_renderer ⇒ Object
Returns an object that is able to render templates.
Methods included from ActiveSupport::Concern
append_features, extended, included
Methods included from ViewPaths
#_prefixes, #append_view_path, #details_for_lookup, #lookup_context, #prepend_view_path
Instance Method Details
#_render_template(options) ⇒ Object
Find and renders a template based on the options given. :api: private
119 120 121 |
# File 'actionpack/lib/abstract_controller/rendering.rb', line 119 def _render_template() #:nodoc: view_renderer.render(view_context, ) end |
#initialize ⇒ Object
72 73 74 75 |
# File 'actionpack/lib/abstract_controller/rendering.rb', line 72 def initialize(*) @_view_context_class = nil super end |
#process ⇒ Object
Overwrite process to setup I18n proxy.
43 44 45 46 47 48 |
# File 'actionpack/lib/abstract_controller/rendering.rb', line 43 def process(*) #:nodoc: old_config, I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context) super ensure I18n.config = old_config end |
#protected_instance_variables ⇒ Object
Explicitly define protected_instance_variables so it can be inherited and overwritten by other modules if needed.
64 65 66 |
# File 'actionpack/lib/abstract_controller/rendering.rb', line 64 def protected_instance_variables config.protected_instance_variables end |
#render(*args, &block) ⇒ Object
Normalize arguments, options and then delegates render_to_body and sticks the result in self.response_body.
97 98 99 100 |
# File 'actionpack/lib/abstract_controller/rendering.rb', line 97 def render(*args, &block) = _normalize_render(*args, &block) self.response_body = render_to_body() end |
#render_to_body(options = {}) ⇒ Object
Raw rendering of a template to a Rack-compatible body. :api: plugin
112 113 114 115 |
# File 'actionpack/lib/abstract_controller/rendering.rb', line 112 def render_to_body( = {}) () _render_template() end |
#render_to_string(*args, &block) ⇒ Object
Raw rendering of a template to a string. Just convert the results of render_response into a String. :api: plugin
105 106 107 108 |
# File 'actionpack/lib/abstract_controller/rendering.rb', line 105 def render_to_string(*args, &block) = _normalize_render(*args, &block) render_to_body() end |
#view_assigns ⇒ Object
This method should return a hash with assigns. You can overwrite this configuration per controller. :api: public
131 132 133 134 135 136 137 138 |
# File 'actionpack/lib/abstract_controller/rendering.rb', line 131 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 ⇒ Object
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
Returns String with the rendered template
Override this method in a module to change the default behavior.
86 87 88 |
# File 'actionpack/lib/abstract_controller/rendering.rb', line 86 def view_context view_context_class.new(view_renderer, view_assigns, self) end |
#view_context_class ⇒ Object
68 69 70 |
# File 'actionpack/lib/abstract_controller/rendering.rb', line 68 def view_context_class @_view_context_class || self.class.view_context_class end |
#view_renderer ⇒ Object
Returns an object that is able to render templates.
91 92 93 |
# File 'actionpack/lib/abstract_controller/rendering.rb', line 91 def view_renderer @_view_renderer ||= ActionView::Renderer.new(lookup_context) end |