El HighLine gem rend cela facile.
Pour une question simple de type oui ou non, vous pouvez utiliser agree
:
require "highline/import"
task :agree do
if agree("Shall we continue? ( yes or no )")
puts "Ok, lets go"
else
puts "Exiting"
end
end
Si vous voulez faire quelque chose de plus complexe, utilisez ask
:
require "highline/import"
task :ask do
answer = ask("Go left or right?") { |q|
q.default = "left"
q.validate = /^(left|right)$/i
}
if answer.match(/^right$/i)
puts "Going to the right"
else
puts "Going to the left"
end
end
Voici la description de la pierre précieuse :
Un objet HighLine est un shell "orienté ligne de haut niveau" sur un flux d'entrée et de sortie. et un flux de sortie. HighLine simplifie les interactions courantes avec la console, remplaçant efficacement puts() et gets(). Le code utilisateur peut simplement spécifier la question à poser et tous les détails concernant l'interaction avec l'utilisateur, puis laisser le reste du travail à HighLine. Lorsque HighLine.ask() revient, vous aurez la réponse que vous avez demandée, même si HighLine a dû la demander plusieurs fois, valider les résultats, vérifier les plages, convertir les types, etc.
Pour plus d'informations, vous pouvez lire les documents .