aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/view_paths.rb
diff options
context:
space:
mode:
authorNick Sutterer <apotonick@gmail.com>2014-05-08 21:26:20 +1000
committerNick Sutterer <apotonick@gmail.com>2014-05-13 08:20:27 +1000
commit67ec435cfbb1f8d929b62dd4e76e11f7e50aa9db (patch)
tree308f788bc6e3fa02ae1be1e8e91009ce26a95f48 /actionview/lib/action_view/view_paths.rb
parent2d73a73d2f678945d57d95eae678d641ca9ea940 (diff)
downloadrails-67ec435cfbb1f8d929b62dd4e76e11f7e50aa9db.tar.gz
rails-67ec435cfbb1f8d929b62dd4e76e11f7e50aa9db.tar.bz2
rails-67ec435cfbb1f8d929b62dd4e76e11f7e50aa9db.zip
simplify AC:ViewPaths::_prefixes. by making it recursively traversing up the inheritance chain, classes can override local prefixes.
Diffstat (limited to 'actionview/lib/action_view/view_paths.rb')
-rw-r--r--actionview/lib/action_view/view_paths.rb25
1 files changed, 10 insertions, 15 deletions
diff --git a/actionview/lib/action_view/view_paths.rb b/actionview/lib/action_view/view_paths.rb
index 6c349feb1d..d96222e6dd 100644
--- a/actionview/lib/action_view/view_paths.rb
+++ b/actionview/lib/action_view/view_paths.rb
@@ -14,29 +14,24 @@ module ActionView
:locale, :locale=, :to => :lookup_context
module ClassMethods
- def parent_prefixes
- @parent_prefixes ||= begin
- parent_controller = superclass
- prefixes = []
-
- until parent_controller.abstract?
- prefixes << parent_controller.controller_path
- parent_controller = parent_controller.superclass
- end
-
- prefixes
+ def _prefixes
+ @_prefixes ||= begin
+ return _local_prefixes if superclass.abstract?
+ _local_prefixes + superclass._prefixes
end
end
+
+ def _local_prefixes
+ [controller_path]
+ end
end
# The prefixes used in render "foo" shortcuts.
def _prefixes
- @_prefixes ||= begin
- parent_prefixes = self.class.parent_prefixes
- parent_prefixes.dup.unshift(controller_path)
- end
+ self.class._prefixes
end
+
# LookupContext is the object responsible to hold all information required to lookup
# templates, i.e. view paths and details. Check ActionView::LookupContext for more
# information.