module Fluent::Plugin::Buffer::Chunk::Decompressable
Public Instance Methods
append(data, **kwargs)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/buffer/chunk.rb, line 169 def append(data, **kwargs) if kwargs[:compress] == :gzip io = StringIO.new Zlib::GzipWriter.wrap(io) do |gz| data.each do |d| gz.write d end end concat(io.string, data.size) else super end end
open(**kwargs) { |output_io| ... }
click to toggle source
Calls superclass method
# File lib/fluent/plugin/buffer/chunk.rb, line 183 def open(**kwargs, &block) if kwargs[:compressed] == :gzip super else super(kwargs) do |chunk_io| output_io = if chunk_io.is_a?(StringIO) StringIO.new else Tempfile.new('decompressed-data') end decompress(input_io: chunk_io, output_io: output_io) output_io.seek(0, IO::SEEK_SET) yield output_io end end end
read(**kwargs)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/buffer/chunk.rb, line 200 def read(**kwargs) if kwargs[:compressed] == :gzip super else decompress(super) end end
write_to(io, **kwargs)
click to toggle source
# File lib/fluent/plugin/buffer/chunk.rb, line 208 def write_to(io, **kwargs) open(compressed: :gzip) do |chunk_io| if kwargs[:compressed] == :gzip IO.copy_stream(chunk_io, io) else decompress(input_io: chunk_io, output_io: io) end end end