Permalink
Browse files

Bring AM up to date with new rendering stack.

  • Loading branch information...
1 parent bdf5096 commit 36eb1a686c831d5a14998bb9ac7cc60efa363373 @josevalim josevalim committed Mar 8, 2010
View
12 actionmailer/lib/action_mailer/base.rb
@@ -614,14 +614,12 @@ def collect_responses_and_parts_order(headers) #:nodoc:
def each_template(paths, name, &block) #:nodoc:
Array(paths).each do |path|
- self.class.view_paths.each do |load_paths|
- templates = load_paths.find_all(name, {}, path)
- templates = templates.uniq_by { |t| t.details[:formats] }
+ templates = lookup_context.find_all(name, path)
- unless templates.empty?
- templates.each(&block)
- return
- end
+ unless templates.empty?
+ templates = templates.uniq_by { |t| t.details[:formats] }
+ templates.each(&block)
+ return
end
end
end
View
2 actionmailer/lib/action_mailer/old_api.rb
@@ -206,7 +206,7 @@ def create_parts
if String === @body
@parts.unshift create_inline_part(@body)
elsif @parts.empty? || @parts.all? { |p| p.content_disposition =~ /^attachment/ }
- self.class.view_paths.first.find_all(@template, {}, @mailer_name).each do |template|
+ lookup_context.find_all(@template, @mailer_name).each do |template|
@parts << create_inline_part(render(:_template => template), template.mime_type)
end
View
5 actionpack/lib/action_view/lookup_context.rb
@@ -64,6 +64,11 @@ def find_template(name, prefix = nil, partial = false)
@view_paths.find(name, key.details, prefix, partial || false, key)
end
+ def find_all(name, prefix = nil, partial = false)
+ key = details_key
+ @view_paths.find_all(name, key.details, prefix, partial || false, key)
+ end
+
def template_exists?(name, prefix = nil, partial = false)
key = details_key
@view_paths.exists?(name, key.details, prefix, partial || false, key)
View
8 actionpack/lib/action_view/paths.rb
@@ -9,6 +9,14 @@ def #{method}(*args)
METHOD
end
+ def find_all(path, details = {}, prefix = nil, partial = false, key=nil)
+ each do |resolver|
+ templates = resolver.find_all(path, details, prefix, partial, key)
+ return templates unless templates.empty?
+ end
+ []
+ end
+
def find(path, details = {}, prefix = nil, partial = false, key=nil)
each do |resolver|
if template = resolver.find(path, details, prefix, partial, key)
View
2 actionpack/lib/action_view/render/rendering.rb
@@ -64,6 +64,8 @@ def _determine_template(options) #:nodoc:
Template::Text.new(options[:text], self.formats.try(:first))
elsif options.key?(:file)
with_fallbacks { find_template(options[:file], options[:_prefix]) }
+ elsif options.key?(:_template)
+ options[:_template]
elsif options.key?(:template)
find_template(options[:template], options[:_prefix])
end

0 comments on commit 36eb1a6

Please sign in to comment.