io-stream 0.9.0 → 0.9.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 108295b1d28ce05e7c9e9e3f7b3d26427f564a85527a9f23a24ad5b47a261dea
4
- data.tar.gz: 2aa1c2f6d600d38667e5030122aecd1faa97f81be44695edf6776dda541d5a89
3
+ metadata.gz: 506d80a7bb9aee846def3d18d0bf53f2085b751de5d511a8a6a31f8a5de0efd2
4
+ data.tar.gz: 9c828735d78bdeb4dba18b81ed350f5776ba3436cca7f18b17c465d6efd4ce7e
5
5
  SHA512:
6
- metadata.gz: c6c9fc15b84c0ef6d58e2400aeebaac0a36fd67f656dcf10e2f4a1dde2176434dc8f9464809f2b5c05af2563c8bcb1a74ef1e243b7263348d36d24f00df2af7c
7
- data.tar.gz: 92c3a90776a6f6308ab7d0fa25d35b7df65021f70cb8aadf01e7363961c818392c2ce3fe861b20b38965acebcca851e7419708ad18b2536ae892496b9ea39ade
6
+ metadata.gz: 19d26e89eca00835b6331548e72fc74bf17add777028af9bb6d6a7749ee760eab41a5bae780876de278c6f82eeec02366ce83bb160c798cb441a28dbef56f263
7
+ data.tar.gz: 798d2863752eca4a03d9ae7b21000530442b7a4af218f2e89d1590baa2e821650fcb66689e6ae88ba91b5ec742136ef46c328a7a48afb2d7048990084a12af05
checksums.yaml.gz.sig CHANGED
Binary file
@@ -83,6 +83,17 @@ module IO::Stream
83
83
  until @done
84
84
  fill_read_buffer
85
85
  end
86
+
87
+ if buffer
88
+ buffer.replace(@read_buffer)
89
+ @read_buffer.clear
90
+ else
91
+ buffer = @read_buffer
92
+ @read_buffer = StringBuffer.new
93
+ end
94
+
95
+ # Read without size always returns a non-nil value, even if it is an empty string.
96
+ return buffer
86
97
  end
87
98
 
88
99
  return consume_read_buffer(size, buffer)
@@ -4,5 +4,5 @@
4
4
  # Copyright, 2023-2024, by Samuel Williams.
5
5
 
6
6
  module IO::Stream
7
- VERSION = "0.9.0"
7
+ VERSION = "0.9.1"
8
8
  end
data/readme.md CHANGED
@@ -12,6 +12,10 @@ Please see the [project documentation](https://socketry.github.io/io-stream) for
12
12
 
13
13
  Please see the [project releases](https://socketry.github.io/io-streamreleases/index) for all releases.
14
14
 
15
+ ### v0.9.1
16
+
17
+ - Fix EOF behavior to match Ruby IO semantics: `read()` returns empty string `""` at EOF while `read(size)` returns `nil` at EOF.
18
+
15
19
  ### v0.9.0
16
20
 
17
21
  - Add support for `buffer` parameter in `read`, `read_exactly`, and `read_partial` methods to allow reading into a provided buffer.
@@ -58,10 +62,6 @@ Please see the [project releases](https://socketry.github.io/io-streamreleases/i
58
62
  - Add `#to_io` method to `IO::Stream::Buffered` for better compatibility.
59
63
  - Modernize gem structure and dependencies.
60
64
 
61
- ### v0.4.0
62
-
63
- - Add convenient `IO.Stream()` constructor method for creating buffered streams.
64
-
65
65
  ## See Also
66
66
 
67
67
  - [async-io](https://github.com/socketry/async-io) — Where this implementation originally came from.
data/releases.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Releases
2
2
 
3
+ ## v0.9.1
4
+
5
+ - Fix EOF behavior to match Ruby IO semantics: `read()` returns empty string `""` at EOF while `read(size)` returns `nil` at EOF.
6
+
3
7
  ## v0.9.0
4
8
 
5
9
  - Add support for `buffer` parameter in `read`, `read_exactly`, and `read_partial` methods to allow reading into a provided buffer.
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: io-stream
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
metadata.gz.sig CHANGED
Binary file