1579 cleanup

I generally dislike mocking IO objects as they have a very wide interface and many ways to accomplish the same thing.  I'd prefer us to use the `expect { }.to output` matcher or inject a `StringIO` object that you can assert on the contents of at the end of the spec.