Sha256: 98fc01f81c3e2aa2eff0e2940798564dc1057d00cbae5a9fd7ba712881641243

Contents?: true

Size: 696 Bytes

Versions: 11

Compression:

Stored size: 696 Bytes

Contents

# typed: true

require 'stringio'
require 'zlib'

module Datadog
  module Core
    module Utils
      # Common database-related utility functions.
      module Compression
        module_function

        def gzip(string, level: nil, strategy: nil)
          sio = StringIO.new
          sio.binmode
          gz = Zlib::GzipWriter.new(sio, level, strategy)
          gz.write(string)
          gz.close
          sio.string
        end

        def gunzip(string, encoding = ::Encoding::ASCII_8BIT)
          sio = StringIO.new(string)
          gz = Zlib::GzipReader.new(sio, encoding: encoding)
          gz.read
        ensure
          gz && gz.close
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
ddtrace-1.5.2 lib/datadog/core/utils/compression.rb
ddtrace-1.5.1 lib/datadog/core/utils/compression.rb
ddtrace-1.5.0 lib/datadog/core/utils/compression.rb
ddtrace-1.4.2 lib/datadog/core/utils/compression.rb
ddtrace-1.4.1 lib/datadog/core/utils/compression.rb
ddtrace-1.4.0 lib/datadog/core/utils/compression.rb
ddtrace-1.3.0 lib/datadog/core/utils/compression.rb
ddtrace-1.2.0 lib/datadog/core/utils/compression.rb
ddtrace-1.1.0 lib/datadog/core/utils/compression.rb
ddtrace-1.0.0 lib/datadog/core/utils/compression.rb
ddtrace-1.0.0.beta2 lib/datadog/core/utils/compression.rb