module ExpressAdmin::Menu
Provide menus for Express Admin addon engines.
To use:
1) include ExpressAdmin::Menu::Loader
in your engine.rb 2) add a config/menu.yml defining the menu structure
Example:
title: 'Blog' path: 'express_blog.admin_blog_posts_path' items: - title: 'Posts' path: 'express_blog.admin_blog_posts_path' - title: 'Categories' path: 'express_blog.admin_blog_categories_path'
Public Class Methods
[](addon_name)
click to toggle source
Return the top level MenuItem
for the addon or defined in the supplied path.
Accepts an addon_name such as :express_admin or a path to a yaml file containing a menu definition.
# File lib/express_admin/menu.rb, line 26 def self.[](addon_name) @menus ||= {} @menus[addon_name.to_sym] ||= begin menu_yml_path = if addon = Gem.loaded_specs[addon_name] File.join(addon.full_gem_path, 'config', 'menu.yml') else File.join(Rails.root, 'config', 'menu.yml') end from(menu_yml_path) end end
from(yaml_path)
click to toggle source
# File lib/express_admin/menu.rb, line 39 def self.from(yaml_path) raise "unable to locate #{yaml_path}" unless File.exists?(yaml_path) MenuItem.new YAML.load_file(yaml_path).with_indifferent_access end