Method: Rex::Text.gzip

Defined in:
lib/rex/text.rb

.gzip(str, level = 9) ⇒ String

Compresses a string using gzip

Parameters:

  • level (Fixnum) (defaults to: 9)

    Compression level, 1 (fast) to 9 (best)

  • str (String)

    The string to be compressed

Returns:

  • (String)

    The compressed version of str

Raises:



1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
# File 'lib/rex/text.rb', line 1474

def self.gzip(str, level = 9)
  raise RuntimeError, "Gzip support is not present." if (!zlib_present?)
  raise RuntimeError, "Invalid gzip compression level" if (level < 1 or level > 9)

  s = ""
  s.force_encoding('ASCII-8BIT') if s.respond_to?(:encoding)
  gz = Zlib::GzipWriter.new(StringIO.new(s, 'wb'), level)
  gz << str
  gz.close
  return s
end