Method: Mynu::Dsl::Block#menu

Defined in:
lib/mynu/dsl/block.rb


43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/mynu/dsl/block.rb', line 43

def menu(title, &block)
  raise "Block must be provided for a menu" unless block_given?
  add_item(
    title, 
    item_block(Proc.new {}) {}
  ) {
    case block.arity
      when 0
        self.instance_eval(&block)
      when 1
        block.call(self)
      else
        raise
    end

    if self.items.length > 0
      menu = Menu.new
      menu.setAutoenablesItems false

      self.setSubmenu menu

      self.items.each do |item|
        menu.addItem item
      end
    end
  }
end