Issue #20105 has been reported by ioquatix (Samuel Williams).
----------------------------------------
Bug #20105: Introduce `IO::Stream` or something similar.
https://bugs.ruby-lang.org/issues/20105
* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: ioquatix (Samuel Williams)
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
Ruby's IO class has a general model for streaming IO, including some hidden classes
like `IO::generic_readable` and `IO::generic_writable`.
As Ruby's core IO classes evolve, gems like `openssl` (see `OpenSSL::Buffering`) need
to be updated to support changes to the interface.
As it stands, there are changes in `IO` which are not copied to `OpenSSL::Buffering`.
I'd like to propose we introduce some shared interface for streams that is used by
`IO`, `Socket`, and `OpenSSL` to start with. The general interface would be similar to
`IO` and allow code like `OpenSSL` to avoid re-implementing the `IO` interface.
--
https://bugs.ruby-lang.org/