Module: LayoutByAction::Able::ClassMethods

Defined in:
lib/layout_by_action/able.rb

Instance Method Summary collapse

Instance Method Details

#default_layoutObject



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

#layoutsObject



18
19
20
# File 'lib/layout_by_action/able.rb', line 18

def layouts
  @layouts ||= HashWithIndifferentAccess.new
end