lib/ftw/http/message.rb in ftw-0.0.18 vs lib/ftw/http/message.rb in ftw-0.0.19

- old
+ new

@@ -52,15 +52,19 @@ def body=(message_body) # TODO(sissel): if message_body is a string, set Content-Length header # TODO(sissel): if it's an IO object, set Transfer-Encoding to chunked # TODO(sissel): if it responds to each or appears to be Enumerable, then # set Transfer-Encoding to chunked. - if message_body.respond_to?(:read) or message_body.respond_to?(:each) + @body = message_body + + # don't set any additional length/encoding headers if they are already set. + return if headers.include?("Content-Length") or headers.include?("Transfer-Encoding") + + if (message_body.respond_to?(:read) or message_body.respond_to?(:each)) and headers["Transfer-Encoding"] = "chunked" else headers["Content-Length"] = message_body.length end - @body = message_body end # def body= # Get the body of this message # # Returns an Enumerable, IO-like object, or String, depending on how this