RosettaCodeData/Task/Menu/Ruby/menu.rb

24 lines
587 B
Ruby

def select(prompt, items)
return "" if items.length == 0
while true
items.each_index {|i| puts "#{i}. #{items[i]}"}
print "#{prompt}: "
begin
answer = Integer(gets())
rescue ArgumentError
redo
end
return items[answer] if answer.between?(0, items.length - 1)
end
end
# test empty list
response = select("Which is empty", [])
puts "empty list returns: >#{response}<"
puts ""
# "real" test
items = ['fee fie', 'huff and puff', 'mirror mirror', 'tick tock']
response = select("Which is from the three pigs", items)
puts "you chose: >#{response}<"