diff options
Diffstat (limited to 'lib/rainbows/response.rb')
-rw-r--r-- | lib/rainbows/response.rb | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/rainbows/response.rb b/lib/rainbows/response.rb index 8d0de1d..b7b6aa8 100644 --- a/lib/rainbows/response.rb +++ b/lib/rainbows/response.rb @@ -128,6 +128,11 @@ module Rainbows::Response unless IO.method_defined?(:trysendfile) module CopyStream def write_body_file(body, range) + # ensure sendfile gets used for SyncClose objects: + if !body.kind_of?(IO) && body.respond_to?(:to_path) + body = body.to_path + end + range ? COPY_STREAM.copy_stream(body, self, range[1], range[0]) : COPY_STREAM.copy_stream(body, self) end |