From b1315983056f91467b336aeb426759debc006a4e Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 6 Jun 2010 02:14:58 +0000 Subject: centralize body => IO conversion logic Since EventMachine and Rev shared the same logic for optimizing and avoiding extra file opens for IO/File-ish response bodies, so centralize that. For Ruby 1.9 users, we've also enabled this logic so ThreadPool, ThreadSpawn, WriterThreadPool, and WriterThreadSpawn can take advantage of Rainbows::DevFdResponse-generated bodies while proxying sockets. --- lib/rainbows/rev/deferred_response.rb | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'lib/rainbows/rev/deferred_response.rb') diff --git a/lib/rainbows/rev/deferred_response.rb b/lib/rainbows/rev/deferred_response.rb index dd7a229..62a308c 100644 --- a/lib/rainbows/rev/deferred_response.rb +++ b/lib/rainbows/rev/deferred_response.rb @@ -17,12 +17,7 @@ module Rainbows return HttpResponse.write(client, response, out) headers = HH.new(headers) - - # to_io is not part of the Rack spec, but make an exception - # here since we can't get here without checking to_path first - io = body.to_io if body.respond_to?(:to_io) - io ||= ::IO.new($1.to_i) if body.to_path =~ %r{\A/dev/fd/(\d+)\z} - io ||= File.open(body.to_path, 'rb') + io = Rainbows.body_to_io(body) st = io.stat if st.socket? || st.pipe? -- cgit v1.2.3-24-ge0c7