Sha256: 6a9def882ceb370b6b827e4bc522c53e607cd079eceaeb5a09120140a897b662

Contents?: true

Size: 1.62 KB

Versions: 3

Compression:

Stored size: 1.62 KB

Contents

require 'initializer'
require 'radiant/admin_ui'

module Radiant
  
  class Configuration < Rails::Configuration
    attr_accessor :view_paths
    attr_accessor :extension_paths
    
    def initialize
      self.view_paths = default_view_paths
      self.extension_paths = default_extension_paths
      super
    end
    
    def default_view_paths
      [view_path].compact
    end
    
    def default_extension_paths
      [RADIANT_ROOT + '/vendor/extensions', RAILS_ROOT + '/vendor/extensions'].uniq
    end
    
    def admin
      AdminUI.instance
    end
    
  end
  
  class Initializer < Rails::Initializer
    def self.run(command = :process, configuration = Configuration.new)
      super
    end
    
    def after_initialize
      initialize_extensions
      super
    end
    
    def initialize_extensions
      ActiveRecord::Base.connection.execute("select count(*) from #{ExtensionMeta.table_name}")
      require 'radiant/extension_loader'
      ExtensionLoader.instance { |l| l.initializer = self }.run
    rescue ActiveRecord::StatementInvalid
      $stderr.puts("Extensions cannot be used until Radiant migrations are up to date.")
    end
    
    def initialize_view_paths
      [ActionView::Base, ActionMailer::Base].each do |klass|
        klass.view_paths = configuration.view_paths
      end
    end
    
    def initialize_default_admin_tabs
      admin.tabs.clear
      admin.tabs.add "Pages",    "/admin/pages"
      admin.tabs.add "Snippets", "/admin/snippets"
      admin.tabs.add "Layouts",  "/admin/layouts", :visibility => [:admin, :developer]
    end
    
    def admin
      configuration.admin
    end
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
radiant-0.6.0 lib/radiant/initializer.rb
radiant-0.6.1 lib/radiant/initializer.rb
radiant-0.6.2 lib/radiant/initializer.rb