diff options
author | Yehuda Katz and Carl Lerche <wycats@gmail.com> | 2009-04-07 14:57:18 -0700 |
---|---|---|
committer | Yehuda Katz and Carl Lerche <wycats@gmail.com> | 2009-04-07 14:57:18 -0700 |
commit | c1aa5b0e14cd4bd27a5d8bd85cf7c36fa5911830 (patch) | |
tree | c4d08a6227e5a39cb65726fa40c2c54516068d24 /actionpack/lib/action_controller/abstract/layouts.rb | |
parent | 9c8eaf8e254cf8ccaa6ecae3fdf1f468fbb60db8 (diff) | |
download | rails-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.rb | 17 |
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) |