new
 
  new(p1 = v1, p2 = v2, p3 = v3, p4 = v4)
  public
  Creates a new deflate stream for compression. If a given argument is nil, the default value of that argument is used.
The level sets the compression level for the deflate stream between 0 (no compression) and 9 (best compression. The following constants have been defined to make code more readable:
- 
Zlib::NO_COMPRESSION = 0 
- 
Zlib::BEST_SPEED = 1 
- 
Zlib::DEFAULT_COMPRESSION = 6 
- 
Zlib::BEST_COMPRESSION = 9 
The window_bits sets the size of the history buffer and should be between 8 and 15. Larger values of this parameter result in better compression at the expense of memory usage.
The mem_level specifies how much memory should be allocated for the internal compression state. 1 uses minimum memory but is slow and reduces compression ratio while 9 uses maximum memory for optimal speed. The default value is 8. Two constants are defined:
- 
Zlib::DEF_MEM_LEVEL 
- 
Zlib::MAX_MEM_LEVEL 
The strategy sets the deflate compression strategy. The following strategies are available:
| Zlib::DEFAULT_STRATEGY | For normal data | 
| Zlib::FILTERED | For data produced by a filter or predictor | 
| Zlib::FIXED | Prevents dynamic Huffman codes | 
| Zlib::HUFFMAN_ONLY | Prevents string matching | 
| Zlib::RLE | Designed for better compression of PNG image data | 
See the constants for further description.
Examples
Basic
open "compressed.file", "w+" do |io| io << Zlib::Deflate.new.deflate(File.read("big.file")) end
Custom compression
open "compressed.file", "w+" do |compressed_io| deflate = Zlib::Deflate.new(Zlib::BEST_COMPRESSION, Zlib::MAX_WBITS, Zlib::MAX_MEM_LEVEL, Zlib::HUFFMAN_ONLY) begin open "big.file" do |big_io| until big_io.eof? do compressed_io << zd.deflate(big_io.read(16384)) end end ensure deflate.close end end
While this example will work, for best optimization review the flags for your specific time, memory usage and output space requirements.

 RSpec
RSpec Ruby on Rails
Ruby on Rails Ruby
Ruby 
   
   = private
 = private = protected
 = protected
  