Method: Fluent::Plugin::Buffer::Chunk::Decompressable#open

Defined in:
lib/fluent/plugin/buffer/chunk.rb

#open(**kwargs, &block) ⇒ Object



201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# File 'lib/fluent/plugin/buffer/chunk.rb', line 201

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
      output_io.binmode if output_io.is_a?(Tempfile)
      decompress(input_io: chunk_io, output_io: output_io)
      output_io.seek(0, IO::SEEK_SET)
      yield output_io
    end
  end
end