class MenuCommander::Command

Attributes

last_command[R]

Public Instance Methods

run() click to toggle source
# File lib/menu_commander/command.rb, line 23
def run
  verify_sanity
  say "#{menu.options.header}\n" if menu.options.header
  success = true

  if args['--loop']
    run_looped_menu
  else
    success = run_menu
  end

  success ? 0 : 1
end

Private Instance Methods

config() click to toggle source
# File lib/menu_commander/command.rb, line 103
def config
  result = args['CONFIG'] || 'menu'
  result += ".yml" unless result.end_with?('.yml')
  result
end
menu() click to toggle source
menu_env_path() click to toggle source
menu_file() click to toggle source
menu_file!() click to toggle source
menu_paths() click to toggle source
prompt() click to toggle source
# File lib/menu_commander/command.rb, line 109
def prompt
  @prompt ||= TTY::Prompt.new
end
run_looped_menu() click to toggle source
# File lib/menu_commander/command.rb, line 48
def run_looped_menu
  loop do
    run_menu
    say ""
    @menu = nil
    break if ENV['MENU_COMMANDER_ENV'] == 'test'
  end
end
run_menu() click to toggle source
# File lib/menu_commander/command.rb, line 57
def run_menu
  command = menu.call
  @last_command = command

  execute = args['--dry'] ? false : true
  say "$ !txtpur!#{command}".strip if args['--confirm'] or args['--dry']

  execute = prompt.yes?("Execute?") if args['--confirm']
  success = execute ? system(command) : false

  echo_footer success, command if menu.options.echo
  success
end
verify_sanity() click to toggle source
# File lib/menu_commander/command.rb, line 43
def verify_sanity
  raise Exit, VERSION if args['--version'] 
  raise MenuNotFound.new(paths: menu_paths, config: config) unless menu_file
end