def open(url, rewindable: true, **options, &block)
      response = request(url, **options, &block)

      Down::ChunkedIO.new(
        chunks:     enum_for(:stream_body, response),
        size:       response.content_length,
        encoding:   response.content_type.charset,
        rewindable: rewindable,
        data:       { status: response.code, headers: response.headers.to_h, response: response },
      )
    end
def open(url, rewindable: true, **options, &block)
      response = request(url, **options, &block)

      Down::ChunkedIO.new(
        chunks:     enum_for(:stream_body, response),
        size:       response.content_length,
        encoding:   response.content_type.charset,
        rewindable: rewindable,
        data:       { status: response.code, headers: response.headers.to_h, response: response },
      )
    end
Starts retrieving the remote file and returns an IO-like object which
 downloads the response body on-demand. Accepts HTTP.rb options via a hash
 or a block.