Class: ActiveAdmin::MenuCollection
- Inherits:
-
Object
- Object
- ActiveAdmin::MenuCollection
- Defined in:
- lib/active_admin/menu_collection.rb
Overview
A MenuCollection stores multiple menus for any given namespace. Namespaces delegate the addition of menu items to this class.
Instance Method Summary collapse
-
#add(menu_name, menu_item_options = {}) ⇒ Object
Add a new menu item to a menu in the collection.
-
#before_build(&block) ⇒ Object
Add callbacks that will be run before the menu is built.
- #clear! ⇒ Object
- #exists?(menu_name) ⇒ Boolean
- #fetch(menu_name) ⇒ Object
-
#initialize ⇒ MenuCollection
constructor
A new instance of MenuCollection.
- #menu(menu_name) {|menu| ... } ⇒ Object
-
#on_build(&block) ⇒ Object
Add callbacks that will be run when the menu is going to be built.
Constructor Details
#initialize ⇒ MenuCollection
Returns a new instance of MenuCollection.
9 10 11 12 13 |
# File 'lib/active_admin/menu_collection.rb', line 9 def initialize @menus = {} @build_callbacks = [] @built = false end |
Instance Method Details
#add(menu_name, menu_item_options = {}) ⇒ Object
Add a new menu item to a menu in the collection
16 17 18 19 20 |
# File 'lib/active_admin/menu_collection.rb', line 16 def add(, = {}) = find_or_create() .add end |
#before_build(&block) ⇒ Object
Add callbacks that will be run before the menu is built
48 49 50 |
# File 'lib/active_admin/menu_collection.rb', line 48 def before_build(&block) @build_callbacks.unshift(block) end |
#clear! ⇒ Object
22 23 24 25 |
# File 'lib/active_admin/menu_collection.rb', line 22 def clear! @menus = {} @built = false end |
#exists?(menu_name) ⇒ Boolean
27 28 29 |
# File 'lib/active_admin/menu_collection.rb', line 27 def exists?() @menus.keys.include? end |
#fetch(menu_name) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/active_admin/menu_collection.rb', line 31 def fetch() @menus[] or raise NoMenuError, "No menu by the name of #{.inspect} in available menus: #{@menus.keys.join(", ")}" end |
#menu(menu_name) {|menu| ... } ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/active_admin/menu_collection.rb', line 52 def () = find_or_create() yield() if block_given? end |
#on_build(&block) ⇒ Object
Add callbacks that will be run when the menu is going to be built. This helps use with reloading and allows configurations to add items to menus.
43 44 45 |
# File 'lib/active_admin/menu_collection.rb', line 43 def on_build(&block) @build_callbacks << block end |