From eb327c1bab918c7d9ab723550f767529771d2e19 Mon Sep 17 00:00:00 2001 From: Nick Sutterer Date: Wed, 4 May 2011 00:12:11 +0200 Subject: no @controller dependency in Renderers. --- actionpack/lib/abstract_controller/rendering.rb | 2 +- actionpack/lib/action_view/base.rb | 5 +++-- actionpack/lib/action_view/renderer/abstract_renderer.rb | 3 +-- actionpack/lib/action_view/renderer/partial_renderer.rb | 10 +++------- actionpack/lib/action_view/renderer/renderer.rb | 13 ++++++------- 5 files changed, 14 insertions(+), 19 deletions(-) (limited to 'actionpack') diff --git a/actionpack/lib/abstract_controller/rendering.rb b/actionpack/lib/abstract_controller/rendering.rb index 7f1a790ecc..8789168ca7 100644 --- a/actionpack/lib/abstract_controller/rendering.rb +++ b/actionpack/lib/abstract_controller/rendering.rb @@ -104,7 +104,7 @@ module AbstractController # Returns an object that is able to render templates. def view_renderer - @view_renderer ||= ActionView::Renderer.new(lookup_context, self) + @view_renderer ||= ActionView::Renderer.new(lookup_context) end # Normalize arguments, options and then delegates render_to_body and diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb index ca0a89c8a5..db3c83d028 100644 --- a/actionpack/lib/action_view/base.rb +++ b/actionpack/lib/action_view/base.rb @@ -199,8 +199,9 @@ module ActionView #:nodoc: elsif lookup_context = context.is_a?(ActionView::LookupContext) ? context : ActionView::LookupContext.new(context) - lookup_context.formats = formats if formats - @view_renderer = ActionView::Renderer.new(lookup_context, controller) + lookup_context.formats = formats if formats + lookup_context.prefixes = controller._prefixes if controller + @view_renderer = ActionView::Renderer.new(lookup_context) end _prepare_context diff --git a/actionpack/lib/action_view/renderer/abstract_renderer.rb b/actionpack/lib/action_view/renderer/abstract_renderer.rb index d389105a7a..60c527beeb 100644 --- a/actionpack/lib/action_view/renderer/abstract_renderer.rb +++ b/actionpack/lib/action_view/renderer/abstract_renderer.rb @@ -3,9 +3,8 @@ module ActionView delegate :find_template, :template_exists?, :with_fallbacks, :update_details, :with_layout_format, :formats, :freeze_formats, :to => :@lookup_context - def initialize(lookup_context, controller) + def initialize(lookup_context) @lookup_context = lookup_context - @controller = controller end def render diff --git a/actionpack/lib/action_view/renderer/partial_renderer.rb b/actionpack/lib/action_view/renderer/partial_renderer.rb index 70327b16c4..a351fbc04f 100644 --- a/actionpack/lib/action_view/renderer/partial_renderer.rb +++ b/actionpack/lib/action_view/renderer/partial_renderer.rb @@ -219,7 +219,7 @@ module ActionView def initialize(*) super - @partial_names = PARTIAL_NAMES[@controller.class.name] + @partial_names = PARTIAL_NAMES[@lookup_context.prefixes.first] end def render(context, options, block) @@ -304,10 +304,6 @@ module ActionView self end - def controller_prefixes - @controller_prefixes ||= @controller && @controller._prefixes - end - def collection if @options.key?(:collection) collection = @options[:collection] @@ -331,7 +327,7 @@ module ActionView end def find_template(path=@path, locals=@locals.keys) - prefixes = path.include?(?/) ? [] : controller_prefixes + prefixes = path.include?(?/) ? [] : @lookup_context.prefixes @lookup_context.find_template(path, prefixes, true, locals) end @@ -372,7 +368,7 @@ module ActionView object = object.to_model if object.respond_to?(:to_model) object.class.model_name.partial_path.dup.tap do |partial| - path = controller_prefixes.first + path = @lookup_context.prefixes.first partial.insert(0, "#{File.dirname(path)}/") if partial.include?(?/) && path.include?(?/) end end diff --git a/actionpack/lib/action_view/renderer/renderer.rb b/actionpack/lib/action_view/renderer/renderer.rb index 1fa51d276f..bf1b5a7d22 100644 --- a/actionpack/lib/action_view/renderer/renderer.rb +++ b/actionpack/lib/action_view/renderer/renderer.rb @@ -3,11 +3,10 @@ module ActionView # to other objects like TemplateRenderer and PartialRenderer which # actually renders the template. class Renderer - attr_accessor :lookup_context, :controller + attr_accessor :lookup_context - def initialize(lookup_context, controller) + def initialize(lookup_context) @lookup_context = lookup_context - @controller = controller end # Main render entry point shared by AV and AC. @@ -28,7 +27,7 @@ module ActionView if options.key?(:partial) [render_partial(context, options)] else - StreamingTemplateRenderer.new(@lookup_context, @controller).render(context, options) + StreamingTemplateRenderer.new(@lookup_context).render(context, options) end end @@ -45,11 +44,11 @@ module ActionView private def _template_renderer #:nodoc: - @_template_renderer ||= TemplateRenderer.new(@lookup_context, @controller) + @_template_renderer ||= TemplateRenderer.new(@lookup_context) end def _partial_renderer #:nodoc: - @_partial_renderer ||= PartialRenderer.new(@lookup_context, @controller) + @_partial_renderer ||= PartialRenderer.new(@lookup_context) end end -end \ No newline at end of file +end -- cgit v1.2.3