aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/new_base
diff options
context:
space:
mode:
authorCarl Lerche <carllerche@mac.com>2009-03-20 16:50:51 -0700
committerYehuda Katz <wycats@gmail.com>2009-03-23 10:23:14 -0700
commitc6123c37030b715d088860ea1ca79060659b0e3c (patch)
tree36da3c375333660c0ff41dcf113dfdf3f82c9bde /actionpack/lib/action_controller/new_base
parent81e814adfad6d4bba1af5f70a5a409f6d71f8f6c (diff)
downloadrails-c6123c37030b715d088860ea1ca79060659b0e3c.tar.gz
rails-c6123c37030b715d088860ea1ca79060659b0e3c.tar.bz2
rails-c6123c37030b715d088860ea1ca79060659b0e3c.zip
Finished implementing layout for render :text
Diffstat (limited to 'actionpack/lib/action_controller/new_base')
-rw-r--r--actionpack/lib/action_controller/new_base/layouts.rb23
-rw-r--r--actionpack/lib/action_controller/new_base/renderer.rb10
2 files changed, 25 insertions, 8 deletions
diff --git a/actionpack/lib/action_controller/new_base/layouts.rb b/actionpack/lib/action_controller/new_base/layouts.rb
index cdf2224e39..da516c0b85 100644
--- a/actionpack/lib/action_controller/new_base/layouts.rb
+++ b/actionpack/lib/action_controller/new_base/layouts.rb
@@ -1,16 +1,33 @@
module ActionController
module Layouts
def render_to_string(options)
- options[:_layout] = options[:layout] || _layout
+ if !options.key?(:text) || options.key?(:layout)
+ options[:_layout] = options.key?(:layout) ? _layout_for_option(options[:layout]) : _layout
+ end
+
super
end
+ private
+
+ def _layout_for_option(name)
+ case name
+ when String then _layout_for_name(name)
+ when true then _layout
+ when false then nil
+ end
+ end
+
+ def _layout_for_name(name)
+ view_paths.find_by_parts(name, formats, "layouts")
+ end
+
def _layout
begin
- view_paths.find_by_parts(controller_path, formats, "layouts")
+ _layout_for_name(controller_path)
rescue ActionView::MissingTemplate
begin
- view_paths.find_by_parts("application", formats, "layouts")
+ _layout_for_name("application")
rescue ActionView::MissingTemplate
end
end
diff --git a/actionpack/lib/action_controller/new_base/renderer.rb b/actionpack/lib/action_controller/new_base/renderer.rb
index 6abf3cef11..24ca9be077 100644
--- a/actionpack/lib/action_controller/new_base/renderer.rb
+++ b/actionpack/lib/action_controller/new_base/renderer.rb
@@ -38,13 +38,13 @@ module ActionController
options[:_template] = ActionView::TextTemplate.new(_text(options))
template = nil
elsif options.key?(:template)
- template = options.delete(:template)
+ options[:_template_name] = options[:template]
elsif options.key?(:action)
- template = options.delete(:action).to_s
+ options[:_template_name] = options[:action].to_s
options[:_prefix] = _prefix
end
- super(template, options)
+ super(options)
end
private
@@ -54,7 +54,7 @@ module ActionController
end
def _text(options)
- text = options.delete(:text)
+ text = options[:text]
case text
when nil then " "
@@ -63,7 +63,7 @@ module ActionController
end
def _process_options(options)
- if status = options.delete(:status)
+ if status = options[:status]
response.status = status.to_i
end
end