ruby-changes:15741
From: nobu <ko1@a...>
Date: Sat, 8 May 2010 13:11:46 +0900 (JST)
Subject: [ruby-changes:15741] Ruby:r27669 (trunk): * lib/rubygems/user_interaction.rb (Gem::StreamUI#ask_for_password):
nobu 2010-05-08 13:11:30 +0900 (Sat, 08 May 2010) New Revision: 27669 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27669 Log: * lib/rubygems/user_interaction.rb (Gem::StreamUI#ask_for_password): use io/console. Modified files: trunk/ChangeLog trunk/lib/rubygems/user_interaction.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 27668) +++ ChangeLog (revision 27669) @@ -1,5 +1,8 @@ -Sat May 8 13:05:37 2010 Nobuyoshi Nakada <nobu@r...> +Sat May 8 13:11:28 2010 Nobuyoshi Nakada <nobu@r...> + * lib/rubygems/user_interaction.rb (Gem::StreamUI#ask_for_password): + use io/console. + * ext/io/console: imported. [ruby-dev:40897] Sat May 8 12:25:15 2010 Nobuyoshi Nakada <nobu@r...> Index: lib/rubygems/user_interaction.rb =================================================================== --- lib/rubygems/user_interaction.rb (revision 27668) +++ lib/rubygems/user_interaction.rb (revision 27669) @@ -224,41 +224,13 @@ 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 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/