diff options
author | Carl Lerche <carllerche@mac.com> | 2009-03-20 16:50:51 -0700 |
---|---|---|
committer | Yehuda Katz <wycats@gmail.com> | 2009-03-23 10:23:14 -0700 |
commit | c6123c37030b715d088860ea1ca79060659b0e3c (patch) | |
tree | 36da3c375333660c0ff41dcf113dfdf3f82c9bde /actionpack/lib/action_controller/new_base | |
parent | 81e814adfad6d4bba1af5f70a5a409f6d71f8f6c (diff) | |
download | rails-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.rb | 23 | ||||
-rw-r--r-- | actionpack/lib/action_controller/new_base/renderer.rb | 10 |
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 |