Class: Async::HTTP::Body

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

Instance Method Summary collapse

Constructor Details

#initializeBody

Returns a new instance of Body.



26
27
28
29
30
# File 'lib/async/http/body.rb', line 26

def initialize
  super
  
  @closed = false
end

Instance Method Details

#closeObject



62
63
64
# File 'lib/async/http/body.rb', line 62

def close
  self.enqueue(nil)
end

#closed?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/async/http/body.rb', line 32

def closed?
  @closed
end

#eachObject



36
37
38
39
40
41
42
43
44
# File 'lib/async/http/body.rb', line 36

def each
  return if @closed
  
  while chunk = self.dequeue
    yield chunk
  end
  
  @closed = true
end

#readObject Also known as: join



46
47
48
49
50
51
52
53
54
# File 'lib/async/http/body.rb', line 46

def read
  buffer = Async::IO::BinaryString.new
  
  self.each do |chunk|
    buffer << chunk
  end
  
  return buffer
end

#write(chunk) ⇒ Object



58
59
60
# File 'lib/async/http/body.rb', line 58

def write(chunk)
  self.enqueue(chunk)
end