Class: Omnizip::Formats::Rar3::Compressor
- Inherits:
-
Omnizip::Formats::Rar::RarFormatBase
- Object
- Omnizip::Formats::Rar::RarFormatBase
- Omnizip::Formats::Rar3::Compressor
- Defined in:
- lib/omnizip/formats/rar3/compressor.rb
Overview
RAR v3 compressor
Compresses data using RAR v3 compression algorithms. This implementation uses DEFLATE as a compatible fallback for demonstration purposes. Full RAR compression requires proprietary algorithms.
Instance Attribute Summary
Attributes inherited from Omnizip::Formats::Rar::RarFormatBase
Instance Method Summary collapse
-
#compress(data, method: :normal, **_options) ⇒ String
Compress data using RAR v3 methods.
-
#initialize ⇒ Compressor
constructor
Initialize a RAR v3 compressor.
Methods inherited from Omnizip::Formats::Rar::RarFormatBase
#block_type_code, #block_type_name, #compression_method_code, #compression_method_name, #decompress, #dictionary_size_code, #encryption_algorithm, #read_archive, #supports_feature?, #verify_magic_bytes, #write_archive
Constructor Details
#initialize ⇒ Compressor
Initialize a RAR v3 compressor
20 21 22 |
# File 'lib/omnizip/formats/rar3/compressor.rb', line 20 def initialize super("rar3") end |
Instance Method Details
#compress(data, method: :normal, **_options) ⇒ String
Compress data using RAR v3 methods
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/omnizip/formats/rar3/compressor.rb', line 30 def compress(data, method: :normal, **) case method when :store compress_store(data) when :fastest compress_deflate(data, level: Zlib::BEST_SPEED) when :fast compress_deflate(data, level: 3) when :normal compress_deflate(data, level: Zlib::DEFAULT_COMPRESSION) when :good compress_deflate(data, level: 7) when :best compress_deflate(data, level: Zlib::BEST_COMPRESSION) else raise FormatError, "Unsupported compression method: #{method}" end end |