Class: ActionView::StreamingTemplateRenderer
- Inherits:
-
TemplateRenderer
- Object
- AbstractRenderer
- TemplateRenderer
- ActionView::StreamingTemplateRenderer
- Defined in:
- lib/action_view/renderer/streaming_template_renderer.rb
Overview
TODO
-
Support streaming from child templates, partials and so on.
-
Rack::Cache needs to support streaming bodies
Defined Under Namespace
Classes: Body
Instance Method Summary collapse
-
#render_template(view, template, layout_name = nil, locals = {}) ⇒ Object
For streaming, instead of rendering a given a template, we return a Body object that responds to each.
Methods inherited from TemplateRenderer
Methods inherited from AbstractRenderer
Constructor Details
This class inherits a constructor from ActionView::AbstractRenderer
Instance Method Details
#render_template(view, template, layout_name = nil, locals = {}) ⇒ Object
For streaming, instead of rendering a given a template, we return a Body object that responds to each. This object is initialized with a block that knows how to render the template.
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/action_view/renderer/streaming_template_renderer.rb', line 45 def render_template(view, template, layout_name = nil, locals = {}) # :nodoc: return [super.body] unless layout_name && template.supports_streaming? locals ||= {} layout = layout_name && find_layout(layout_name, locals.keys, [formats.first]) Body.new do |buffer| delayed_render(buffer, template, layout, view, locals) end end |