aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/renderer/renderer.rb
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2011-05-01 12:37:57 +0200
committerJosé Valim <jose.valim@gmail.com>2011-05-01 13:40:13 +0200
commit367bdc53611fe1da9cedda3220a83d3f39409cff (patch)
treef9f2fe13521d436a61d7068b7fc1b7d3e27f363e /actionpack/lib/action_view/renderer/renderer.rb
parent33cc001f9158463389a9c9c321de0dbdccb1df8d (diff)
downloadrails-367bdc53611fe1da9cedda3220a83d3f39409cff.tar.gz
rails-367bdc53611fe1da9cedda3220a83d3f39409cff.tar.bz2
rails-367bdc53611fe1da9cedda3220a83d3f39409cff.zip
Remove view dependency from AV::Renderer.
Diffstat (limited to 'actionpack/lib/action_view/renderer/renderer.rb')
-rw-r--r--actionpack/lib/action_view/renderer/renderer.rb46
1 files changed, 17 insertions, 29 deletions
diff --git a/actionpack/lib/action_view/renderer/renderer.rb b/actionpack/lib/action_view/renderer/renderer.rb
index 7b95c2dd92..582ed2f9f8 100644
--- a/actionpack/lib/action_view/renderer/renderer.rb
+++ b/actionpack/lib/action_view/renderer/renderer.rb
@@ -3,37 +3,25 @@ module ActionView
# to other objects like TemplateRenderer and PartialRenderer which
# actually renders the template.
class Renderer
- attr_accessor :lookup_context
+ attr_accessor :lookup_context, :controller
- # TODO: render_context should not be an initialization parameter
- # TODO: controller should be received on initialization
- def initialize(lookup_context, render_context)
- @render_context = render_context
+ def initialize(lookup_context, controller)
@lookup_context = lookup_context
- @view_flow = OutputFlow.new
+ @controller = controller
end
- # Returns the result of a render that's dictated by the options hash. The primary options are:
- #
- # * <tt>:partial</tt> - See ActionView::Partials.
- # * <tt>:file</tt> - Renders an explicit template file (this used to be the old default), add :locals to pass in those.
- # * <tt>:inline</tt> - Renders an inline template similar to how it's done in the controller.
- # * <tt>:text</tt> - Renders the text passed in out.
- #
- # If no options hash is passed or :update specified, the default is to render a partial and use the second parameter
- # as the locals hash.
- def render(options = {}, locals = {}, &block)
+ def render(context, options = {}, locals = {}, &block)
case options
when Hash
if block_given?
- _render_partial(options.merge(:partial => options[:layout]), &block)
+ _render_partial(context, options.merge(:partial => options[:layout]), &block)
elsif options.key?(:partial)
- _render_partial(options)
+ _render_partial(context, options)
else
- _render_template(options)
+ _render_template(context, options)
end
else
- _render_partial(:partial => options, :locals => locals)
+ _render_partial(context, :partial => options, :locals => locals)
end
end
@@ -42,30 +30,30 @@ module ActionView
#
# Note that partials are not supported to be rendered with streaming,
# so in such cases, we just wrap them in an array.
- def render_body(options)
+ def render_body(context, options)
if options.key?(:partial)
- [_render_partial(options)]
+ [_render_partial(context, options)]
else
- StreamingTemplateRenderer.new(@render_context, @lookup_context).render(options)
+ StreamingTemplateRenderer.new(@lookup_context, @controller).render(context, options)
end
end
private
- def _render_template(options) #:nodoc:
- _template_renderer.render(options)
+ def _render_template(context, options) #:nodoc:
+ _template_renderer.render(context, options)
end
def _template_renderer #:nodoc:
- @_template_renderer ||= TemplateRenderer.new(@render_context, @lookup_context)
+ @_template_renderer ||= TemplateRenderer.new(@lookup_context, @controller)
end
- def _render_partial(options, &block) #:nodoc:
- _partial_renderer.setup(options, block).render
+ def _render_partial(context, options, &block) #:nodoc:
+ _partial_renderer.render(context, options, block)
end
def _partial_renderer #:nodoc:
- @_partial_renderer ||= PartialRenderer.new(@render_context, @lookup_context)
+ @_partial_renderer ||= PartialRenderer.new(@lookup_context, @controller)
end
end
end \ No newline at end of file