Module: Virtualman::Interactive::Menu

Extended by:
Menu
Included in:
Menu
Defined in:
lib/virtualman/interactive/menu.rb

Instance Method Summary collapse

Instance Method Details

#askObject



31
32
33
34
# File 'lib/virtualman/interactive/menu.rb', line 31

def ask
  $stdin.reopen '/dev/tty'
  $stdin.gets.chomp
end

#unic_answer(array, input) ⇒ Object



44
45
46
47
48
49
50
51
52
53
# File 'lib/virtualman/interactive/menu.rb', line 44

def unic_answer(array, input)
  if input[/(\d+)/]
    index = input.to_i - 1
    if array[index]
      return array[index] 
    end
  end
  
  Kernel.abort "#{input} is an invalid choice."
end

#unic_prompt(lines) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/virtualman/interactive/menu.rb', line 36

def unic_prompt(lines)
  ljust_size = lines.size.to_s.size + 1
  lines.each_with_index {|obj,i|
    puts "#{i+1}.".ljust(ljust_size) + " " +obj
  }
  print "\nSpecify your choice\nChoose: "
end

#unic_run(array) ⇒ Object



55
56
57
58
59
# File 'lib/virtualman/interactive/menu.rb', line 55

def unic_run(array)
  unic_prompt(array)
  answer = ask
  return unic_answer(array, answer)
end