Class: Omnizip::Formats::Rar5::Writer
- Inherits:
-
Omnizip::Formats::Rar::RarFormatBase
- Object
- Omnizip::Formats::Rar::RarFormatBase
- Omnizip::Formats::Rar5::Writer
- Defined in:
- lib/omnizip/formats/rar5/writer.rb
Overview
RAR v5 archive writer
Writes RAR 5.x format archives, creating headers and compressing file data according to the RAR v5 specification.
RAR 5 uses variable-length integers and improved header structure.
Instance Attribute Summary
Attributes inherited from Omnizip::Formats::Rar::RarFormatBase
Instance Method Summary collapse
-
#initialize ⇒ Writer
constructor
Initialize a RAR v5 writer.
-
#write_archive(io, entries) ⇒ void
Write a RAR v5 archive.
Methods inherited from Omnizip::Formats::Rar::RarFormatBase
#block_type_code, #block_type_name, #compress, #compression_method_code, #compression_method_name, #decompress, #dictionary_size_code, #encryption_algorithm, #read_archive, #supports_feature?, #verify_magic_bytes
Constructor Details
#initialize ⇒ Writer
Initialize a RAR v5 writer
31 32 33 34 |
# File 'lib/omnizip/formats/rar5/writer.rb', line 31 def initialize super("rar5") @compressor = Compressor.new end |
Instance Method Details
#write_archive(io, entries) ⇒ void
This method returns an undefined value.
Write a RAR v5 archive
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/omnizip/formats/rar5/writer.rb', line 41 def write_archive(io, entries) # Write magic bytes io.write(spec.magic_bytes.pack("C*")) # Write main header write_main_header(io) # Write file entries entries.each do |entry| write_file_entry(io, entry) end # Write end marker write_end_marker(io) end |