Sha256: e9ef1fe5f6da593137d602fe9f01954377f3f59452cbec517fa73cc67582ce5b
Contents?: true
Size: 1.14 KB
Versions: 3
Compression:
Stored size: 1.14 KB
Contents
module ActiveAdmin DEFAULT_MENU = :default # A MenuCollection stores multiple menus for any given namespace. Namespaces delegate # the addition of menu items to this class. class MenuCollection def initialize @menus = {} end # Add a new menu item to a menu in the collection def add(menu_name, menu_item_options = {}) find_or_create(menu_name).add(menu_item_options) end def clear! @menus = {} end def exists?(menu_name) @menus.keys.include? menu_name end def fetch(menu_name) build_default_menu unless built? @menus[menu_name] or raise NoMenuError, "No menu by the name of #{menu_name.inspect} in available menus: #{@menus.keys.join(", ")}" end def menu(menu_name, &block) find_or_create(menu_name).tap do |menu| yield(menu) if block_given? end end def built? @menus.present? end def build_default_menu find_or_create DEFAULT_MENU end private # @return [ActiveAdmin::Menu] def find_or_create(menu_name) @menus[menu_name || DEFAULT_MENU] ||= ActiveAdmin::Menu.new end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
activeadmin-rails-1.7.2 | lib/active_admin/menu_collection.rb |
activeadmin-rails-1.7.1 | lib/active_admin/menu_collection.rb |
activeadmin-rails-1.7.0 | lib/active_admin/menu_collection.rb |