module LayoutByAction::Able::ClassMethods

Public Instance Methods

default_layout() click to toggle source
# File lib/layout_by_action/able.rb, line 14
def default_layout
  @default_layout
end
default_layout=(value) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# File lib/layout_by_action/able.rb, line 18
def layouts
  @layouts ||= HashWithIndifferentAccess.new
end