diff options
author | José Valim <jose.valim@gmail.com> | 2011-05-04 08:37:59 +0200 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-05-04 08:37:59 +0200 |
commit | 4758d37044ac7a938c8b1dbd90470410a0566491 (patch) | |
tree | 3a3aedaec37ea8ef02b6e99f104b4f1fc2f721e7 /actionpack/lib/action_view | |
parent | bff374050d5a7e237fda98a1d4cc6256484e94f2 (diff) | |
parent | eb327c1bab918c7d9ab723550f767529771d2e19 (diff) | |
download | rails-4758d37044ac7a938c8b1dbd90470410a0566491.tar.gz rails-4758d37044ac7a938c8b1dbd90470410a0566491.tar.bz2 rails-4758d37044ac7a938c8b1dbd90470410a0566491.zip |
Merge remote branch 'apotonick/presentation'
Diffstat (limited to 'actionpack/lib/action_view')
-rw-r--r-- | actionpack/lib/action_view/base.rb | 5 | ||||
-rw-r--r-- | actionpack/lib/action_view/lookup_context.rb | 3 | ||||
-rw-r--r-- | actionpack/lib/action_view/renderer/abstract_renderer.rb | 3 | ||||
-rw-r--r-- | actionpack/lib/action_view/renderer/partial_renderer.rb | 10 | ||||
-rw-r--r-- | actionpack/lib/action_view/renderer/renderer.rb | 13 |
5 files changed, 16 insertions, 18 deletions
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/lookup_context.rb b/actionpack/lib/action_view/lookup_context.rb index 06c607931d..797a55b2b6 100644 --- a/actionpack/lib/action_view/lookup_context.rb +++ b/actionpack/lib/action_view/lookup_context.rb @@ -9,6 +9,8 @@ module ActionView # generate a key, given to view paths, used in the resolver cache lookup. Since # this key is generated just once during the request, it speeds up all cache accesses. class LookupContext #:nodoc: + attr_accessor :prefixes + mattr_accessor :fallbacks @@fallbacks = FallbackFileSystemResolver.instances @@ -62,6 +64,7 @@ module ActionView @details, @details_key = { :handlers => default_handlers }, nil @frozen_formats, @skip_default_locale = false, false @cache = true + @prefixes = [] self.view_paths = view_paths self.registered_detail_setters.each do |key, setter| 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 |