diff options
Diffstat (limited to 'lib/rubygems/user_interaction.rb')
-rw-r--r-- | lib/rubygems/user_interaction.rb | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/lib/rubygems/user_interaction.rb b/lib/rubygems/user_interaction.rb index cacd782e08..390d0f2aea 100644 --- a/lib/rubygems/user_interaction.rb +++ b/lib/rubygems/user_interaction.rb @@ -7,6 +7,11 @@ require 'rubygems/util' +begin + require 'io/console' +rescue LoadError +end + ## # Module that defines the default UserInteraction. Any class including this # module will have access to the +ui+ method that returns the default UI. @@ -309,21 +314,12 @@ class Gem::StreamUI password end - def require_io_console - @require_io_console ||= begin - begin - require 'io/console' - rescue LoadError - end - true - end - end - - def _gets_noecho - require_io_console - if IO.method_defined?(:noecho) then + if IO.method_defined?(:noecho) then + def _gets_noecho @ins.noecho {@ins.gets} - elsif Gem.win_platform? + end + elsif Gem.win_platform? + def _gets_noecho require "Win32API" password = '' @@ -336,7 +332,9 @@ class Gem::StreamUI end end password - else + end + else + def _gets_noecho system "stty -echo" begin @ins.gets |