Issue #5778 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned
Assignee set to mame (Yusuke Endoh)

It is trivial, and the patch looks good to me.
I'll commit it unless there is objection.

-- 
Yusuke Endoh <mame / tsg.ne.jp>
----------------------------------------
Feature #5778: Allow WEBrick::HTTPResponse to send IO-duck-typed bodies
https://bugs.ruby-lang.org/issues/5778#change-25307

Author: regularfry (Alex Young)
Status: Assigned
Priority: Normal
Assignee: mame (Yusuke Endoh)
Category: lib
Target version: 


WEBrick::HTTPResponse currently type-checks for IO to determine how to transfer content to the outgoing socket.  Because of this, it's not possible to use "IO-like" objects as data sources unless they specifically inherit from IO.

The interface HTTPResponse requires from its body objects is very simple: it only calls #read and #close, and optionally #bytesize.  This means that the type-check is needlessly strict, and prevents custom objects from being used as data sources.  The attached patch removes the type-check on IO, allowing duck-typed objects to be used.

The downside to this patch is that you can't pass in objects that duck-type to String's interface.  It wouldn't be hard to remove that restriction if necessary, but I figured this was the less intrusive approach.


-- 
http://bugs.ruby-lang.org/