protocol-rack 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63abbb92ce268dc594b9464a931bb846808788db40a11a5c5aae81b64552eb30
4
- data.tar.gz: bd369d97c603d06cce3088f6d2f785c12fb20c52cc038d31d860d107cabd301c
3
+ metadata.gz: abae8a03873e4b82fb2d64d88e0a3014a9fd8c0d9eacca1aeb419fb4651f32f8
4
+ data.tar.gz: 1d1ae6ec253f7fe688907563ed0cdd16cc2e482325344d36384cd6647b403227
5
5
  SHA512:
6
- metadata.gz: d7058394c8f576c1cbff70179dcde738d6c31036c01ef264178056281dac28195e2dc19a14c21242b22c00f8db695fd73a8836c0125e9e60c4f37010ed537c15
7
- data.tar.gz: 8c73f392e0bb354693eb2a5063f5add1d5feccf13d5155991870b9d216f59dad31ae4831b5825cd0a47871799b4433eedc36e64b01d6656cefe157eb519882d4
6
+ metadata.gz: 65c3cfc64676c05b7c7c380a89d4c1f6ab3fa196899877651a574437c6587dab36c75c46f3a1031afb6e13a2e5bedc3cbbf7d39111bbf873b7875bec0ef43a81
7
+ data.tar.gz: b8f67ded7fc90df8893e98873f3300ba9e2af062d368917216e6f13447e41737c2ed0ae339557932cdf73008df64c4ad5a6a2423af9655bdb96921bb29d06f6d
checksums.yaml.gz.sig CHANGED
Binary file
@@ -22,22 +22,38 @@ module Protocol
22
22
  class Output
23
23
  def initialize(input, block)
24
24
  stream = ::Protocol::HTTP::Body::Stream.new(input, self)
25
- @fiber = Fiber.new do
25
+
26
+ @from = nil
27
+
28
+ @fiber = Fiber.new do |from|
29
+ @from = from
26
30
  block.call(stream)
27
31
  @fiber = nil
28
32
  end
29
33
  end
30
34
 
31
35
  def write(chunk)
32
- Fiber.yield(chunk)
36
+ if from = @from
37
+ @from = nil
38
+ @from = from.transfer(chunk)
39
+ else
40
+ raise RuntimeError, "Stream is not being read!"
41
+ end
33
42
  end
34
43
 
35
44
  def close
36
45
  @fiber = nil
46
+
47
+ if from = @from
48
+ @from = nil
49
+ from.transfer(nil)
50
+ end
37
51
  end
38
52
 
39
53
  def read
40
- @fiber&.resume
54
+ raise RuntimeError, "Stream is already being read!" if @from
55
+
56
+ @fiber&.transfer(Fiber.current)
41
57
  end
42
58
  end
43
59
 
@@ -30,8 +30,6 @@ module Protocol
30
30
 
31
31
  include Protocol::HTTP::Body::Stream::Reader
32
32
 
33
- alias gets read_partial
34
-
35
33
  # Enumerate chunks of the request body.
36
34
  # @yields {|chunk| ...}
37
35
  # @parameter chunk [String]
@@ -5,6 +5,6 @@
5
5
 
6
6
  module Protocol
7
7
  module Rack
8
- VERSION = "0.6.0"
8
+ VERSION = "0.7.0"
9
9
  end
10
10
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protocol-rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
@@ -38,7 +38,7 @@ cert_chain:
38
38
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
39
39
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
40
40
  -----END CERTIFICATE-----
41
- date: 2024-06-14 00:00:00.000000000 Z
41
+ date: 2024-09-02 00:00:00.000000000 Z
42
42
  dependencies:
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: protocol-http
@@ -46,14 +46,14 @@ dependencies:
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '0.23'
49
+ version: '0.27'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '0.23'
56
+ version: '0.27'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: rack
59
59
  requirement: !ruby/object:Gem::Requirement
@@ -112,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
112
  - !ruby/object:Gem::Version
113
113
  version: '0'
114
114
  requirements: []
115
- rubygems_version: 3.5.9
115
+ rubygems_version: 3.5.11
116
116
  signing_key:
117
117
  specification_version: 4
118
118
  summary: An implementation of the Rack protocol/specification.
metadata.gz.sig CHANGED
Binary file