Sha256: 480b51949667e31fa34007967de2f72162eac87f4a85d15070292a529f2d822c
Contents?: true
Size: 912 Bytes
Versions: 4
Compression:
Stored size: 912 Bytes
Contents
require "tempfile" module Kernel # From: 'activesupport-4.1.0/lib/active_support/core_ext/kernel/reporting.rb # # Captures the given stream and returns it: # # stream = capture(:stdout) { puts 'notice' } # stream # => "notice\n" # # stream = capture(:stderr) { warn 'error' } # stream # => "error\n" # # even for subprocesses: # # stream = capture(:stdout) { system('echo notice') } # stream # => "notice\n" # # stream = capture(:stderr) { system('echo error 1>&2') } # stream # => "error\n" def capture(stream) stream = stream.to_s captured_stream = Tempfile.new(stream) stream_io = eval("$#{stream}") origin_stream = stream_io.dup stream_io.reopen(captured_stream) yield stream_io.rewind return captured_stream.read ensure captured_stream.close captured_stream.unlink stream_io.reopen(origin_stream) end end
Version data entries
4 entries across 4 versions & 1 rubygems