#!/usr/bin/ruby require 'zlib' data = ARGF.read # Try uncompressed base64 encode. encoded = 'print"' + [data].pack("m").gsub("\n", "") + '".unpack("m")[0]' # Try various compression levels, and replace the base64 encoded version # if any of these came out smaller. for i in 0..9 do compressed = 'require"zlib";print(Zlib::Inflate.inflate"' + [Zlib::Deflate.deflate(data, i)].pack("m").gsub("\n", "") + '".unpack("m")[0])' if encoded.length > compressed.length encoded = compressed end end print encoded, "\n"