Module: Menuboy::DSL

Included in:
Menu
Defined in:
lib/menuboy.rb

Instance Method Summary collapse

Instance Method Details



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/menuboy.rb', line 78

def mainmenu(name="Main menu")
  if @mainmenu
    raise StandardError, "You can only define one main menu"
  else
    @target = @mainmenu = Menu.new(name)
    yield
    Menuboy.menus.push @target
    @target.print_help
    @target.prompt

    Signal.trap("INT") { exit }
    at_exit { Menuboy.normal_terminal }
    EM.run do
      Menuboy.raw_terminal
      EM.open_keyboard(UnbufferedKeyboardHandler)
      ARGV.each do |input|
        Menuboy.keyboard_input(input)
      end
    end
  end
end

#option(name, &block) ⇒ Object



59
60
61
62
63
64
65
66
67
# File 'lib/menuboy.rb', line 59

def option name, &block
  opt_count = @target.options.count
  key = (opt_count+1).to_s
  if key.size > 1
    raise StandardError, "You can only define 9 options per menu"
  end
  opt = Option.new(key, name, block)
  @target.options.push opt
end


69
70
71
72
73
74
75
76
# File 'lib/menuboy.rb', line 69

def submenu name="Submenu"
  option(name) do
    @target = Menu.new(name)
    yield
    Menuboy.menus.push @target
    @target.print_help
  end
end