Class: ActiveAdmin::Application
- Inherits:
 - 
      Object
      
        
- Object
 - ActiveAdmin::Application
 
 
- Includes:
 - AssetRegistration
 
- Defined in:
 - lib/active_admin/application.rb
 
Constant Summary collapse
- BeforeLoadEvent =
          
Event that gets triggered on load of Active Admin
 "active_admin.application.before_load".freeze
- AfterLoadEvent =
 "active_admin.application.after_load".freeze
Instance Attribute Summary collapse
- 
  
    
      #namespaces  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute namespaces.
 
Class Method Summary collapse
Instance Method Summary collapse
- #controllers_for_filters ⇒ Object
 - 
  
    
      #files  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Returns ALL the files to be loaded.
 - 
  
    
      #initialize  ⇒ Application 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of Application.
 - #load(file) ⇒ Object
 - 
  
    
      #load!  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Loads all ruby files that are within the load_paths setting.
 - 
  
    
      #loaded?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
Whether all configuration files have been loaded.
 - #method_missing(method, *args) ⇒ Object
 - 
  
    
      #namespace(name) {|namespace| ... } ⇒ Namespace 
    
    
  
  
  
  
  
  
  
  
  
    
Creates a namespace for the given name.
 - #namespace_settings ⇒ Object
 - 
  
    
      #prepare!  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Runs after the app’s AA initializer.
 - 
  
    
      #register(resource, options = {}, &block)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Registers a brand new configuration for the given resource.
 - 
  
    
      #register_page(name, options = {}, &block)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Register a page.
 - #respond_to_missing?(method, include_private = false) ⇒ Boolean
 - 
  
    
      #routes(rails_router)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Creates all the necessary routes for the ActiveAdmin configurations.
 - #settings ⇒ Object
 - 
  
    
      #setup!  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Runs before the app’s AA initializer.
 - 
  
    
      #unload!  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Removes all defined controllers from memory.
 
Methods included from AssetRegistration
#clear_javascripts!, #clear_stylesheets!, #javascripts, #register_javascript, #register_stylesheet, #stylesheets
Constructor Details
#initialize ⇒ Application
Returns a new instance of Application.
      42 43 44  | 
    
      # File 'lib/active_admin/application.rb', line 42 def initialize @namespaces = Namespace::Store.new end  | 
  
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
      31 32 33 34 35 36 37 38 39  | 
    
      # File 'lib/active_admin/application.rb', line 31 def method_missing(method, *args) if settings.respond_to?(method) settings.send(method, *args) elsif namespace_settings.respond_to?(method) namespace_settings.send(method, *args) else super end end  | 
  
Instance Attribute Details
#namespaces ⇒ Object (readonly)
Returns the value of attribute namespaces.
      41 42 43  | 
    
      # File 'lib/active_admin/application.rb', line 41 def namespaces @namespaces end  | 
  
Class Method Details
.inheritable_setting(name, default) ⇒ Object
      14 15 16  | 
    
      # File 'lib/active_admin/application.rb', line 14 def inheritable_setting(name, default) NamespaceSettings.register name, default end  | 
  
.setting(name, default) ⇒ Object
      10 11 12  | 
    
      # File 'lib/active_admin/application.rb', line 10 def setting(name, default) ApplicationSettings.register name, default end  | 
  
Instance Method Details
#controllers_for_filters ⇒ Object
      159 160 161 162 163  | 
    
      # File 'lib/active_admin/application.rb', line 159 def controllers_for_filters controllers = [BaseController] controllers.push *Devise.controllers_for_filters if Dependency.devise? controllers end  | 
  
#files ⇒ Object
Returns ALL the files to be loaded
      128 129 130  | 
    
      # File 'lib/active_admin/application.rb', line 128 def files load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"].sort } end  | 
  
#load(file) ⇒ Object
      123 124 125  | 
    
      # File 'lib/active_admin/application.rb', line 123 def load(file) DatabaseHitDuringLoad.capture { super } end  | 
  
#load! ⇒ Object
Loads all ruby files that are within the load_paths setting. To reload everything simply call ‘ActiveAdmin.unload!`
      113 114 115 116 117 118 119 120 121  | 
    
      # File 'lib/active_admin/application.rb', line 113 def load! unless loaded? ActiveSupport::Notifications.instrument BeforeLoadEvent, { active_admin_application: self } # before_load hook files.each { |file| load file } # load files namespace(default_namespace) # init AA resources ActiveSupport::Notifications.instrument AfterLoadEvent, { active_admin_application: self } # after_load hook @@loaded = true end end  | 
  
#loaded? ⇒ Boolean
Whether all configuration files have been loaded
      100 101 102  | 
    
      # File 'lib/active_admin/application.rb', line 100 def loaded? @@loaded ||= false end  | 
  
#namespace(name) {|namespace| ... } ⇒ Namespace
Creates a namespace for the given name
Yields the namespace if a block is given
      74 75 76 77 78 79 80 81 82 83 84 85 86  | 
    
      # File 'lib/active_admin/application.rb', line 74 def namespace(name) name ||= :root namespace = namespaces[name.to_sym] ||= begin namespace = Namespace.new(self, name) ActiveSupport::Notifications.instrument ActiveAdmin::Namespace::RegisterEvent, { active_admin_namespace: namespace } namespace end yield(namespace) if block_given? namespace end  | 
  
#namespace_settings ⇒ Object
      23 24 25  | 
    
      # File 'lib/active_admin/application.rb', line 23 def namespace_settings @namespace_settings ||= SettingsNode.build(NamespaceSettings) end  | 
  
#prepare! ⇒ Object
Runs after the app’s AA initializer
      58 59 60 61  | 
    
      # File 'lib/active_admin/application.rb', line 58 def prepare! remove_active_admin_load_paths_from_rails_autoload_and_eager_load attach_reloader end  | 
  
#register(resource, options = {}, &block) ⇒ Object
Registers a brand new configuration for the given resource.
      64 65 66 67  | 
    
      # File 'lib/active_admin/application.rb', line 64 def register(resource, = {}, &block) ns = .fetch(:namespace) { default_namespace } namespace(ns).register resource, , &block end  | 
  
#register_page(name, options = {}, &block) ⇒ Object
Register a page
@&block The registration block.
      94 95 96 97  | 
    
      # File 'lib/active_admin/application.rb', line 94 def register_page(name, = {}, &block) ns = .fetch(:namespace) { default_namespace } namespace(ns).register_page name, , &block end  | 
  
#respond_to_missing?(method, include_private = false) ⇒ Boolean
      27 28 29  | 
    
      # File 'lib/active_admin/application.rb', line 27 def respond_to_missing?(method, include_private = false) [settings, namespace_settings].any? { |sets| sets.respond_to?(method) } || super end  | 
  
#routes(rails_router) ⇒ Object
Creates all the necessary routes for the ActiveAdmin configurations
Use this within the routes.rb file:
Application.routes.draw do |map|
  ActiveAdmin.routes(self)
end
  
      141 142 143 144  | 
    
      # File 'lib/active_admin/application.rb', line 141 def routes(rails_router) load! Router.new(router: rails_router, namespaces: namespaces).apply end  | 
  
#settings ⇒ Object
      19 20 21  | 
    
      # File 'lib/active_admin/application.rb', line 19 def settings @settings ||= SettingsNode.build(ApplicationSettings) end  | 
  
#setup! ⇒ Object
Runs before the app’s AA initializer
      53 54 55  | 
    
      # File 'lib/active_admin/application.rb', line 53 def setup! register_default_assets end  | 
  
#unload! ⇒ Object
Removes all defined controllers from memory. Useful in development, where they are reloaded on each request.
      106 107 108 109  | 
    
      # File 'lib/active_admin/application.rb', line 106 def unload! namespaces.each &:unload! @@loaded = false end  |