aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/user_interaction.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/user_interaction.rb')
-rw-r--r--lib/rubygems/user_interaction.rb18
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/rubygems/user_interaction.rb b/lib/rubygems/user_interaction.rb
index 9822a23c35..ff5800c116 100644
--- a/lib/rubygems/user_interaction.rb
+++ b/lib/rubygems/user_interaction.rb
@@ -530,9 +530,21 @@ end
##
# SilentUI is a UI choice that is absolutely silent.
-class Gem::SilentUI
- def method_missing(sym, *args, &block)
- self
+class Gem::SilentUI < Gem::StreamUI
+
+ def initialize
+
+ reader, writer = nil, nil
+
+ if Gem.win_platform?
+ reader = File.open('nul', 'r')
+ writer = File.open('nul', 'w')
+ else
+ reader = File.open('/dev/null', 'r')
+ writer = File.open('/dev/null', 'w')
+ end
+
+ super reader, writer, writer
end
end