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 Provides read-only access to RAR archives (single and multi-volume)

This module implements RAR archive format support:

  • Format signature validation (RAR4 and RAR5)
  • Archive structure parsing
  • File listing
  • File extraction (requires unrar gem or system command)
  • Multi-volume archive support

Note: RAR compression is proprietary, so this implementation is read-only and requires external decompression tools.

Defined Under Namespace

Modules: Compression, Constants, Models, Rar3, Rar5 Classes: ArchiveRepairer, ArchiveVerifier, BlockParser, CompressionMethodRegistry, Decompressor, ExternalWriter, Header, LicenseValidator, ParityHandler, RarFormatBase, Reader, RecoveryRecord, VolumeManager, Writer

Class Method Summary collapse

Class Method Details

.available?Boolean

Check if RAR extraction is available

Returns:

  • (Boolean)

    true if unrar available



137
138
139
# File 'lib/omnizip/formats/rar.rb', line 137

def available?
  Decompressor.available?
end

.decompressor_infoHash

Get decompressor information

Returns:

  • (Hash)

    Decompressor type and version



144
145
146
# File 'lib/omnizip/formats/rar.rb', line 144

def decompressor_info
  Decompressor.info
end

.register!Object

Auto-register .rar format



166
167
168
# File 'lib/omnizip/formats/rar.rb', line 166

def register!
  FormatRegistry.register(".rar", "Omnizip::Formats::Rar::Reader")
end

.repair(archive_path, output_path) ⇒ ArchiveRepairer::RepairResult

Repair corrupted archive

Parameters:

  • archive_path (String)

    Path to corrupted RAR archive

  • output_path (String)

    Path for repaired archive

Returns:



161
162
163
# File 'lib/omnizip/formats/rar.rb', line 161

def repair(archive_path, output_path)
  ArchiveRepairer.new.repair(archive_path, output_path)
end

.verify(archive_path) ⇒ ArchiveVerifier::VerificationResult

Verify archive integrity

Parameters:

  • archive_path (String)

    Path to RAR archive

Returns:



152
153
154
# File 'lib/omnizip/formats/rar.rb', line 152

def verify(archive_path)
  ArchiveVerifier.new(archive_path).verify
end