Session::CommitOnWrite
Inherits IO < Reference < Object
Wraps a response's output and runs a block once, just before the first byte is written.
Response headers, Set-Cookie among them, are sent with the first write. A session saved
after the endpoint returns is too late for a response that was flushed, streamed, or larger
than the output buffer, and its cookie would be lost.
Constructors
Instance methods
Returns true if this IO is closed.
IO defines returns false, but including types may override.
Flushes buffered data, if any.
IO defines this is a no-op method, but including types may override.
Reads at most slice.size bytes from this IO into slice.
Returns the number of bytes read, which is 0 if and only if there is no
more data to read (so checking for 0 is the way to detect end of file).
io = IO::Memory.new "hello"
slice = Bytes.new(4)
io.read(slice) # => 4
slice # => Bytes[104, 101, 108, 108]
io.read(slice) # => 1
slice # => Bytes[111, 101, 108, 108]
io.read(slice) # => 0
Writes the contents of slice into this IO.
io = IO::Memory.new
slice = Bytes.new(4) { |i| ('a'.ord + i).to_u8 }
io.write(slice)
io.to_s # => "abcd"