aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/abstract_controller
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-10-18 22:52:36 -0200
committerYehuda Katz <wycats@gmail.com>2009-11-01 02:23:48 +0100
commit43d5504f0a6a831474d149aa5f1ebb2545790152 (patch)
treeab3c28e28279c029784b5c3e129d0e3c0d8faa75 /actionpack/lib/abstract_controller
parent684c2dc20801b7fcc941ec9478d33d3bf7c74551 (diff)
downloadrails-43d5504f0a6a831474d149aa5f1ebb2545790152.tar.gz
rails-43d5504f0a6a831474d149aa5f1ebb2545790152.tar.bz2
rails-43d5504f0a6a831474d149aa5f1ebb2545790152.zip
Move all render and layout pieces required in ActionMailer from ActionController to AbstractController.
Diffstat (limited to 'actionpack/lib/abstract_controller')
-rw-r--r--actionpack/lib/abstract_controller/layouts.rb9
-rw-r--r--actionpack/lib/abstract_controller/rendering_controller.rb19
2 files changed, 28 insertions, 0 deletions
diff --git a/actionpack/lib/abstract_controller/layouts.rb b/actionpack/lib/abstract_controller/layouts.rb
index 4723e18a01..f4f1d41360 100644
--- a/actionpack/lib/abstract_controller/layouts.rb
+++ b/actionpack/lib/abstract_controller/layouts.rb
@@ -157,6 +157,7 @@ module AbstractController
end
private
+
# This will be overwritten by _write_layout_method
def _layout(details) end
@@ -191,6 +192,14 @@ module AbstractController
end
end
+ def _determine_template(options)
+ super
+
+ return if (options.key?(:text) || options.key?(:inline) || options.key?(:partial)) && !options.key?(:layout)
+ layout = options.key?(:layout) ? options[:layout] : :default
+ options[:_layout] = _layout_for_option(layout, options[:_template].details)
+ end
+
# Take in the name and details and find a Template.
#
# ==== Parameters
diff --git a/actionpack/lib/abstract_controller/rendering_controller.rb b/actionpack/lib/abstract_controller/rendering_controller.rb
index bbf941aa32..9fb7935ce4 100644
--- a/actionpack/lib/abstract_controller/rendering_controller.rb
+++ b/actionpack/lib/abstract_controller/rendering_controller.rb
@@ -109,6 +109,21 @@ module AbstractController
# to a directory.
# _partial<TrueClass, FalseClass>:: Whether or not the file to look up is a partial
def _determine_template(options)
+ if options.key?(:text)
+ options[:_template] = ActionView::TextTemplate.new(options[:text], formats.first)
+ elsif options.key?(:inline)
+ handler = ActionView::Template.handler_class_for_extension(options[:type] || "erb")
+ template = ActionView::Template.new(options[:inline], "inline #{options[:inline].inspect}", handler, {})
+ options[:_template] = template
+ elsif options.key?(:template)
+ options[:_template_name] = options[:template]
+ elsif options.key?(:file)
+ options[:_template_name] = options[:file]
+ elsif !options.key?(:partial)
+ options[:_template_name] ||= options[:action]
+ options[:_prefix] = _prefix
+ end
+
name = (options[:_template_name] || action_name).to_s
options[:_template] ||= with_template_cache(name) do
@@ -124,6 +139,10 @@ module AbstractController
view_paths.exists?(name, details, options[:_prefix], options[:_partial])
end
+ def _prefix
+ self.class.name.underscore
+ end
+
def with_template_cache(name)
yield
end