lib/puffer/path_set.rb in puffer-0.0.11 vs lib/puffer/path_set.rb in puffer-0.0.12
- old
+ new
@@ -1,17 +1,24 @@
module Puffer
class PathSet < ::ActionView::PathSet
+ class_attribute :_fallbacks
+ self._fallbacks = []
+
def find(path, prefix = nil, partial = false, details = {}, key = nil)
+ prefixes = [prefix].concat _fallbacks
+ paths = prefixes.map {|prefix| "#{prefix}/#{path}"}.join(', ')
+
begin
- super(path, prefix, partial, details, key)
- rescue ::ActionView::MissingTemplate => e
- begin
- super(path, 'puffer', partial, details, key)
- rescue ::ActionView::MissingTemplate => ee
- raise e
+ template = begin
+ super(path, prefixes.shift.to_s, partial, details, key)
+ rescue ::ActionView::MissingTemplate => e
+ nil
end
- end
+ end until prefixes.empty? || template
+
+ raise ::ActionView::MissingTemplate.new(self, paths, details, partial) unless template
+ template
end
end
end