Class: ActiveAdmin::DSL
- Inherits:
-
Object
- Object
- ActiveAdmin::DSL
- Defined in:
- lib/active_admin/dsl.rb
Overview
The Active Admin DSL. This class is where all the registration blocks are evaluated. This is the central place for the API given to users of Active Admin.
Direct Known Subclasses
Instance Method Summary collapse
-
#action_item(name, options = {}, &block) ⇒ Object
Add a new action item to the resource.
-
#batch_action(title, options = {}, &block) ⇒ Object
Add a new batch action item to the resource Provide a symbol/string to register the action, options, & block to execute on request.
-
#breadcrumb(&block) ⇒ Object
Rewrite breadcrumb links.
-
#config ⇒ Object
The instance of ActiveAdmin::Resource that’s being registered currently.
-
#controller(&block) ⇒ Object
Returns the controller for this resource.
-
#include(mod) ⇒ Nil
Include a module with this resource.
-
#initialize(config) ⇒ DSL
constructor
A new instance of DSL.
-
#menu(options = {}) ⇒ Object
Set the options that are available for the item that will be placed in the global navigation of the menu.
-
#navigation_menu(menu_name = nil, &block) ⇒ Object
Set the name of the navigation menu to display.
-
#run_registration_block(&block) ⇒ Object
Runs the registration block inside this object.
- #sidebar(name, options = {}, &block) ⇒ Object
Constructor Details
#initialize(config) ⇒ DSL
Returns a new instance of DSL.
10 11 12 |
# File 'lib/active_admin/dsl.rb', line 10 def initialize(config) @config = config end |
Instance Method Details
#action_item(name, options = {}, &block) ⇒ Object
Add a new action item to the resource
87 88 89 |
# File 'lib/active_admin/dsl.rb', line 87 def action_item(name, = {}, &block) config.add_action_item(name, , &block) end |
#batch_action(title, options = {}, &block) ⇒ Object
Add a new batch action item to the resource Provide a symbol/string to register the action, options, & block to execute on request
To unregister an existing action, just provide the symbol & pass false as the second param
> :if is a proc that will be called to determine if the BatchAction should be displayed
> :sort_order is used to sort the batch actions ascending
> :confirm is a string which the user will have to accept in order to process the action
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/active_admin/dsl.rb', line 102 def batch_action(title, = {}, &block) # Create symbol & title information if title.is_a? String sym = title.titleize.tr(" ", "").underscore.to_sym else sym = title title = sym.to_s.titleize end # Either add/remove the batch action unless == false config.add_batch_action(sym, title, , &block) else config.remove_batch_action sym end end |
#breadcrumb(&block) ⇒ Object
Rewrite breadcrumb links. Block will be executed inside controller. Block must return an array if you want to rewrite breadcrumb links.
Example:
ActiveAdmin.register Post do
do
[
link_to('my piece', '/my/link/to/piece')
]
end
end
152 153 154 |
# File 'lib/active_admin/dsl.rb', line 152 def (&block) config. = block end |
#config ⇒ Object
The instance of ActiveAdmin::Resource that’s being registered currently. You can use this within your registration blocks to modify options:
eg:
ActiveAdmin.register Post do
config.sort_order = "id_desc"
end
29 30 31 |
# File 'lib/active_admin/dsl.rb', line 29 def config @config end |
#controller(&block) ⇒ Object
Returns the controller for this resource. If you pass a block, it will be evaluated in the controller.
Example:
ActiveAdmin.register Post do
controller do
def some_method_on_controller
# Method gets added to Admin::PostsController
end
end
end
74 75 76 77 |
# File 'lib/active_admin/dsl.rb', line 74 def controller(&block) @config.controller.class_exec(&block) if block @config.controller end |
#include(mod) ⇒ Nil
Include a module with this resource. The modules’ ‘included` method is called with the instance of the `ActiveAdmin::DSL` passed into it.
eg:
module HelpSidebar
def self.included(dsl)
dsl. "Help" do
"Call us for Help"
end
end
end
ActiveAdmin.register Post do
include HelpSidebar
end
55 56 57 |
# File 'lib/active_admin/dsl.rb', line 55 def include(mod) mod.included(self) end |
#menu(options = {}) ⇒ Object
Set the options that are available for the item that will be placed in the global navigation of the menu.
121 122 123 |
# File 'lib/active_admin/dsl.rb', line 121 def ( = {}) config. = end |
#navigation_menu(menu_name = nil, &block) ⇒ Object
Set the name of the navigation menu to display. This is mainly used in conjunction with the ‘#belongs_to` functionality.
Pass a block returning the name of a menu you want rendered for the request, being executed in the context of the controller
134 135 136 |
# File 'lib/active_admin/dsl.rb', line 134 def ( = nil, &block) config. = || block end |
#run_registration_block(&block) ⇒ Object
Runs the registration block inside this object
15 16 17 |
# File 'lib/active_admin/dsl.rb', line 15 def run_registration_block(&block) instance_exec &block if block end |
#sidebar(name, options = {}, &block) ⇒ Object
156 157 158 |
# File 'lib/active_admin/dsl.rb', line 156 def (name, = {}, &block) config. << ActiveAdmin::SidebarSection.new(name, , &block) end |