diff options
author | artemave <artemave@gmail.com> | 2010-09-17 20:39:14 +0000 |
---|---|---|
committer | wycats <wycats@gmail.com> | 2010-12-26 22:32:15 -0800 |
commit | ddd85ef9c6a6297a8ff28816d907bbbf2eae5856 (patch) | |
tree | b2ff8ede17f042e8e007c6103b4063ce7ac75383 /actionpack/lib/action_view/path_set.rb | |
parent | 9bac649fa4ca6f05795e7cab8d30049aa2410cb8 (diff) | |
download | rails-ddd85ef9c6a6297a8ff28816d907bbbf2eae5856.tar.gz rails-ddd85ef9c6a6297a8ff28816d907bbbf2eae5856.tar.bz2 rails-ddd85ef9c6a6297a8ff28816d907bbbf2eae5856.zip |
#948 template_inheritance
Diffstat (limited to 'actionpack/lib/action_view/path_set.rb')
-rw-r--r-- | actionpack/lib/action_view/path_set.rb | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/actionpack/lib/action_view/path_set.rb b/actionpack/lib/action_view/path_set.rb index fa35120a0d..a7078b8232 100644 --- a/actionpack/lib/action_view/path_set.rb +++ b/actionpack/lib/action_view/path_set.rb @@ -11,15 +11,19 @@ module ActionView #:nodoc: end def find(*args) - find_all(*args).first || raise(MissingTemplate.new(self, "#{args[1]}/#{args[0]}", args[3], args[2])) + template = find_all(*args).first + template or raise MissingTemplate.new(self, "{#{args[1].join(',')},}/#{args[0]}", args[3], args[2]) end - def find_all(*args) - each do |resolver| - templates = resolver.find_all(*args) - return templates unless templates.empty? + def find_all(path, prefixes = [], *args) + templates = [] + prefixes.each do |prefix| + each do |resolver| + templates << resolver.find_all(path, prefix, *args) + end + # return templates unless templates.flatten!.empty? XXX this was original behavior; turns this method into find_some, but probably makes it faster end - [] + templates.flatten end def exists?(*args) |