aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
diff options
context:
space:
mode:
authorVipul A M <vipulnsward@gmail.com>2015-01-15 12:12:33 +0530
committerVipul A M <vipulnsward@gmail.com>2015-01-20 22:28:48 +0530
commit166ce95f65cd6b54e23d43e0e61875d6c3a38047 (patch)
tree8ee4222277b604cd39b27b78e8db0b4a5087bb69 /activesupport/lib
parent850159bd2c5e1e108d0256dd05424bbbf7926b59 (diff)
downloadrails-166ce95f65cd6b54e23d43e0e61875d6c3a38047.tar.gz
rails-166ce95f65cd6b54e23d43e0e61875d6c3a38047.tar.bz2
rails-166ce95f65cd6b54e23d43e0e61875d6c3a38047.zip
- Extracted silence_stream method to new module in activesupport/testing.
- Added include for the same in ActiveSupport::Test. - Removed occurrences of silence_stream being used elsewhere. - Reordered activesupport testcase requires alphabetically. - Removed require of silence stream from test_case - Moved quietly method to stream helper - Moved capture output to stream helper module and setup requires for the same elsewhere
Diffstat (limited to 'activesupport/lib')
-rw-r--r--activesupport/lib/active_support/testing/stream.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/testing/stream.rb b/activesupport/lib/active_support/testing/stream.rb
new file mode 100644
index 0000000000..895192ad05
--- /dev/null
+++ b/activesupport/lib/active_support/testing/stream.rb
@@ -0,0 +1,42 @@
+module ActiveSupport
+ module Testing
+ module Stream #:nodoc:
+ private
+
+ def silence_stream(stream)
+ old_stream = stream.dup
+ stream.reopen(IO::NULL)
+ stream.sync = true
+ yield
+ ensure
+ stream.reopen(old_stream)
+ old_stream.close
+ end
+
+ def quietly
+ silence_stream(STDOUT) do
+ silence_stream(STDERR) do
+ yield
+ end
+ end
+ end
+
+ 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
+ end
+end