Module: LayoutByAction::Able::ClassMethods
- Defined in:
- lib/layout_by_action/able.rb
Instance Method Summary collapse
- #default_layout ⇒ Object
- #default_layout=(value) ⇒ Object
- #layout_by_action(default = nil, actions_and_layouts) ⇒ Object
- #layout_heirarchy(action_name) ⇒ Object
- #layouts ⇒ Object
Instance Method Details
#default_layout ⇒ Object
14 15 16 |
# File 'lib/layout_by_action/able.rb', line 14 def default_layout @default_layout end |
#default_layout=(value) ⇒ Object
10 11 12 |
# File 'lib/layout_by_action/able.rb', line 10 def default_layout=(value) @default_layout = value end |
#layout_by_action(default = nil, actions_and_layouts) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/layout_by_action/able.rb', line 22 def layout_by_action(default=nil, actions_and_layouts) include LayoutByAction::Able self.default_layout = default actions_and_layouts.each do |actions, layout| Array(actions).each do |action| layouts[action] = layout end end layout :layout_by_action end |
#layout_heirarchy(action_name) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/layout_by_action/able.rb', line 33 def layout_heirarchy(action_name) ancestors.grep(Class).select do |klass| klass.ancestors.grep(Class).include?(ActionController::Base) end.select do |klass| klass != ActionController::Base end.collect do |klass| klass.layouts[action_name] || klass.default_layout end.compact end |
#layouts ⇒ Object
18 19 20 |
# File 'lib/layout_by_action/able.rb', line 18 def layouts @layouts ||= HashWithIndifferentAccess.new end |