module Aerogel::Pages

Constants

VERSION

Public Class Methods

create_page_block( type, *args ) click to toggle source
# File lib/aerogel/pages/core.rb, line 41
def self.create_page_block( type, *args )
  type = type.to_sym
  if registered_page_block_types[type].nil?
    raise ArgumentError.new( "Invalid page block type: '#{type}'")
  end
  registered_page_block_types[type].new( *args )
end
register_page_block_type( type, model ) click to toggle source
# File lib/aerogel/pages/core.rb, line 30
def self.register_page_block_type( type, model )
  registered_page_block_types[type] = model

  # define multiple objects accessor
  ::Page.send( :define_method, :"#{type}s" ) { page_blocks.where( :_type => model ) }

  # define single (first) object accessor
  ::Page.send( :define_method, type ) { page_blocks.where( :_type => model ).first }

end
registered(app) click to toggle source
# File lib/aerogel/pages/core.rb, line 9
def self.registered(app)
  setup_reloader(app) if Aerogel.config.aerogel.reloader?

  # module initialization
  Aerogel::Pages.reset!
end
registered_page_block_types() click to toggle source
# File lib/aerogel/pages/core.rb, line 26
def self.registered_page_block_types
  @registered_page_block_types ||= {}
end
reset!() click to toggle source
# File lib/aerogel/pages/core.rb, line 22
def self.reset!
  @registered_page_block_types ||= {}
end
setup_reloader(app) click to toggle source
# File lib/aerogel/pages/core.rb, line 16
def self.setup_reloader(app)
  app.use Aerogel::Reloader, :'db/model', before: true do
    Aerogel::Pages.reset!
  end
end