class Origami::Filter::Fl

Class representing a Filter used to encode and decode data with zlib/Flate compression algorithm.

Public Instance Methods

decode(stream) click to toggle source

Decodes data using zlib/Inflate decompression method.

stream

The data to decode.

# File lib/origami/filters/flate.rb, line 51
def decode(stream)
    zlib_stream = Zlib::Inflate.new
    begin
        uncompressed = zlib_stream.inflate(stream)
    rescue Zlib::DataError => zlib_except
        uncompressed = zlib_stream.flush_next_out

        unless Origami::OPTIONS[:ignore_zlib_errors]
            raise InvalidFlateDataError.new(zlib_except.message, input_data: stream, decoded_data: uncompressed)
        end
    end

    post_prediction(uncompressed)
end
encode(stream) click to toggle source

Encodes data using zlib/Deflate compression method.

stream

The data to encode.

# File lib/origami/filters/flate.rb, line 43
def encode(stream)
    Zlib::Deflate.deflate(pre_prediction(stream), Zlib::BEST_COMPRESSION)
end