diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-05-08 04:11:30 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-05-08 04:11:30 +0000 |
commit | adf6297ec815edc2a4270384f83f0d96e09f25a1 (patch) | |
tree | fface2c797bbd3243d538b55ca28e2225ae96c5d /lib/rubygems/user_interaction.rb | |
parent | 163f974208f917e3e13a307778a6b6144065cd1d (diff) |
* lib/rubygems/user_interaction.rb (Gem::StreamUI#ask_for_password):
use io/console.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/rubygems/user_interaction.rb')
-rw-r--r-- | lib/rubygems/user_interaction.rb | 34 |
1 files changed, 3 insertions, 31 deletions
diff --git a/lib/rubygems/user_interaction.rb b/lib/rubygems/user_interaction.rb index 1ab948dcb6..5db2dfd21c 100644 --- a/lib/rubygems/user_interaction.rb +++ b/lib/rubygems/user_interaction.rb @@ -224,41 +224,13 @@ class Gem::StreamUI def ask_for_password(question) return nil if not @ins.tty? + require 'io/console' + @outs.print(question + " ") @outs.flush - Gem.win_platform? ? ask_for_password_on_windows : ask_for_password_on_unix - end - - ## - # Asks for a password that works on windows. Ripped from the Heroku gem. - - def ask_for_password_on_windows - require "Win32API" - char = nil - password = '' - - while char = Win32API.new("crtdll", "_getch", [ ], "L").Call do - break if char == 10 || char == 13 # received carriage return or newline - if char == 127 || char == 8 # backspace and delete - password.slice!(-1, 1) - else - password << char.chr - end - end - - puts - password - end - - ## - # Asks for a password that works on unix - - def ask_for_password_on_unix - system "stty -echo" - password = @ins.gets + password = @ins.noecho {@ins.gets} password.chomp! if password - system "stty echo" password end |