Class: Omnizip::Formats::Rar3::Decompressor
- Inherits:
-
Omnizip::Formats::Rar::RarFormatBase
- Object
- Omnizip::Formats::Rar::RarFormatBase
- Omnizip::Formats::Rar3::Decompressor
- Defined in:
- lib/omnizip/formats/rar3/decompressor.rb
Overview
RAR v3 decompressor
Decompresses data using RAR v3 decompression algorithms. This implementation uses DEFLATE as a compatible fallback for demonstration purposes. Full RAR decompression requires proprietary algorithms.
Instance Attribute Summary
Attributes inherited from Omnizip::Formats::Rar::RarFormatBase
Instance Method Summary collapse
-
#decompress(data, method: :normal, **_options) ⇒ String
Decompress data using RAR v3 methods.
-
#initialize ⇒ Decompressor
constructor
Initialize a RAR v3 decompressor.
Methods inherited from Omnizip::Formats::Rar::RarFormatBase
#block_type_code, #block_type_name, #compress, #compression_method_code, #compression_method_name, #dictionary_size_code, #encryption_algorithm, #read_archive, #supports_feature?, #verify_magic_bytes, #write_archive
Constructor Details
#initialize ⇒ Decompressor
Initialize a RAR v3 decompressor
20 21 22 |
# File 'lib/omnizip/formats/rar3/decompressor.rb', line 20 def initialize super("rar3") end |
Instance Method Details
#decompress(data, method: :normal, **_options) ⇒ String
Decompress data using RAR v3 methods
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/omnizip/formats/rar3/decompressor.rb', line 30 def decompress(data, method: :normal, **) case method when :store decompress_store(data) when :fastest, :fast, :normal, :good, :best decompress_deflate(data) else raise FormatError, "Unsupported decompression method: #{method}" end end |