io-stream 0.6.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/io/stream/buffered.rb +46 -22
- data/lib/io/stream/generic.rb +19 -323
- data/lib/io/stream/openssl.rb +15 -0
- data/lib/io/stream/readable.rb +358 -0
- data/lib/io/stream/shim/buffered.rb +16 -0
- data/lib/io/stream/shim/readable.rb +8 -0
- data/lib/io/stream/string_buffer.rb +5 -0
- data/lib/io/stream/version.rb +1 -1
- data/lib/io/stream/writable.rb +92 -0
- data/lib/io/stream.rb +5 -0
- data/license.md +1 -1
- data/readme.md +58 -4
- data/releases.md +75 -0
- data.tar.gz.sig +0 -0
- metadata +7 -11
- metadata.gz.sig +0 -0
- data/lib/io/stream/shim/shim.md +0 -4
- data/lib/io/stream/shim/timeout.rb +0 -17
data/releases.md
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
# Releases
|
2
|
+
|
3
|
+
## v0.8.0
|
4
|
+
|
5
|
+
- On Ruby v3.3+, use `IO#write` directly instead of `IO#write_nonblock`, for better performance.
|
6
|
+
- Introduce support for `Readable#discard_until` method to discard data until a specific pattern is found.
|
7
|
+
|
8
|
+
## v0.7.0
|
9
|
+
|
10
|
+
- Split stream functionality into separate `Readable` and `Writable` modules for better modularity and composition.
|
11
|
+
- Remove unused timeout shim functionality.
|
12
|
+
- 100% documentation coverage.
|
13
|
+
|
14
|
+
## v0.6.1
|
15
|
+
|
16
|
+
- Fix compatibility with Ruby v3.3.0 - v3.3.6 where broken `@io.close` could hang.
|
17
|
+
|
18
|
+
## v0.6.0
|
19
|
+
|
20
|
+
- Improve compatibility of `gets` implementation to better match Ruby's IO\#gets behavior.
|
21
|
+
|
22
|
+
## v0.5.0
|
23
|
+
|
24
|
+
- Add support for `read_until(limit:)` parameter to limit the amount of data read.
|
25
|
+
- Minor documentation improvements.
|
26
|
+
|
27
|
+
## v0.4.3
|
28
|
+
|
29
|
+
- Add comprehensive tests for `buffered?` method on `SSLSocket`.
|
30
|
+
- Ensure TLS connections have correct buffering behavior.
|
31
|
+
- Improve test suite organization and readability.
|
32
|
+
|
33
|
+
## v0.4.2
|
34
|
+
|
35
|
+
- Add external test suite for better integration testing.
|
36
|
+
- Update dependencies and improve code style with RuboCop.
|
37
|
+
|
38
|
+
## v0.4.1
|
39
|
+
|
40
|
+
- Add compatibility fix for `SSLSocket` raising `EBADF` errors.
|
41
|
+
- Fix `IO#close` hang issue in certain scenarios.
|
42
|
+
- Add `#to_io` method to `IO::Stream::Buffered` for better compatibility.
|
43
|
+
- Modernize gem structure and dependencies.
|
44
|
+
|
45
|
+
## v0.4.0
|
46
|
+
|
47
|
+
- Add convenient `IO.Stream()` constructor method for creating buffered streams.
|
48
|
+
|
49
|
+
## v0.3.0
|
50
|
+
|
51
|
+
- Add support for timeouts with compatibility shims for various IO types.
|
52
|
+
|
53
|
+
## v0.2.0
|
54
|
+
|
55
|
+
- Prefer `write_nonblock` in `syswrite` implementation for better non-blocking behavior.
|
56
|
+
- Add test cases for crash scenarios.
|
57
|
+
|
58
|
+
## v0.1.1
|
59
|
+
|
60
|
+
- Improve buffering compatibility by falling back to `sync=` when `buffered=` is not available.
|
61
|
+
|
62
|
+
## v0.1.0
|
63
|
+
|
64
|
+
- Rename `IO::Stream::BufferedStream` to `IO::Stream::Buffered` for consistency.
|
65
|
+
- Add comprehensive tests and improved OpenSSL support with compatibility shims.
|
66
|
+
- Improve compatibility with Darwin/macOS systems.
|
67
|
+
- Fix monkey patches for various IO types.
|
68
|
+
- Add support for `StringIO#buffered?` method.
|
69
|
+
|
70
|
+
## v0.0.1
|
71
|
+
|
72
|
+
- Initial release with basic buffered stream functionality.
|
73
|
+
- Provide `IO::Stream::Buffered` class for efficient buffered I/O operations.
|
74
|
+
- Add `readable?` method to check stream readability status.
|
75
|
+
- Include basic test suite.
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: io-stream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain:
|
11
10
|
- |
|
@@ -37,10 +36,8 @@ cert_chain:
|
|
37
36
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
38
37
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
39
38
|
-----END CERTIFICATE-----
|
40
|
-
date:
|
39
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
41
40
|
dependencies: []
|
42
|
-
description:
|
43
|
-
email:
|
44
41
|
executables: []
|
45
42
|
extensions: []
|
46
43
|
extra_rdoc_files: []
|
@@ -49,21 +46,21 @@ files:
|
|
49
46
|
- lib/io/stream/buffered.rb
|
50
47
|
- lib/io/stream/generic.rb
|
51
48
|
- lib/io/stream/openssl.rb
|
49
|
+
- lib/io/stream/readable.rb
|
52
50
|
- lib/io/stream/shim/buffered.rb
|
53
51
|
- lib/io/stream/shim/readable.rb
|
54
|
-
- lib/io/stream/shim/shim.md
|
55
|
-
- lib/io/stream/shim/timeout.rb
|
56
52
|
- lib/io/stream/string_buffer.rb
|
57
53
|
- lib/io/stream/version.rb
|
54
|
+
- lib/io/stream/writable.rb
|
58
55
|
- license.md
|
59
56
|
- readme.md
|
57
|
+
- releases.md
|
60
58
|
homepage: https://github.com/socketry/io-stream
|
61
59
|
licenses:
|
62
60
|
- MIT
|
63
61
|
metadata:
|
64
62
|
documentation_uri: https://socketry.github.io/io-stream
|
65
63
|
source_code_uri: https://github.com/socketry/io-stream.git
|
66
|
-
post_install_message:
|
67
64
|
rdoc_options: []
|
68
65
|
require_paths:
|
69
66
|
- lib
|
@@ -71,15 +68,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
71
68
|
requirements:
|
72
69
|
- - ">="
|
73
70
|
- !ruby/object:Gem::Version
|
74
|
-
version: '3.
|
71
|
+
version: '3.2'
|
75
72
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
73
|
requirements:
|
77
74
|
- - ">="
|
78
75
|
- !ruby/object:Gem::Version
|
79
76
|
version: '0'
|
80
77
|
requirements: []
|
81
|
-
rubygems_version: 3.
|
82
|
-
signing_key:
|
78
|
+
rubygems_version: 3.6.7
|
83
79
|
specification_version: 4
|
84
80
|
summary: Provides a generic stream wrapper for IO instances.
|
85
81
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|
data/lib/io/stream/shim/shim.md
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Released under the MIT License.
|
4
|
-
# Copyright, 2024, by Samuel Williams.
|
5
|
-
|
6
|
-
class IO
|
7
|
-
unless const_defined?(:TimeoutError)
|
8
|
-
# Compatibility shim.
|
9
|
-
class TimeoutError < IOError
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
unless method_defined?(:timeout)
|
14
|
-
# Compatibility shim.
|
15
|
-
attr_accessor :timeout
|
16
|
-
end
|
17
|
-
end
|