Ruby metaprogramming magic

Some Rack Adapters allow you to get down to the IO object of their request and response bodies, others don't.

IO.copy_stream for instance looks if there is a .to_io method defined and uses the underlying object for its magic.