tipos pedir numeros metodos entero ejemplos datos constante como alcance ruby

pedir - ¿Cómo puedo leer una contraseña desde la línea de comando en Ruby?



tipos de datos en ruby (5)

La solución del pobre hombre

system "stty -echo" # read password system "stty echo"

O usando http://raa.ruby-lang.org/project/ruby-password/

El público objetivo de esta biblioteca son los administradores del sistema que necesitan escribir programas de Ruby que soliciten, generen, verifiquen y cifren contraseñas.

Editar: Vaya, no me di cuenta de que necesita esto para Windows :(

Estoy ejecutando Ruby y MySQL en una caja de Windows.

Tengo un código de Ruby que necesita conectarse a una base de datos MySQL para realizar una selección. Para conectarme a la base de datos, debo proporcionar la contraseña, entre otras cosas.

El código de Ruby puede mostrar un mensaje que solicita la contraseña, el usuario escribe la contraseña y pulsa la tecla Intro. Lo que necesito es que la contraseña, tal como está escrita, se muestre como una línea de asteriscos.

¿Cómo puedo hacer que Ruby muestre la contraseña mecanografiada como una línea de asteriscos en el "cuadro de dos"?


Según el documento de Highline, esto parece funcionar. No estoy seguro si funcionará en Windows.

#!/usr/local/bin/ruby require ''rubygems'' require ''highline/import'' username = ask("Enter your username: ") { |q| q.echo = true } password = ask("Enter your password: ") { |q| q.echo = "*" }

Aquí está la salida en la consola:

$ ruby highline.rb Enter your username: doug Enter your password: ******


Para responder a mi propia pregunta, y para el beneficio de cualquier otra persona a quien le gustaría saber, hay una gema de Ruby llamada HighLine que necesita.

require ''rubygems'' require ''highline/import'' def get_password(prompt="Enter Password") ask(prompt) {|q| q.echo = false} end thePassword = get_password()


Los siguientes trabajos (lobin.rb) en ruby ​​not jruby

require ''highline/import'' $userid = ask("Enter your username: ") { |q| q.echo = true } $passwd = ask("Enter your password: ") { |q| q.echo = "*" }

Salida de la consola:

E:/Tools>ruby login.rb Enter your username: username Enter your password: ********

Howerver si ejecuto en jruby falla y no le da oportunidad de ingresar su contraseña.

E:/Tools>jruby login.rb Enter your username: username Enter your password:


La gema fancy_gets tiene una contraseña que funciona bien con jruby:

https://github.com/lorint/fancy_gets

El código termina así:

require ''fancy_gets'' include FancyGets puts "Password:" pwd = gets_password # ...