Module: ActionView::Rendering
Relationships & Source Files | |
Namespace Children | |
Modules:
| |
Extension / Inclusion / Inheritance Descendants | |
Included In:
| |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
::ActiveSupport::Concern
|
|
Instance Chain:
self,
ViewPaths
|
|
Defined in: | actionview/lib/action_view/rendering.rb |
Class Method Summary
::ActiveSupport::Concern
- Extended
class_methods | Define class methods from given block. |
included | Evaluate given block in context of base class, so that you can write class macros here. |
prepended | Evaluate given block in context of base class, so that you can write class macros here. |
append_features, prepend_features |
Instance Attribute Summary
Instance Method Summary
- #initialize
- #render_to_body(options = {})
-
#view_context
An instance of a view class.
- #view_context_class
-
#_normalize_args(action = nil, options = {})
private
Normalize args by converting render “foo” to render action: “foo” and render “foo/bar” to render template: “foo/bar”.
-
#_process_format(format)
private
Assign the rendered format to look up context.
-
#_process_render_template_options(options)
private
Normalize options.
-
#_render_template(options)
private
Find and render a template based on the options given.
-
#process
Internal use only
Override process to set up
::I18n
proxy. -
#view_renderer
Internal use only
Returns an object that is able to render templates.
ViewPaths
- Included
#any_templates?, | |
#append_view_path | Append a path to the list of view paths for the current |
#details_for_lookup, | |
#lookup_context |
|
#prepend_view_path | Prepend a path to the list of view paths for the current |
#template_exists?, | |
#_prefixes | The prefixes used in render “foo” shortcuts. |
Instance Attribute Details
#rendered_format (readonly)
[ GitHub ]# File 'actionview/lib/action_view/rendering.rb', line 30
attr_internal_reader :rendered_format
Instance Method Details
#_normalize_args(action = nil, options = {}) (private)
Normalize args by converting render “foo” to render action: “foo” and render “foo/bar” to render template: “foo/bar”.
# File 'actionview/lib/action_view/rendering.rb', line 153
def _normalize_args(action = nil, = {}) = super(action, ) case action when NilClass when Hash = action when String, Symbol action = action.to_s key = action.include?(?/) ? :template : :action [key] = action else if action.respond_to?(:permitted?) && action.permitted? = action elsif action.respond_to?(:render_in) [:renderable] = action else [:partial] = action end end end
#_process_format(format) (private)
Assign the rendered format to look up context.
# File 'actionview/lib/action_view/rendering.rb', line 146
def _process_format(format) super lookup_context.formats = [format.to_sym] if format.to_sym end
#_process_render_template_options(options) (private)
Normalize options.
# File 'actionview/lib/action_view/rendering.rb', line 177
def ( ) if [:partial] == true [:partial] = action_name end if ! .keys.intersect?([:partial, :file, :template]) [:prefixes] ||= _prefixes end [:template] ||= ( [:action] || action_name).to_s end
#_render_template(options) (private)
Find and render a template based on the options given.
# File 'actionview/lib/action_view/rendering.rb', line 127
def _render_template( ) variant = .delete(:variant) assigns = .delete(:assigns) context = view_context context.assign assigns if assigns lookup_context.variants = variant if variant rendered_template = context.in_rendering_context( ) do |renderer| renderer.render_to_object(context, ) end rendered_format = rendered_template.format || lookup_context.formats.first @_rendered_format = Template::Types[rendered_format] rendered_template.body end
#initialize
[ GitHub ]# File 'actionview/lib/action_view/rendering.rb', line 32
def initialize @_rendered_format = nil super end
#process
Override process to set up ::I18n
proxy.
#render_to_body(options = {})
[ GitHub ]# File 'actionview/lib/action_view/rendering.rb', line 119
def render_to_body( = {}) ( ) ( ) _render_template( ) end
#view_context
An instance of a view class. The default view class is 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 'actionview/lib/action_view/rendering.rb', line 109
def view_context view_context_class.new(lookup_context, view_assigns, self) end
#view_context_class
[ GitHub ]# File 'actionview/lib/action_view/rendering.rb', line 95
def view_context_class self.class.view_context_class end
#view_renderer
Returns an object that is able to render templates.
# File 'actionview/lib/action_view/rendering.rb', line 114
def view_renderer # :nodoc: # Lifespan: Per controller @_view_renderer ||= ActionView::Renderer.new(lookup_context) end