async-io 1.27.4 → 1.27.5
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
- data/lib/async/io/generic.rb +4 -4
- data/lib/async/io/peer.rb +8 -0
- data/lib/async/io/stream.rb +6 -6
- data/lib/async/io/version.rb +1 -1
- data/spec/async/io/stream_spec.rb +1 -1
- data/spec/async/io/unix_endpoint_spec.rb +26 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2aa645f59a002756ee40be3c903917fb8010d91d61f1984a863481cab364644c
|
4
|
+
data.tar.gz: 8e4fc966f387cb76a7635923d4f3803a2cd91354ddf63fc4618431c97c1c89e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 297100087ebdf7a49a147b3b29f7e1b1c9cceffcf8c2a68857bb12cf10dfde34e83e5f18c53a1060f2833bb630b17ba72f5532bbd3453e953d5362c30d4eaf2c
|
7
|
+
data.tar.gz: 0dfb45ca2d1134185511c44a91bf2c02e8ded1cb7e31fc10cb71ac2de93444aa45a5dd44a5edb94f224a1b2800c1d63818ae23803a0607137de5a810486fa878
|
data/lib/async/io/generic.rb
CHANGED
@@ -105,6 +105,8 @@ module Async
|
|
105
105
|
# data = io.sysread(512)
|
106
106
|
wrap_blocking_method :sysread, :read_nonblock
|
107
107
|
|
108
|
+
alias readpartial read_nonblock
|
109
|
+
|
108
110
|
# Read `length` bytes of data from the underlying I/O. If length is unspecified, read everything.
|
109
111
|
def read(length = nil, buffer = nil)
|
110
112
|
if buffer
|
@@ -149,8 +151,6 @@ module Async
|
|
149
151
|
# io.syswrite("Hello World")
|
150
152
|
wrap_blocking_method :syswrite, :write_nonblock
|
151
153
|
|
152
|
-
alias readpartial read_nonblock
|
153
|
-
|
154
154
|
def write(buffer)
|
155
155
|
# Fast path:
|
156
156
|
written = self.syswrite(buffer)
|
@@ -211,9 +211,9 @@ module Async
|
|
211
211
|
|
212
212
|
protected
|
213
213
|
|
214
|
-
def async_send(*
|
214
|
+
def async_send(*arguments, timeout: self.timeout)
|
215
215
|
while true
|
216
|
-
result = @io.__send__(*
|
216
|
+
result = @io.__send__(*arguments, exception: false)
|
217
217
|
|
218
218
|
case result
|
219
219
|
when :wait_readable
|
data/lib/async/io/peer.rb
CHANGED
data/lib/async/io/stream.rb
CHANGED
@@ -223,13 +223,13 @@ module Async
|
|
223
223
|
|
224
224
|
# Returns true if the stream is at file which means there is no more data to be read.
|
225
225
|
def eof?
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
226
|
+
if !@read_buffer.empty?
|
227
|
+
return false
|
228
|
+
elsif @eof
|
229
|
+
return true
|
230
|
+
else
|
231
|
+
return @io.eof?
|
230
232
|
end
|
231
|
-
|
232
|
-
return @eof
|
233
233
|
end
|
234
234
|
|
235
235
|
alias eof eof?
|
data/lib/async/io/version.rb
CHANGED
@@ -163,7 +163,7 @@ RSpec.describe Async::IO::Stream do
|
|
163
163
|
io.write "Hello World"
|
164
164
|
io.seek(0)
|
165
165
|
|
166
|
-
expect(subject.io).to receive(:read_nonblock).and_call_original.
|
166
|
+
expect(subject.io).to receive(:read_nonblock).and_call_original.once
|
167
167
|
|
168
168
|
expect(subject.read_partial(4)).to be == "Hell"
|
169
169
|
expect(subject).to_not be_eof
|
@@ -21,6 +21,7 @@
|
|
21
21
|
# THE SOFTWARE.
|
22
22
|
|
23
23
|
require 'async/io/unix_endpoint'
|
24
|
+
require 'async/io/stream'
|
24
25
|
|
25
26
|
RSpec.describe Async::IO::UNIXEndpoint do
|
26
27
|
include_context Async::RSpec::Reactor
|
@@ -77,4 +78,29 @@ RSpec.describe Async::IO::UNIXEndpoint do
|
|
77
78
|
|
78
79
|
server_task.stop
|
79
80
|
end
|
81
|
+
|
82
|
+
context "using buffered stream" do
|
83
|
+
it "can use stream to read and write data" do
|
84
|
+
server_task = reactor.async do |task|
|
85
|
+
subject.accept do |peer|
|
86
|
+
stream = Async::IO::Stream.new(peer)
|
87
|
+
stream.write(stream.read)
|
88
|
+
stream.close
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
reactor.async do
|
93
|
+
subject.connect do |client|
|
94
|
+
stream = Async::IO::Stream.new(client)
|
95
|
+
|
96
|
+
stream.write(data)
|
97
|
+
stream.close_write
|
98
|
+
|
99
|
+
expect(stream.read).to be == data
|
100
|
+
end
|
101
|
+
end.wait
|
102
|
+
|
103
|
+
server_task.stop
|
104
|
+
end
|
105
|
+
end
|
80
106
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: async-io
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.27.
|
4
|
+
version: 1.27.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async
|