class TermUtil
Prompt for password Extracted from Ian Macdonald's Ruby/Password gem.
Example:
password = getc(message="Password: ", mask='*') puts "It's:" + password
Public Class Methods
echo(on=true, masked=false)
click to toggle source
# File lib/davclient/termutil.rb, line 14 def self.echo(on=true, masked=false) term = Termios::getattr( $stdin ) if on term.c_lflag |= ( Termios::ECHO | Termios::ICANON ) else # off term.c_lflag &= ~Termios::ECHO term.c_lflag &= ~Termios::ICANON if masked end Termios::setattr( $stdin, Termios::TCSANOW, term ) end
getc(message="Password: ", mask='*')
click to toggle source
# File lib/davclient/termutil.rb, line 27 def self.getc(message="Password: ", mask='*') # Save current buffering mode buffering = $stdout.sync # Turn off buffering $stdout.sync = true begin echo(false, true) print message if message pw = "" while ( char = $stdin.getc ) != 10 # break after [Enter] putc mask pw << char end ensure echo true print "\n" end # Restore original buffering mode $stdout.sync = buffering return pw end