class HTTPX::StreamResponse

  1. lib/httpx/plugins/stream.rb
Superclass: Object

Methods

Public Class

  1. new

Public Instance

  1. each
  2. each_line
  3. inspect
  4. on_chunk
  5. to_s

Public Class methods

new(request, session)
[show source]
  # File lib/httpx/plugins/stream.rb
5 def initialize(request, session)
6   @request = request
7   @session = session
8   @response = nil
9 end

Public Instance methods

each(&block)
[show source]
   # File lib/httpx/plugins/stream.rb
11 def each(&block)
12   return enum_for(__method__) unless block
13 
14   @request.stream = self
15 
16   begin
17     @on_chunk = block
18 
19     response.raise_for_status
20   ensure
21     response.close if @response
22     @on_chunk = nil
23   end
24 end
each_line()
[show source]
   # File lib/httpx/plugins/stream.rb
26 def each_line
27   return enum_for(__method__) unless block_given?
28 
29   line = "".b
30 
31   each do |chunk|
32     line << chunk
33 
34     while (idx = line.index("\n"))
35       yield line.byteslice(0..idx - 1)
36 
37       line = line.byteslice(idx + 1..-1)
38     end
39   end
40 
41   yield line unless line.empty?
42 end
inspect()

:nocov:

[show source]
   # File lib/httpx/plugins/stream.rb
52 def inspect
53   "#<StreamResponse:#{object_id}>"
54 end
on_chunk(chunk)

This is a ghost method. It’s to be used ONLY internally, when processing streams

[show source]
   # File lib/httpx/plugins/stream.rb
45 def on_chunk(chunk)
46   raise NoMethodError unless @on_chunk
47 
48   @on_chunk.call(chunk)
49 end
to_s()

:nocov:

[show source]
   # File lib/httpx/plugins/stream.rb
57 def to_s
58   response.to_s
59 end