class Decidim::MenuRegistry

This class handles all logic regarding registering menus

Attributes

configurations[R]

Public Class Methods

create(name) click to toggle source

Creates an empty named menu

@param name [Symbol] The name of the menu

# File lib/decidim/menu_registry.rb, line 39
def create(name)
  all[name] = new
end
destroy(name) click to toggle source

Destroys a named menu

@param name [Symbol] The name of the menu

# File lib/decidim/menu_registry.rb, line 48
def destroy(name)
  all[name] = nil
end
find(name) click to toggle source

Finds a menu by name

@param name [Symbol] The name of the menu

# File lib/decidim/menu_registry.rb, line 30
def find(name)
  all[name]
end
new() click to toggle source
# File lib/decidim/menu_registry.rb, line 61
def initialize
  @configurations = []
end
register(name, &block) click to toggle source

Finds a menu by name or creates it if it doesn't exist. Optionally, registers a MenuItem DSL block for the menu.

@param name [Symbol] Name of the menu @param &block [Menu] Registration body of the menu. It's stored to be

evaluated at rendering time
# File lib/decidim/menu_registry.rb, line 17
def register(name, &block)
  menu = find(name) || create(name)

  menu.configurations << block

  menu
end

Private Class Methods

all() click to toggle source
# File lib/decidim/menu_registry.rb, line 54
def all
  @all ||= {}
end