¿Cómo puedo asegurarme de que el ícono de la llave (ver img para una muestra) siempre aparece cada vez que llamo a STDIN.getpass ? El problema es intermitente, a veces aparece el ícono y otras veces no. No pude encontrar un paso de reproducción confiable.
Cómo se ve mi código actualmente:
$stdout.flush # to hide the password while being typed in the terminal STDIN.getpass$stdout.flush resolvería mi problema, pero no fue así.STDIN.getpass , por lo que no está asignado a ninguna variable.El ícono de la llave en sí no está tan relacionado con la función STDIN.getpass , que es muy simple y puede verlo aquí:
https://github.com/ruby/io-console/blob/master/lib/io/console/ffi/common.rb#L9-L21
el bloque noecho simplemente configura tty_mode en noecho (ver https://github.com/ruby/ruby/blob/d92f09a5eea009fa28cd046e9d0eb698e3d94c5c/ext/io/console/console.c#L602 )
Entonces, creo que esta pregunta es realmente mejor como: "¿Por qué mi Terminal program en my operating system no siempre muestra un ícono de llave, cuando el tty_mode está configurado en noecho .