io-stream 0.11.0 → 0.11.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/io/stream/generic.rb +8 -0
- data/lib/io/stream/readable.rb +25 -0
- data/lib/io/stream/version.rb +1 -1
- data/lib/io/stream/writable.rb +14 -0
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: aa0f71cc4addc72776d1dbc02c14d0edb79fc0ae250aebb7f0d4924f6b251701
|
|
4
|
+
data.tar.gz: b5f6ec1328debef8a9b9f9d8593f8a929504e5f0cc170cb780fec41a75ac38f2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bd297845e8fdcabd8879baa92e46908129d585a378bf982a1e6f051d67748d216aa7435cbd391bebf2ae364838893c372666a1c10d5de36fcef4e91884377cd1
|
|
7
|
+
data.tar.gz: 857c75d7a920b8f4b6dbcda4746ae41e059eb936cda6f1ea347191843996e00af4a87d4f6e04b0be219c1b4199f59d9ccb3b1114a15619f131186aba68b833e5
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/lib/io/stream/generic.rb
CHANGED
|
@@ -18,6 +18,14 @@ module IO::Stream
|
|
|
18
18
|
include Readable
|
|
19
19
|
include Writable
|
|
20
20
|
|
|
21
|
+
# Check if a method is async-safe.
|
|
22
|
+
#
|
|
23
|
+
# @parameter method [Symbol] The method name to check.
|
|
24
|
+
# @returns [Symbol | Boolean] The concurrency guard for the given method.
|
|
25
|
+
def self.async_safe?(method)
|
|
26
|
+
Readable.async_safe?(method) || Writable.async_safe?(method)
|
|
27
|
+
end
|
|
28
|
+
|
|
21
29
|
# Initialize a new generic stream.
|
|
22
30
|
# @parameter options [Hash] Options passed to included modules.
|
|
23
31
|
def initialize(**options)
|
data/lib/io/stream/readable.rb
CHANGED
|
@@ -25,6 +25,31 @@ module IO::Stream
|
|
|
25
25
|
#
|
|
26
26
|
# You must implement the `sysread` method to read data from the underlying IO.
|
|
27
27
|
module Readable
|
|
28
|
+
ASYNC_SAFE = {
|
|
29
|
+
read: :readable,
|
|
30
|
+
read_partial: :readable,
|
|
31
|
+
read_exactly: :readable,
|
|
32
|
+
read_until: :readable,
|
|
33
|
+
peek: :readable,
|
|
34
|
+
gets: :readable,
|
|
35
|
+
getc: :readable,
|
|
36
|
+
getbyte: :readable,
|
|
37
|
+
readline: :readable,
|
|
38
|
+
readlines: :readable,
|
|
39
|
+
readable?: :readable,
|
|
40
|
+
fill_read_buffer: :readable,
|
|
41
|
+
eof?: :readable,
|
|
42
|
+
finished?: :readable,
|
|
43
|
+
}.freeze
|
|
44
|
+
|
|
45
|
+
# Check if a method is async-safe.
|
|
46
|
+
#
|
|
47
|
+
# @parameter method [Symbol] The method name to check.
|
|
48
|
+
# @returns [Symbol | Boolean] The concurrency guard for the given method.
|
|
49
|
+
def self.async_safe?(method)
|
|
50
|
+
ASYNC_SAFE.fetch(method, false)
|
|
51
|
+
end
|
|
52
|
+
|
|
28
53
|
# Initialize readable stream functionality.
|
|
29
54
|
# @parameter minimum_read_size [Integer] The minimum size for read operations.
|
|
30
55
|
# @parameter maximum_read_size [Integer] The maximum size for read operations.
|
data/lib/io/stream/version.rb
CHANGED
data/lib/io/stream/writable.rb
CHANGED
|
@@ -13,6 +13,20 @@ module IO::Stream
|
|
|
13
13
|
#
|
|
14
14
|
# You must implement the `syswrite` method to write data to the underlying IO.
|
|
15
15
|
module Writable
|
|
16
|
+
ASYNC_SAFE = {
|
|
17
|
+
write: true,
|
|
18
|
+
puts: true,
|
|
19
|
+
flush: true,
|
|
20
|
+
}.freeze
|
|
21
|
+
|
|
22
|
+
# Check if a method is async-safe.
|
|
23
|
+
#
|
|
24
|
+
# @parameter method [Symbol] The method name to check.
|
|
25
|
+
# @returns [Symbol | Boolean] The concurrency guard for the given method.
|
|
26
|
+
def self.async_safe?(method)
|
|
27
|
+
ASYNC_SAFE.fetch(method, false)
|
|
28
|
+
end
|
|
29
|
+
|
|
16
30
|
# Initialize writable stream functionality.
|
|
17
31
|
# @parameter minimum_write_size [Integer] The minimum buffer size before flushing.
|
|
18
32
|
def initialize(minimum_write_size: MINIMUM_WRITE_SIZE, **, &block)
|
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.11.
|
|
4
|
+
version: 0.11.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Samuel Williams
|
|
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
76
76
|
- !ruby/object:Gem::Version
|
|
77
77
|
version: '0'
|
|
78
78
|
requirements: []
|
|
79
|
-
rubygems_version: 3.
|
|
79
|
+
rubygems_version: 3.6.9
|
|
80
80
|
specification_version: 4
|
|
81
81
|
summary: Provides a generic stream wrapper for IO instances.
|
|
82
82
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|