Class: EventMachine::HttpDecoders::GZip

Inherits:
Base
  • Object
show all
Defined in:
lib/em-http/decoders.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#<<, #finalize!, #initialize

Constructor Details

This class inherits a constructor from EventMachine::HttpDecoders::Base

Class Method Details

.encoding_namesObject



218
219
220
# File 'lib/em-http/decoders.rb', line 218

def self.encoding_names
  %w(gzip compressed)
end

Instance Method Details

#decompress(compressed) ⇒ Object



222
223
224
225
226
227
228
229
230
231
232
# File 'lib/em-http/decoders.rb', line 222

def decompress(compressed)
  @header ||= GZipHeader.new
  if !@header.finished?
    compressed = @header.extract_stream(compressed)
  end

  @zstream ||= Zlib::Inflate.new(-Zlib::MAX_WBITS)
  @zstream.inflate(compressed)
rescue Zlib::Error
  raise DecoderError
end

#finalizeObject



234
235
236
237
238
239
240
241
242
243
244
245
246
# File 'lib/em-http/decoders.rb', line 234

def finalize
  if @zstream
    if !@zstream.finished?
      r = @zstream.finish
    end
    @zstream.close
    r
  else
    nil
  end
rescue Zlib::Error
  raise DecoderError
end