class ActiveSupport::Cache::Entry

def compress!(compress_threshold)

def compress!(compress_threshold)
  case @value
  when nil, true, false, Numeric
    uncompressed_size = 0
  when String
    uncompressed_size = @value.bytesize
  else
    serialized = Marshal.dump(@value)
    uncompressed_size = serialized.bytesize
  end
  if uncompressed_size >= compress_threshold
    serialized ||= Marshal.dump(@value)
    compressed = Zlib::Deflate.deflate(serialized)
    if compressed.bytesize < uncompressed_size
      @value = compressed
      @compressed = true
    end
  end
end