async-http 0.40.0 → 0.40.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
- data/lib/async/http/body/hijack.rb +6 -8
- data/lib/async/http/body/stream.rb +14 -0
- data/lib/async/http/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 19652f31b1217cc8b9e93e6d633e0f4bf5fd8fbd0b2f65ad68ebefee8e5bae8e
         | 
| 4 | 
            +
              data.tar.gz: 0a0c185d0127532f1c078dd39719e705f102b5750cc5b62d206f3b535c6f30c0
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3395f5ac2df1c7b7ca1d966329726bfbed96dbcba0a5f1d17291975c83e1ac76aefd0ed8d5649dc0924688bdc933a24e23250f0fe558ae54e771a4a2c7f4767e
         | 
| 7 | 
            +
              data.tar.gz: b2edc23828a9bce9714fb86c2b12eb3dd0795dca1e573b200b52398506c1b591e44cf7364abc017765d4e939aabcc96e3d969a78d26cd796c95126a2be07a84c
         | 
| @@ -44,34 +44,32 @@ module Async | |
| 44 44 |  | 
| 45 45 | 
             
            				def call(stream)
         | 
| 46 46 | 
             
            					return @block.call(stream)
         | 
| 47 | 
            -
            				ensure
         | 
| 48 | 
            -
            					@block = nil
         | 
| 49 47 | 
             
            				end
         | 
| 50 48 |  | 
| 51 49 | 
             
            				# Has the producer called #finish and has the reader consumed the nil token?
         | 
| 52 50 | 
             
            				def empty?
         | 
| 53 | 
            -
            					@ | 
| 51 | 
            +
            					if @stream
         | 
| 52 | 
            +
            						@stream.empty?
         | 
| 53 | 
            +
            					else
         | 
| 54 | 
            +
            						false
         | 
| 55 | 
            +
            					end
         | 
| 54 56 | 
             
            				end
         | 
| 55 57 |  | 
| 56 58 | 
             
            				# Read the next available chunk.
         | 
| 57 59 | 
             
            				def read
         | 
| 58 | 
            -
            					return unless @block
         | 
| 59 | 
            -
            					
         | 
| 60 60 | 
             
            					unless @task
         | 
| 61 61 | 
             
            						@stream = Stream.new(@input)
         | 
| 62 62 |  | 
| 63 63 | 
             
            						@task = Task.current.async do
         | 
| 64 64 | 
             
            							@block.call(@stream)
         | 
| 65 65 | 
             
            						end
         | 
| 66 | 
            -
            						
         | 
| 67 | 
            -
            						@block = nil
         | 
| 68 66 | 
             
            					end
         | 
| 69 67 |  | 
| 70 68 | 
             
            					return @stream.output.read
         | 
| 71 69 | 
             
            				end
         | 
| 72 70 |  | 
| 73 71 | 
             
            				def inspect
         | 
| 74 | 
            -
            					"\#<#{self.class} #{@block}>"
         | 
| 72 | 
            +
            					"\#<#{self.class} #{@block.inspect}>"
         | 
| 75 73 | 
             
            				end
         | 
| 76 74 | 
             
            			end
         | 
| 77 75 | 
             
            		end
         | 
| @@ -31,6 +31,7 @@ module Async | |
| 31 31 |  | 
| 32 32 | 
             
            					# Will hold remaining data in `#read`.
         | 
| 33 33 | 
             
            					@buffer = nil
         | 
| 34 | 
            +
            					@closed = false
         | 
| 34 35 | 
             
            				end
         | 
| 35 36 |  | 
| 36 37 | 
             
            				attr :input
         | 
| @@ -110,9 +111,22 @@ module Async | |
| 110 111 | 
             
            					@output&.close
         | 
| 111 112 | 
             
            				end
         | 
| 112 113 |  | 
| 114 | 
            +
            				# Close the input and output bodies.
         | 
| 113 115 | 
             
            				def close
         | 
| 114 116 | 
             
            					self.close_read
         | 
| 115 117 | 
             
            					self.close_write
         | 
| 118 | 
            +
            				ensure
         | 
| 119 | 
            +
            					@closed = true
         | 
| 120 | 
            +
            				end
         | 
| 121 | 
            +
            				
         | 
| 122 | 
            +
            				# Whether the stream has been closed.
         | 
| 123 | 
            +
            				def closed?
         | 
| 124 | 
            +
            					@closed
         | 
| 125 | 
            +
            				end
         | 
| 126 | 
            +
            				
         | 
| 127 | 
            +
            				# Whether there are any output chunks remaining?
         | 
| 128 | 
            +
            				def empty?
         | 
| 129 | 
            +
            					@output.empty?
         | 
| 116 130 | 
             
            				end
         | 
| 117 131 |  | 
| 118 132 | 
             
            				private
         | 
    
        data/lib/async/http/version.rb
    CHANGED