Feature #5778
closedAllow WEBrick::HTTPResponse to send IO-duck-typed bodies
Description
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
Updated by mame (Yusuke Endoh) almost 12 years ago
- 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
Updated by nahi (Hiroshi Nakamura) almost 12 years ago
Yusuke, you may want to assign it to me (maintainer)
I think it's good to improve, but not yet checked the patch...
Updated by mame (Yusuke Endoh) almost 12 years ago
- Assignee changed from mame (Yusuke Endoh) to nahi (Hiroshi Nakamura)
You have control.
--
Yusuke Endoh mame@tsg.ne.jp
Updated by mame (Yusuke Endoh) over 11 years ago
- Target version set to 2.6
Blame NaHi!
--
Yusuke Endoh mame@tsg.ne.jp
Updated by mame (Yusuke Endoh) over 5 years ago
- Assignee changed from nahi (Hiroshi Nakamura) to normalperson (Eric Wong)
@normalperson (Eric Wong), could you handle this ticket?
Updated by normalperson (Eric Wong) over 5 years ago
mame@ruby-lang.org wrote:
@normalperson (Eric Wong), could you handle this ticket?
https://bugs.ruby-lang.org/issues/5778#change-72539
This seems identical to [Feature #8155] and already implemented.
https://bugs.ruby-lang.org/issues/8155
Updated by hsbt (Hiroshi SHIBATA) over 2 years ago
- Status changed from Assigned to Closed
webrick is removed from ruby repo since Ruby 3.0.
The canonical repo is here: https://github.com/ruby/webrick/