Class: MenuMaker::Menu

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/menu_maker/menu.rb

Defined Under Namespace

Classes: MenuError, MenuItem

Instance Method Summary collapse

Constructor Details

#initialize(renderer) {|_self| ... } ⇒ Menu

Returns a new instance of Menu.

Yields:

  • (_self)

Yield Parameters:



5
6
7
8
9
10
# File 'lib/menu_maker/menu.rb', line 5

def initialize(renderer)
  @items    = {}
  @renderer = renderer

  yield self if block_given?
end

Instance Method Details

#add(title, *paths, **options) {|current_submenu| ... } ⇒ Object

Yields:

  • (current_submenu)


20
21
22
23
24
25
26
27
# File 'lib/menu_maker/menu.rb', line 20

def add(title, *paths, **options)
  @items[title] = MenuItem.new(title, *paths, options)
  @current_item = title

  yield current_submenu if block_given?

  self
end

#each(&block) ⇒ Object



16
17
18
# File 'lib/menu_maker/menu.rb', line 16

def each(&block)
  items.each(&block)
end

#itemsObject



12
13
14
# File 'lib/menu_maker/menu.rb', line 12

def items
  @items.values
end

#renderObject



29
30
31
# File 'lib/menu_maker/menu.rb', line 29

def render
  renderer_for(current_depth).call(self)
end