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

Assignee changed from nahi (Hiroshi Nakamura) to normalperson (Eric Wong)

@normalperson, could you handle this ticket?

----------------------------------------
Feature #5778: Allow WEBrick::HTTPResponse to send IO-duck-typed bodies
https://bugs.ruby-lang.org/issues/5778#change-72539

* Author: regularfry (Alex Young)
* Status: Assigned
* Priority: Normal
* Assignee: normalperson (Eric Wong)
* 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.

---Files--------------------------------
httpresponse.patch (2.76 KB)


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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>