Я знаю, что это старый вопрос, но мне хотелось бы показать, что я использую в качестве стандартного метода ввода данных.
require 'readline'
def input(prompt="", newline=false)
prompt += "\n" if newline
Readline.readline(prompt, true).squeeze(" ").strip
end
Это действительно приятно, потому что, если пользователь добавляет странные пробелы в конце или в начале, он их удалит и сохранит историю того, что они вводили в прошлом (измените значение trueна, falseчтобы этого не было). И, если ARGVне пусто, то getsбудет пытаться читать из файла ARGVвместо получения ввода. Кроме того, Readlineэто часть стандартной библиотеки Ruby, поэтому вам не нужно устанавливать какие-либо драгоценные камни. Кроме того, вы не можете перемещать курсор при использовании gets, но можете с Readline.
И я знаю, что метод - это не одна строка, а когда вы его вызываете
name = input "What is your name? "