Module: PageFactory::PagesControllerExtensions

Defined in:
lib/page_factory/pages_controller_extensions.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/page_factory/pages_controller_extensions.rb', line 3

def self.included(base)
  base.class_eval do
    around_filter :set_page_factory, :only => :new
    before_filter { |c| c.include_stylesheet 'admin/dropdown' }
    before_filter { |c| c.include_javascript 'admin/dropdown' }
    before_filter { |c| c.include_javascript 'admin/pagefactory' }
    responses do |r|
      r.singular.default { set_page_defaults if 'new' == action_name }
    end
  end
end

Instance Method Details

#set_page_defaultsObject



26
27
28
29
30
# File 'lib/page_factory/pages_controller_extensions.rb', line 26

def set_page_defaults
  model.class_name = PageFactory.current_factory.page_class
  model.layout = Layout.find_by_name(PageFactory.current_factory.layout)
  model.page_factory = PageFactory.current_factory.name unless PageFactory::Base == PageFactory.current_factory
end

#set_page_factoryObject



15
16
17
18
19
20
21
22
23
24
# File 'lib/page_factory/pages_controller_extensions.rb', line 15

def set_page_factory
  begin
    PageFactory.current_factory = params[:factory]
  rescue NameError => e # bad factory name passed
    logger.error "Tried to create page with invalid factory: #{e.message}"
  ensure
    yield
    PageFactory.current_factory = nil
  end
end