Method: Dialog.select_one
- Defined in:
- lib/nera/nera_dialog.rb
.select_one(arr, message = "Input the number", default = 0) ⇒ Object
Select one from the list specified by the array.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/nera/nera_dialog.rb', line 12 def select_one( arr, = "Input the number", default = 0) unless arr.is_a?(Array) and arr.size >= 1 and default.to_i >= 0 and default.to_i < arr.size raise ArgumentError, "Arguments are not valid." end while true $stdout.puts( "#{message} : [#{default.to_s}]") arr.size.times do |i| puts( "[#{i}]:\t#{arr[i]}") end buf = Readline.readline(PROMPT).chomp.strip buf = default.to_s if buf=='' unless buf.match(/^[0-9]+$/) $stdout.puts "The input #{buf} is not valid. Try again" redo end num = Integer(buf) if num >= 0 and num < arr.size valid_input = true return num end $stdout.puts "Your input is not valid. Try again." end end |