Class: Waiter::Menu::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/waiter/menu/builder.rb

Overview

Builds a menu structure from the DSL

Instance Method Summary collapse

Constructor Details

#initialize(menu) ⇒ Builder

Returns a new instance of Builder.



5
6
7
# File 'lib/waiter/menu/builder.rb', line 5

def initialize(menu)
  @menu = menu
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/waiter/menu/builder.rb', line 9

def method_missing(name, *args, &block)
  @menu.add name, *args
  if block_given?
    @menu.submenus[name] = Menu.new(@menu.options.merge(:controller => (args.first.andand[:controller] || name)))
    yield Builder.new(@menu.submenus[name])
  end
end