aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/abstract/layouts.rb
diff options
context:
space:
mode:
authorYehuda Katz and Carl Lerche <wycats@gmail.com>2009-04-07 14:57:18 -0700
committerYehuda Katz and Carl Lerche <wycats@gmail.com>2009-04-07 14:57:18 -0700
commitc1aa5b0e14cd4bd27a5d8bd85cf7c36fa5911830 (patch)
treec4d08a6227e5a39cb65726fa40c2c54516068d24 /actionpack/lib/action_controller/abstract/layouts.rb
parent9c8eaf8e254cf8ccaa6ecae3fdf1f468fbb60db8 (diff)
downloadrails-c1aa5b0e14cd4bd27a5d8bd85cf7c36fa5911830.tar.gz
rails-c1aa5b0e14cd4bd27a5d8bd85cf7c36fa5911830.tar.bz2
rails-c1aa5b0e14cd4bd27a5d8bd85cf7c36fa5911830.zip
Add depends_on, use, and setup to abstract up ideas about module inheritance.
Diffstat (limited to 'actionpack/lib/action_controller/abstract/layouts.rb')
-rw-r--r--actionpack/lib/action_controller/abstract/layouts.rb17
1 files changed, 8 insertions, 9 deletions
diff --git a/actionpack/lib/action_controller/abstract/layouts.rb b/actionpack/lib/action_controller/abstract/layouts.rb
index 20c9abb9e5..2680283151 100644
--- a/actionpack/lib/action_controller/abstract/layouts.rb
+++ b/actionpack/lib/action_controller/abstract/layouts.rb
@@ -1,25 +1,24 @@
module AbstractController
module Layouts
- def self.included(base)
- base.extend ClassMethods
- end
-
+ depends_on Renderer
+
module ClassMethods
def layout(layout)
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
+ @_layout = layout || false # Converts nil to false
+ _write_layout_method
end
def _write_layout_method
- case @layout
+ case @_layout
when String
- self.class_eval %{def _layout() #{@layout.inspect} end}
+ self.class_eval %{def _layout() #{@_layout.inspect} end}
when Symbol
- self.class_eval %{def _layout() #{@layout} end}
+ self.class_eval %{def _layout() #{@_layout} end}
when false
self.class_eval %{def _layout() end}
else
@@ -43,7 +42,7 @@ module AbstractController
private
def _layout() end # This will be overwritten
-
+
def _layout_for_option(name)
case name
when String then _layout_for_name(name)