IO::Grab
Capture IO writes.
Installation
Add this line to your application's Gemfile:
gem 'io-grab', require: false
And then execute:
$ bundle
Or install it yourself as:
$ gem install io-grab
Usage
io-grab adds #grab method to IO. (It also extends StringIO for consistency, even though it isn't really an IO.) You can use this method to temporarily redirect writes to the object to a string, ie. for later examination.
require 'io/grab'
STDOUT.grab { puts "foo" }
# _ == "foo\n"
This is particularly useful for testing, eg. to check for expected messages.
describe "Kernel#puts" do
it "adds a newline at the end" do
STDOUT.grab { puts "foo" }.should =~ /\n\z/
end
end
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request