22 lines
537 B
Plaintext
22 lines
537 B
Plaintext
menu = { prompt, choices |
|
|
true? choices.empty?
|
|
{ "" }
|
|
{
|
|
choices.each_with_index { c, i |
|
|
p "#{i}. #{c}"
|
|
}
|
|
|
|
selection = ask prompt
|
|
|
|
true? selection.numeric?
|
|
{ selection = selection.to_i
|
|
true? selection < 0 || { selection >= choices.length }
|
|
{ p "Selection is out of range"; menu prompt, choices }
|
|
{ choices[selection] }
|
|
}
|
|
{ p "Selection must be a number"; menu prompt, choices }
|
|
}
|
|
}
|
|
|
|
p menu "Selection: " ["fee fie" "huff and puff" "mirror mirror" "tick tock"]
|