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, true
aby false
tego nie robić). Jeśli ARGV
nie jest pusty, gets
spróbuje odczytać plik w formacieARGV
zamiast pobierać dane wejściowe. Dodatkowo Readline
jest 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? "