Skip to content

module IO::Buffered

The IO::Buffered mixin enhances an IO with input/output buffering.

The buffering behaviour can be turned on/off with the #sync= and #read_buffering= methods.

Additionally, several methods, like #gets, are implemented in a more efficient way.

Direct including types

Compress::Deflate::Reader Compress::Gzip::Reader Compress::Zlib::Reader IO::FileDescriptor OpenSSL::SSL::Socket Socket

Methods

#buffer_size

Return the buffer size used

View source

#buffer_size=(value)

Set the buffer size of both the read and write buffer Cannot be changed after any of the buffers have been allocated

View source

#close : Nil

Flushes and closes the underlying IO.

View source

#flush

Flushes any buffered data and the underlying IO. Returns self.

View source

#flush_on_newline=(flush_on_newline)

Turns on/off flushing the underlying IO when a newline is written.

View source

#flush_on_newline?

Determines if this IO flushes automatically when a newline is written.

View source

#peek : Bytes?

Returns the bytes hold in the read buffer.

This method only performs a read to return peek data if the current buffer is empty: otherwise no read is performed and whatever is in the buffer is returned.

View source

#read(slice : Bytes)

Buffered implementation of IO#read(slice).

View source

#read_buffering=(read_buffering)

Turns on/off IO read buffering.

View source

#read_buffering?

Determines whether this IO buffers reads.

View source

#rewind

Rewinds the underlying IO. Returns self.

View source

#sync=(sync)

Turns on/off IO write buffering. When sync is set to true, no buffering will be done (that is, writing to this IO is immediately synced to the underlying IO).

View source

#sync?

Determines if this IO does write buffering. If true, no buffering is done.

View source

abstract #unbuffered_close

Closes the wrapped IO.

View source

abstract #unbuffered_flush

Flushes the wrapped IO.

View source

abstract #unbuffered_read(slice : Bytes)

Reads at most slice.size bytes from the wrapped IO into slice. Returns the number of bytes read.

View source

abstract #unbuffered_rewind

Rewinds the wrapped IO.

View source

abstract #unbuffered_write(slice : Bytes)

Writes at most slice.size bytes from slice into the wrapped IO. Returns the number of bytes written.

View source

#write(slice : Bytes) : Nil

Buffered implementation of IO#write(slice).

View source