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