class ActiveAdmin::DSL

The Active Admin DSL. This class is where all the registration blocks are instance eval'd. This is the central place for the API given to users of Active Admin

Public Class Methods

new(config) click to toggle source
# File lib/active_admin/dsl.rb, line 10
def initialize(config)
  @config = config
end

Public Instance Methods

action_item(options = {}, &block) click to toggle source

Add a new action item to the resource

@param [Hash] options valid keys include:

:only: A single or array of controller actions to display
        this action item on.
:except: A single or array of controller actions not to
         display this action item on.
# File lib/active_admin/dsl.rb, line 86
def action_item(options = {}, &block)
  config.add_action_item(options, &block)
end
batch_action(title, options = {}, &block) click to toggle source

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

@param [Symbol or String] title @param [Hash] options valid keys include:

> :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

# File lib/active_admin/dsl.rb, line 101
def batch_action(title, options = {}, &block)
  # Create symbol & title information
  if title.is_a? String
    sym = title.titleize.gsub(' ', '').underscore.to_sym
  else
    sym = title
    title = sym.to_s.titleize
  end

  # Either add/remove the batch action
  unless options == false
    config.add_batch_action( sym, title, options, &block )
  else
    config.remove_batch_action sym
  end
end
breadcrumb(&block) click to toggle source

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

  breadcrumb do
    [
      link_to('my piece', '/my/link/to/piece')
    ]
  end
end
config() click to toggle source

The instance of ActiveAdmin::Config 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
# File lib/active_admin/dsl.rb, line 29
def config
  @config
end
controller(&block) click to toggle source

Returns the controller for this resource. If you pass a block, it will be eval'd in the controller

Example:

ActiveAdmin.register Post do

  controller do
    def some_method_on_controller
      # Method gets added to Admin::PostsController
    end
  end

end
# File lib/active_admin/dsl.rb, line 74
def controller(&block)
  @config.controller.class_eval(&block) if block_given?
  @config.controller
end
decorate_with(decorator_class) click to toggle source
# File lib/active_admin/dsl.rb, line 159
def decorate_with(decorator_class)
  # Force storage as a string. This will help us with reloading issues.
  # Assuming decorator_class.to_s will return the name of the class allows
  # us to handle a string or a class.
  config.decorator_class_name = "::#{ decorator_class }"
end
include(mod) click to toggle source

Include a module with this resource. The modules's `included` method is called with the instance of the `ActiveAdmin::DSL` passed into it.

eg:

module HelpSidebar

  def self.included(dsl)
    dsl.sidebar "Help" do
      "Call us for Help"
    end
  end

end

ActiveAdmin.register Post do
  include HelpSidebar
end

@param [Module] mod A module to include

@returns [Nil]

# File lib/active_admin/dsl.rb, line 55
def include(mod)
  mod.included(self)
end
menu(options = {}) click to toggle source

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) click to toggle source

Set the name of the navigation menu to display. This is mainly used in conjuction with the `#belongs_to` functionality.

@param [Symbol] menu_name The name of the menu to display as the global navigation

when viewing this resource. Defaults to a menu named `:default`.

Pass a block returning the name of a menu you want rendered for the request, being executed in the context of the controller

run_registration_block(&block) click to toggle source

Runs the registration block inside this object

# File lib/active_admin/dsl.rb, line 15
def run_registration_block(&block)
  instance_eval &block if block_given?
end
sidebar(name, options = {}, &block) click to toggle source