Class: ActionView::Renderer
- Inherits:
-
Object
- Object
- ActionView::Renderer
- Defined in:
- lib/action_view/renderer/renderer.rb
Overview
This is the main entry point for rendering. It basically delegates to other objects like TemplateRenderer and PartialRenderer which actually renders the template.
Instance Attribute Summary collapse
-
#lookup_context ⇒ Object
Returns the value of attribute lookup_context.
Instance Method Summary collapse
-
#initialize(lookup_context) ⇒ Renderer
constructor
A new instance of Renderer.
-
#render(context, options) ⇒ Object
Main render entry point shared by AV and AC.
-
#render_body(context, options) ⇒ Object
Render but returns a valid Rack body.
-
#render_partial(context, options, &block) ⇒ Object
Direct access to partial rendering.
-
#render_template(context, options) ⇒ Object
Direct accessor to template rendering.
Constructor Details
#initialize(lookup_context) ⇒ Renderer
Returns a new instance of Renderer.
8 9 10 |
# File 'lib/action_view/renderer/renderer.rb', line 8 def initialize(lookup_context) @lookup_context = lookup_context end |
Instance Attribute Details
#lookup_context ⇒ Object
Returns the value of attribute lookup_context.
6 7 8 |
# File 'lib/action_view/renderer/renderer.rb', line 6 def lookup_context @lookup_context end |
Instance Method Details
#render(context, options) ⇒ Object
Main render entry point shared by AV and AC.
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/action_view/renderer/renderer.rb', line 13 def render(context, ) if (.is_a?(HashWithIndifferentAccess) && !.respond_to?(:permitted?)) || (.respond_to?(:permitted?) && !.permitted?) raise ArgumentError, "render parameters are not permitted" end if .key?(:partial) render_partial(context, ) else render_template(context, ) end end |
#render_body(context, options) ⇒ Object
Render but returns a valid Rack body. If fibers are defined, we return a streaming body that renders the template piece by piece.
Note that partials are not supported to be rendered with streaming, so in such cases, we just wrap them in an array.
31 32 33 34 35 36 37 |
# File 'lib/action_view/renderer/renderer.rb', line 31 def render_body(context, ) if .key?(:partial) [render_partial(context, )] else StreamingTemplateRenderer.new(@lookup_context).render(context, ) end end |
#render_partial(context, options, &block) ⇒ Object
Direct access to partial rendering.
45 46 47 |
# File 'lib/action_view/renderer/renderer.rb', line 45 def render_partial(context, , &block) #:nodoc: _partial_renderer.render(context, , block) end |
#render_template(context, options) ⇒ Object
Direct accessor to template rendering.
40 41 42 |
# File 'lib/action_view/renderer/renderer.rb', line 40 def render_template(context, ) #:nodoc: _template_renderer.render(context, ) end |