class HTTPX::Transcoder::Deflater

  1. lib/httpx/transcoder/utils/deflater.rb
Superclass: Object

Methods

Public Class

  1. new

Public Instance

  1. bytesize
  2. close
  3. content_type
  4. read
  5. rewind

Attributes

Public Class methods

new(body)
[show source]
   # File lib/httpx/transcoder/utils/deflater.rb
10 def initialize(body)
11   @content_type = body.content_type
12   @body = BodyReader.new(body)
13   @closed = false
14 end

Public Instance methods

bytesize()
[show source]
   # File lib/httpx/transcoder/utils/deflater.rb
16 def bytesize
17   buffer_deflate!
18 
19   @buffer.size
20 end
close()
[show source]
   # File lib/httpx/transcoder/utils/deflater.rb
40 def close
41   return if @closed
42 
43   @buffer.close if @buffer
44 
45   @body.close
46 
47   @closed = true
48 end
read(length = nil, outbuf = nil)
[show source]
   # File lib/httpx/transcoder/utils/deflater.rb
22 def read(length = nil, outbuf = nil)
23   return @buffer.read(length, outbuf) if @buffer
24 
25   return if @closed
26 
27   chunk = @body.read(length)
28 
29   compressed_chunk = deflate(chunk)
30 
31   return unless compressed_chunk
32 
33   if outbuf
34     outbuf.replace(compressed_chunk)
35   else
36     compressed_chunk
37   end
38 end
rewind()
[show source]
   # File lib/httpx/transcoder/utils/deflater.rb
50 def rewind
51   return unless @buffer
52 
53   @buffer.rewind
54 end