Sockets aren't valid unless wrapped in a rewindable.  Most of the time we should expect a StringIO.  In the PR, I've added some simple strategies.  People at RailsConf thought this was fine.  (needs to be cleaned up, of course)