Sé que esta pregunta es antigua, pero pensé que mostraría lo que uso como mi método estándar para obtener información.
require 'readline'
def input(prompt="", newline=false)
prompt += "\n" if newline
Readline.readline(prompt, true).squeeze(" ").strip
end
Esto es realmente bueno porque si el usuario agrega espacios extraños al final o al principio, los eliminará y mantendrá un historial de lo que ingresaron en el pasado (cambie true
a false
para que no haga eso). Y, si ARGV
no está vacío, gets
intentará leer desde un archivo ARGV
, en lugar de obtener entrada. Además, Readline
es parte de la biblioteca estándar de Ruby, por lo que no tiene que instalar ninguna gema. Además, no puede mover el cursor cuando usa gets
, pero puede hacerlo con Readline
.
Y sé que el método no es una línea, pero es cuando lo llamas
name = input "What is your name? "