class HTTP::Response::Caching
def body=(new_body)
def body=(new_body) @body = if new_body.respond_to?(:readpartial) && new_body.respond_to?(:read) # IO-ish, probably a rack cache response body IoBody.new(new_body) elsif new_body.respond_to? :join # probably an array of body parts (rack cache does this sometimes) StringBody.new(new_body.join("")) elsif new_body.respond_to? :readpartial # normal body, just use it. new_body else # backstop, just to_s it StringBody.new(new_body.to_s) end end