RosettaCodeData/Task/Menu/Ruby/menu.rb

27 lines
601 B
Ruby
Raw Permalink Normal View History

2017-09-23 10:01:46 +02:00
def select(prompt, items = [])
if items.empty?
''
else
answer = -1
until (0...items.length).cover?(answer)
items.each_with_index {|i,j| puts "#{j}. #{i}"}
print "#{prompt}: "
begin
answer = Integer(gets)
rescue ArgumentError
redo
end
2013-04-10 21:29:02 -07:00
end
2017-09-23 10:01:46 +02:00
items[answer]
2013-04-10 21:29:02 -07:00
end
end
# test empty list
2017-09-23 10:01:46 +02:00
response = select('Which is empty')
puts "empty list returns: >#{response}<\n"
2013-04-10 21:29:02 -07:00
# "real" test
items = ['fee fie', 'huff and puff', 'mirror mirror', 'tick tock']
2017-09-23 10:01:46 +02:00
response = select('Which is from the three pigs', items)
2013-04-10 21:29:02 -07:00
puts "you chose: >#{response}<"