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



30
31
32
33
# File 'lib/everyday-menu/menu_builder.rb', line 30

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

#[](label) ⇒ Object



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

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

#add_main_menu(menu) ⇒ Object



81
82
83
84
# File 'lib/everyday-menu/menu_builder.rb', line 81

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

#build!Object



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

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



76
77
78
79
# File 'lib/everyday-menu/menu_builder.rb', line 76

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


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

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


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

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


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

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



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

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