Method: Chaser#silence_stream

Defined in:
lib/chaser.rb

#silence_streamObject

Suppresses output on $stdout and $stderr.



298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
# File 'lib/chaser.rb', line 298

def silence_stream
  return yield if @@debug

  begin
    dead = File.open(Chaser::NULL_PATH, "w")

    $stdout.flush
    $stderr.flush

    oldstdout = $stdout.dup
    oldstderr = $stderr.dup

    $stdout.reopen(dead)
    $stderr.reopen(dead)

    result = yield

  ensure
    $stdout.flush
    $stderr.flush

    $stdout.reopen(oldstdout)
    $stderr.reopen(oldstderr)
    result
  end
end