Module: Omnizip::Formats::Rar
- Defined in:
- lib/omnizip/formats/rar.rb,
lib/omnizip/formats/rar/header.rb,
lib/omnizip/formats/rar/models.rb,
lib/omnizip/formats/rar/reader.rb,
lib/omnizip/formats/rar/writer.rb,
lib/omnizip/formats/rar/constants.rb,
lib/omnizip/formats/rar/rar5/vint.rb,
lib/omnizip/formats/rar/rar5/crc32.rb,
lib/omnizip/formats/rar/compression.rb,
lib/omnizip/formats/rar/rar5/header.rb,
lib/omnizip/formats/rar/rar5/writer.rb,
lib/omnizip/formats/rar/block_parser.rb,
lib/omnizip/formats/rar/decompressor.rb,
lib/omnizip/formats/rar/parity_handler.rb,
lib/omnizip/formats/rar/volume_manager.rb,
lib/omnizip/formats/rar/external_writer.rb,
lib/omnizip/formats/rar/rar_format_base.rb,
lib/omnizip/formats/rar/recovery_record.rb,
lib/omnizip/formats/rar/archive_repairer.rb,
lib/omnizip/formats/rar/archive_verifier.rb,
lib/omnizip/formats/rar/compression/ppmd.rb,
lib/omnizip/formats/rar/models/rar_entry.rb,
lib/omnizip/formats/rar/license_validator.rb,
lib/omnizip/formats/rar/models/rar_volume.rb,
lib/omnizip/formats/rar/models/rar_archive.rb,
lib/omnizip/formats/rar/rar5/compression/lzma.rb,
lib/omnizip/formats/rar/rar5/compression/lzss.rb,
lib/omnizip/formats/rar/compression/bit_stream.rb,
lib/omnizip/formats/rar/compression/dispatcher.rb,
lib/omnizip/formats/rar/rar5/compression/store.rb,
lib/omnizip/formats/rar/rar5/solid/solid_stream.rb,
lib/omnizip/formats/rar/compression/lz77_huffman.rb,
lib/omnizip/formats/rar/compression/ppmd/context.rb,
lib/omnizip/formats/rar/compression/ppmd/decoder.rb,
lib/omnizip/formats/rar/compression/ppmd/encoder.rb,
lib/omnizip/formats/rar/rar5/solid/solid_encoder.rb,
lib/omnizip/formats/rar/rar5/solid/solid_manager.rb,
lib/omnizip/formats/rar/rar5/models/solid_options.rb,
lib/omnizip/formats/rar/rar5/encryption/aes256_cbc.rb,
lib/omnizip/formats/rar/rar5/models/volume_options.rb,
lib/omnizip/formats/rar/compression_method_registry.rb,
lib/omnizip/formats/rar/rar5/models/recovery_options.rb,
lib/omnizip/formats/rar/rar5/encryption/key_derivation.rb,
lib/omnizip/formats/rar/rar5/models/encryption_options.rb,
lib/omnizip/formats/rar/rar5/multi_volume/volume_writer.rb,
lib/omnizip/formats/rar/compression/lz77_huffman/decoder.rb,
lib/omnizip/formats/rar/compression/lz77_huffman/encoder.rb,
lib/omnizip/formats/rar/rar5/multi_volume/volume_manager.rb,
lib/omnizip/formats/rar/rar5/encryption/encryption_header.rb,
lib/omnizip/formats/rar/rar5/multi_volume/volume_splitter.rb,
lib/omnizip/formats/rar/rar5/encryption/encryption_manager.rb,
lib/omnizip/formats/rar/compression/lz77_huffman/match_finder.rb,
lib/omnizip/formats/rar/compression/lz77_huffman/huffman_coder.rb,
lib/omnizip/formats/rar/compression/lz77_huffman/sliding_window.rb,
lib/omnizip/formats/rar/compression/lz77_huffman/huffman_builder.rb
Overview
RAR archive format support
- Formats::Rar::Reader — the primary parser, verified against real WinRAR archives: listing, directories, mtimes, and extraction (native STORE decode with stored-CRC verification; foreign compressed streams fall back to the unrar command after the CRC check rejects them)
- Formats::Rar::Writer (RAR4) and Formats::Rar::Rar5::Writer — STORE output is unrar-verified; compressed methods produce Omnizip-internal streams (see the README interop table)
- Formats::Rar3 / Formats::Rar5 — legacy interfaces, thin adapters over the primary reader and the RAR5 writer
- Multi-volume archives, encryption (RAR5), recovery records
Defined Under Namespace
Modules: Compression, Constants, Models, Rar5 Classes: ArchiveRepairer, ArchiveVerifier, BlockParser, CompressionMethodRegistry, Decompressor, ExternalWriter, Header, LicenseValidator, ParityHandler, RarFormatBase, Reader, RecoveryRecord, VolumeManager, Writer
Class Method Summary collapse
-
.available? ⇒ Boolean
Check if RAR extraction is available.
-
.create(path, options = {}) {|writer| ... } ⇒ String+
Create a RAR archive, yielding the writer for entries.
-
.decompressor_info ⇒ Hash
Get decompressor information.
-
.repair(archive_path, output_path) ⇒ ArchiveRepairer::RepairResult
Repair corrupted archive.
-
.verify(archive_path) ⇒ ArchiveVerifier::VerificationResult
Verify archive integrity.
Class Method Details
.available? ⇒ Boolean
Check if RAR extraction is available
153 154 155 |
# File 'lib/omnizip/formats/rar.rb', line 153 def available? Decompressor.available? end |
.create(path, options = {}) {|writer| ... } ⇒ String+
Create a RAR archive, yielding the writer for entries. RAR5 is the default; pass version: 4 for the RAR4 writer. RAR5-only options (solid, multi-volume, password, recovery) are ignored for RAR4 — its writer warns about the unimplemented ones and raises for passwords.
139 140 141 142 143 144 145 146 147 148 |
# File 'lib/omnizip/formats/rar.rb', line 139 def create(path, = {}) version = .fetch(:version, 5) writer = if version == 4 Writer.new(path, ) else Rar5::Writer.new(path, ()) end yield writer if block_given? writer.write end |
.decompressor_info ⇒ Hash
Get decompressor information
160 161 162 |
# File 'lib/omnizip/formats/rar.rb', line 160 def decompressor_info Decompressor.info end |
.repair(archive_path, output_path) ⇒ ArchiveRepairer::RepairResult
Repair corrupted archive
177 178 179 |
# File 'lib/omnizip/formats/rar.rb', line 177 def repair(archive_path, output_path) ArchiveRepairer.new.repair(archive_path, output_path) end |
.verify(archive_path) ⇒ ArchiveVerifier::VerificationResult
Verify archive integrity
168 169 170 |
# File 'lib/omnizip/formats/rar.rb', line 168 def verify(archive_path) ArchiveVerifier.new(archive_path).verify end |