Module: DrinkMenu::MenuBuilder

Defined in:
lib/drink-menu/menu_builder.rb

Defined Under Namespace

Classes: Context

Instance Method Summary collapse

Instance Method Details

#<<(item) ⇒ Object



23
24
25
26
# File 'lib/drink-menu/menu_builder.rb', line 23

def <<(item)
  @menuItems ||= {}
  @menuItems[item.label] = item
end

#[](label) ⇒ Object



73
74
75
# File 'lib/drink-menu/menu_builder.rb', line 73

def [](label)
  @menus[label]
end

#build!Object



77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/drink-menu/menu_builder.rb', line 77

def build!
  @menus.values.each do |menu|
    context = Context.new(menu, @menuItems.dup)
    context.instance_eval(&menu.builder) if menu.builder
    if menu.needsStatusItem?
      menu.createStatusItem!
    elsif menu.needsMenuItem?
      @mainMenu ||= NSMenu.new
      @mainMenu.addItem menu.menuItemFromMenu!.menuItem
    end
  end
  setupMainMenu if @mainMenu
end


58
59
60
61
# File 'lib/drink-menu/menu_builder.rb', line 58

def mainMenu(label, title: title, &block)
  @menus ||= {}
  @menus[label] = Menu.menuWithLabel label, title: title, menuItem: true, &block
end


63
64
65
66
# File 'lib/drink-menu/menu_builder.rb', line 63

def menu(label, title: title, &block)
  @menus ||= {}
  @menus[label] = Menu.menuWithLabel label, title: title, &block
end


28
29
30
31
# File 'lib/drink-menu/menu_builder.rb', line 28

def menuItem(label, title: title)
  @menuItems ||= {}
  @menuItems[label] = MenuItem.itemWithLabel label, title: title
end

#statusBarMenu(label, icon: image, &block) ⇒ Object



43
44
45
46
# File 'lib/drink-menu/menu_builder.rb', line 43

def statusBarMenu(label, title: title, &block)
  @menus ||= {}
  @menus[label] = Menu.statusMenuWithLabel label, title: title, &block
end