aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/rubygems/command.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/rubygems/command.rb b/lib/rubygems/command.rb
index 3bdca656b3..a7ec212e51 100644
--- a/lib/rubygems/command.rb
+++ b/lib/rubygems/command.rb
@@ -300,7 +300,10 @@ class Gem::Command
options[:build_args] = build_args
- self.ui = Gem::SilentUI.new if options[:silent]
+ if options[:silent]
+ old_ui = self.ui
+ self.ui = ui = Gem::SilentUI.new
+ end
if options[:help] then
show_help
@@ -309,6 +312,11 @@ class Gem::Command
else
execute
end
+ ensure
+ if ui
+ self.ui = old_ui
+ ui.close
+ end
end
##