3 ms·
> > I want to write to the socket. > That's what you do when you yield to the each's block. No IO object in ruby uses the `each` method for writing.
by tenderlove 14y ago
> > I want to write to the socket.
> That's what you do when you yield to the each's block.
No IO object in ruby uses the `each` method for writing.
- masklinn 14y agoYou are mistaken and confused. All IO objects in Ruby use `each` for writing out, non-IO objects use something else to write to IO objects. But from an IO object's perspective, that's a read. Rack responses are IO objects, so they use #each to write data out. That's perfectly coherent.
- bascule 14y agoResponding to #each is neither a necessary or sufficient property of Ruby IO objects. You are mistaken and confused. Don't believe me? Let's undefine #each on the metaclass of an IO object and see what happens. Guess what: it still works! https://gist.github.com/3218710 https://gist.github.com/3218710