2009-03-19 18:45:48 -04:00
|
|
|
module ActionController
|
|
|
|
module Layouts
|
2009-05-07 11:29:22 -04:00
|
|
|
extend ActiveSupport::DependencyModule
|
|
|
|
|
2009-04-07 17:57:18 -04:00
|
|
|
depends_on ActionController::Renderer
|
|
|
|
depends_on AbstractController::Layouts
|
|
|
|
|
2009-04-07 20:57:20 -04:00
|
|
|
module ClassMethods
|
|
|
|
def _implied_layout_name
|
|
|
|
controller_path
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2009-04-17 19:34:49 -04:00
|
|
|
def render_to_body(options)
|
2009-04-07 20:57:20 -04:00
|
|
|
# render :text => ..., :layout => ...
|
|
|
|
# or
|
|
|
|
# render :anything_else
|
2009-05-01 21:17:08 -04:00
|
|
|
if (!options.key?(:text) && !options.key?(:inline)) || options.key?(:layout)
|
2009-03-23 15:07:34 -04:00
|
|
|
options[:_layout] = options.key?(:layout) ? _layout_for_option(options[:layout]) : _default_layout
|
2009-03-20 19:50:51 -04:00
|
|
|
end
|
|
|
|
|
2009-03-19 18:45:48 -04:00
|
|
|
super
|
|
|
|
end
|
2009-04-07 20:57:20 -04:00
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def _layout_for_option(name)
|
|
|
|
case name
|
|
|
|
when String then _layout_for_name(name)
|
|
|
|
when true then _default_layout(true)
|
|
|
|
when false, nil then nil
|
|
|
|
else
|
|
|
|
raise ArgumentError,
|
|
|
|
"String, true, or false, expected for `layout'; you passed #{name.inspect}"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2009-03-19 18:45:48 -04:00
|
|
|
end
|
2009-04-17 19:34:49 -04:00
|
|
|
end
|