Class: Async::HTTP::FixedBody

Inherits:
Object
  • Object
show all
Defined in:
lib/async/http/body.rb

Constant Summary collapse

CHUNK_LENGTH =
1024*1024

Instance Method Summary collapse

Constructor Details

#initialize(length, stream) ⇒ FixedBody

Returns a new instance of FixedBody.



108
109
110
111
112
# File 'lib/async/http/body.rb', line 108

def initialize(length, stream)
	@length = length
	@remaining = length
	@stream = stream
end

Instance Method Details

#closeObject



138
139
140
# File 'lib/async/http/body.rb', line 138

def close
	read
end

#closed?Boolean

Returns:

  • (Boolean)


114
115
116
# File 'lib/async/http/body.rb', line 114

def closed?
	@remaining == 0
end

#eachObject



118
119
120
121
122
123
124
125
126
# File 'lib/async/http/body.rb', line 118

def each
	while @remaining > 0
		if chunk = @stream.read(CHUNK_LENGTH)
			@remaining -= chunk.bytesize
			
			yield chunk
		end
	end
end

#readObject Also known as: join



128
129
130
131
132
133
134
# File 'lib/async/http/body.rb', line 128

def read
	buffer = @stream.read(@remaining)
	
	@remaining = 0
	
	return buffer
end