Module: Kernel

Defined in:
lib/core_ext/kernel/silence.rb

Instance Method Summary collapse

Instance Method Details

#silenceObject



2
3
4
# File 'lib/core_ext/kernel/silence.rb', line 2

def silence
  silence_stream(STDOUT, STDERR) { yield }
end

#silence_stream(*streams) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/core_ext/kernel/silence.rb', line 6

def silence_stream(*streams)
  on_hold = streams.collect{ |stream| stream.dup }
  streams.each do |stream|
    stream.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null')
    stream.sync = true
  end
  yield
ensure
  streams.each_with_index do |stream, i|
    stream.reopen(on_hold[i])
  end
end