Sha256: 0c8fc490478b27091cd5c93ce1c9055f2b9133b8c6b4cf1de738f5578a398b68

Contents?: true

Size: 651 Bytes

Versions: 49

Compression:

Stored size: 651 Bytes

Contents

use Rack::ContentType, "text/plain"

app = lambda do |env|
  # streamed pieces to be sent
  pieces = %w{Hello streamy world}

  response_headers = {}

  # set a fixed content length in the header if requested
  if env['REQUEST_PATH'] == '/streamed/fixed_length'
    response_headers['Content-Length'] = pieces.join.length.to_s
  end

  response_headers["rack.hijack"] = lambda do |io|
    # Write directly to IO of the response
    begin
      # return the response in pieces
      pieces.each do |x|
        sleep(0.1)
        io.write(x)
        io.flush
      end
    ensure
      io.close
    end
  end
  [200, response_headers, nil]
end

run app

Version data entries

49 entries across 47 versions & 4 rubygems

Version Path
able-neo4j-1.0.0 vendor/bundle/jruby/1.9/gems/excon-0.45.4/tests/rackups/streaming.ru
excon-0.49.0 tests/rackups/streaming.ru
excon-0.48.0 tests/rackups/streaming.ru
excon-0.47.0 tests/rackups/streaming.ru
excon-0.46.0 tests/rackups/streaming.ru
vagrant-cloudstack-1.2.0 vendor/bundle/gems/excon-0.45.4/tests/rackups/streaming.ru
excon-0.45.4 tests/rackups/streaming.ru
vagrant-cloudstack-1.1.0 vendor/bundle/gems/excon-0.45.3/tests/rackups/streaming.ru
excon-0.45.3 tests/rackups/streaming.ru
excon-0.45.2 tests/rackups/streaming.ru
excon-0.45.1 tests/rackups/streaming.ru
excon-0.45.0 tests/rackups/streaming.ru
excon-0.44.4 tests/rackups/streaming.ru
excon-0.44.3 tests/rackups/streaming.ru
excon-0.44.2 tests/rackups/streaming.ru
excon-0.44.1 tests/rackups/streaming.ru
excon-0.44.0 tests/rackups/streaming.ru
excon-0.43.0 tests/rackups/streaming.ru
excon-0.42.1 tests/rackups/streaming.ru
excon-0.42.0 tests/rackups/streaming.ru