Module: EverydayMenu::MenuBuilder

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

Defined Under Namespace

Classes: Context

Instance Method Summary collapse

Instance Method Details

#<<(item) ⇒ Object



22
23
24
25
# File 'lib/everyday-menu/menu_builder.rb', line 22

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

#[](label) ⇒ Object



55
56
57
# File 'lib/everyday-menu/menu_builder.rb', line 55

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

#add_main_menu(menu) ⇒ Object



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

def add_main_menu(menu)
  @mainMenu ||= NSMenu.new
  @mainMenu.addItem menu.menuItemFromMenu!.menuItem
end

#build!Object



59
60
61
62
63
64
65
66
# File 'lib/everyday-menu/menu_builder.rb', line 59

def build!
  @menus.values.each do |menu|
    build_menu(menu)
    add_main_menu(menu) if menu.is :main_menu
    menu.runOnBuild
  end
  setupMainMenu if @mainMenu
end

#build_menu(menu) ⇒ Object



68
69
70
71
# File 'lib/everyday-menu/menu_builder.rb', line 68

def build_menu(menu)
  context = Context.new(menu, @menuItems.dup)
  context.instance_eval(&menu.builder) if menu.builder
end


34
35
36
37
38
# File 'lib/everyday-menu/menu_builder.rb', line 34

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


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

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


27
28
29
30
# File 'lib/everyday-menu/menu_builder.rb', line 27

def menuItem(label, title, options = {})
  options[:submenu] = @menus[options[:submenu]] if options.has_key?(:submenu)
  self << MenuItem.create(label, title, options)
end

#statusbarMenu(label, title, options = {}, &block) ⇒ Object



48
49
50
51
52
53
# File 'lib/everyday-menu/menu_builder.rb', line 48

def statusbarMenu(label, title, options = {}, &block)
  options[:main_menu]         = false
  options[:status_item_title] = title unless options.has_key?(:status_item_title)
  @menus                      ||= {}
  @menus[label]               = Menu.create(label, title, options, &block)
end