aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/abstract/layouts.rb
diff options
context:
space:
mode:
authorEmilio Tagua <miloops@gmail.com>2009-05-12 16:13:00 -0300
committerEmilio Tagua <miloops@gmail.com>2009-05-12 16:13:00 -0300
commit0048897a417774f7e5a0c8c9e82fc8684f94ebc1 (patch)
tree8df248dab434bdaac61ea60249d4630958260eed /actionpack/lib/action_controller/abstract/layouts.rb
parent6c7d8cb8ac9e6b6775e9a54ef0be62dbaab592f5 (diff)
parent22c5667c2ef46d6723c1805d3adc52dc8e92429b (diff)
downloadrails-0048897a417774f7e5a0c8c9e82fc8684f94ebc1.tar.gz
rails-0048897a417774f7e5a0c8c9e82fc8684f94ebc1.tar.bz2
rails-0048897a417774f7e5a0c8c9e82fc8684f94ebc1.zip
Merge commit 'rails/master'
Diffstat (limited to 'actionpack/lib/action_controller/abstract/layouts.rb')
-rw-r--r--actionpack/lib/action_controller/abstract/layouts.rb28
1 files changed, 16 insertions, 12 deletions
diff --git a/actionpack/lib/action_controller/abstract/layouts.rb b/actionpack/lib/action_controller/abstract/layouts.rb
index 69fe4efc19..e48b8b2b4b 100644
--- a/actionpack/lib/action_controller/abstract/layouts.rb
+++ b/actionpack/lib/action_controller/abstract/layouts.rb
@@ -9,18 +9,18 @@ module AbstractController
unless [String, Symbol, FalseClass, NilClass].include?(layout.class)
raise ArgumentError, "Layouts must be specified as a String, Symbol, false, or nil"
end
-
+
@_layout = layout || false # Converts nil to false
_write_layout_method
end
-
+
def _implied_layout_name
name.underscore
end
-
+
# Takes the specified layout and creates a _layout method to be called
# by _default_layout
- #
+ #
# If the specified layout is a:
# String:: return the string
# Symbol:: call the method specified by the symbol
@@ -49,22 +49,26 @@ module AbstractController
end
end
end
-
+
def _render_template(template, options)
- _action_view._render_template_with_layout(template, options[:_layout])
+ _action_view._render_template_with_layout(template, options[:_layout], options)
end
-
+
private
+
def _layout() end # This will be overwritten
-
+
+ # :api: plugin
+ # ====
+ # Override this to mutate the inbound layout name
def _layout_for_name(name)
unless [String, FalseClass, NilClass].include?(name.class)
raise ArgumentError, "String, false, or nil expected; you passed #{name.inspect}"
end
-
+
name && view_paths.find_by_parts(name, {:formats => formats}, "layouts")
end
-
+
def _default_layout(require_layout = false)
if require_layout && !_layout
raise ArgumentError,
@@ -74,9 +78,9 @@ module AbstractController
begin
layout = _layout_for_name(_layout)
rescue NameError => e
- raise NoMethodError,
+ raise NoMethodError,
"You specified #{@_layout.inspect} as the layout, but no such method was found"
end
end
end
-end
+end \ No newline at end of file