Wiem, że to pytanie jest stare, ale pomyślałem, że pokażę, czego używam jako standardowej metody uzyskiwania danych wejściowych.
require 'readline'
def input(prompt="", newline=false)
prompt += "\n" if newline
Readline.readline(prompt, true).squeeze(" ").strip
end
To naprawdę fajne, ponieważ jeśli użytkownik doda dziwne spacje na końcu lub na początku, usunie je i zachowa historię tego, co wprowadził w przeszłości (zmień na, trueaby falsetego nie robić). Jeśli ARGVnie jest pusty, getsspróbuje odczytać plik w formacieARGV zamiast pobierać dane wejściowe. Dodatkowo Readlinejest częścią standardowej biblioteki Ruby, więc nie musisz instalować żadnych klejnotów. Nie możesz również przesuwać kursora podczas używania gets, ale możesz to zrobić za pomocąReadline .
Wiem, że metoda nie jest jedną linijką, ale jest tak, jak ją wywołujesz
name = input "What is your name? "