Class: Omnizip::Formats::Zip::Zip64EndOfCentralDirectoryLocator
- Inherits:
-
Object
- Object
- Omnizip::Formats::Zip::Zip64EndOfCentralDirectoryLocator
- Includes:
- Constants
- Defined in:
- lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb
Overview
ZIP64 End of Central Directory Locator Points to the ZIP64 End of Central Directory Record
Constant Summary
Constants included from Constants
Constants::ATTR_ARCHIVE, Constants::ATTR_DIRECTORY, Constants::CENTRAL_DIRECTORY_SIGNATURE, Constants::COMPRESSION_BZIP2, Constants::COMPRESSION_DEFLATE, Constants::COMPRESSION_DEFLATE64, Constants::COMPRESSION_IMPLODED, Constants::COMPRESSION_LZMA, Constants::COMPRESSION_PPMD, Constants::COMPRESSION_REDUCED_1, Constants::COMPRESSION_REDUCED_2, Constants::COMPRESSION_REDUCED_3, Constants::COMPRESSION_REDUCED_4, Constants::COMPRESSION_SHRUNK, Constants::COMPRESSION_STORE, Constants::COMPRESSION_ZSTANDARD, Constants::DATA_DESCRIPTOR_SIGNATURE, Constants::END_OF_CENTRAL_DIRECTORY_SIGNATURE, Constants::FLAG_DATA_DESCRIPTOR, Constants::FLAG_ENCRYPTED, Constants::FLAG_STRONG_ENCRYPTION, Constants::FLAG_UTF8, Constants::LOCAL_FILE_HEADER_SIGNATURE, Constants::MAX_COMMENT_LENGTH, Constants::UNIX_DIR_PERMISSIONS, Constants::UNIX_EXTRA_FIELD_TAG, Constants::UNIX_FILE_PERMISSIONS, Constants::UNIX_SYMLINK_PERMISSIONS, Constants::VERSION_BZIP2, Constants::VERSION_DEFAULT, Constants::VERSION_DEFLATE, Constants::VERSION_LZMA, Constants::VERSION_MADE_BY_UNIX, Constants::VERSION_MADE_BY_WINDOWS, Constants::VERSION_ZIP64, Constants::ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIGNATURE, Constants::ZIP64_END_OF_CENTRAL_DIRECTORY_SIGNATURE, Constants::ZIP64_EXTRA_FIELD_TAG, Constants::ZIP64_LIMIT
Instance Attribute Summary collapse
-
#disk_number_with_zip64_eocd ⇒ Object
Returns the value of attribute disk_number_with_zip64_eocd.
-
#signature ⇒ Object
Returns the value of attribute signature.
-
#total_disks ⇒ Object
Returns the value of attribute total_disks.
-
#zip64_eocd_offset ⇒ Object
Returns the value of attribute zip64_eocd_offset.
Class Method Summary collapse
-
.from_binary(data) ⇒ Object
Parse from binary data.
-
.record_size ⇒ Object
Size of this record in bytes (always 20 bytes).
Instance Method Summary collapse
-
#initialize(signature: ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIGNATURE, disk_number_with_zip64_eocd: 0, zip64_eocd_offset: 0, total_disks: 1) ⇒ Zip64EndOfCentralDirectoryLocator
constructor
A new instance of Zip64EndOfCentralDirectoryLocator.
- #record_size ⇒ Object
-
#to_binary ⇒ Object
Serialize to binary format.
Constructor Details
#initialize(signature: ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIGNATURE, disk_number_with_zip64_eocd: 0, zip64_eocd_offset: 0, total_disks: 1) ⇒ Zip64EndOfCentralDirectoryLocator
Returns a new instance of Zip64EndOfCentralDirectoryLocator.
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb', line 14 def initialize( signature: ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIGNATURE, disk_number_with_zip64_eocd: 0, zip64_eocd_offset: 0, total_disks: 1 ) @signature = signature @disk_number_with_zip64_eocd = disk_number_with_zip64_eocd @zip64_eocd_offset = zip64_eocd_offset @total_disks = total_disks end |
Instance Attribute Details
#disk_number_with_zip64_eocd ⇒ Object
Returns the value of attribute disk_number_with_zip64_eocd.
11 12 13 |
# File 'lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb', line 11 def disk_number_with_zip64_eocd @disk_number_with_zip64_eocd end |
#signature ⇒ Object
Returns the value of attribute signature.
11 12 13 |
# File 'lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb', line 11 def signature @signature end |
#total_disks ⇒ Object
Returns the value of attribute total_disks.
11 12 13 |
# File 'lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb', line 11 def total_disks @total_disks end |
#zip64_eocd_offset ⇒ Object
Returns the value of attribute zip64_eocd_offset.
11 12 13 |
# File 'lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb', line 11 def zip64_eocd_offset @zip64_eocd_offset end |
Class Method Details
.from_binary(data) ⇒ Object
Parse from binary data
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb', line 37 def self.from_binary(data) signature, disk_number, offset, total_disks = data.unpack("VVQV") unless signature == ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIGNATURE raise Omnizip::FormatError, "Invalid ZIP64 EOCD Locator signature" end new( signature: signature, disk_number_with_zip64_eocd: disk_number, zip64_eocd_offset: offset, total_disks: total_disks, ) end |
.record_size ⇒ Object
Size of this record in bytes (always 20 bytes)
54 55 56 |
# File 'lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb', line 54 def self.record_size 20 end |
Instance Method Details
#record_size ⇒ Object
58 59 60 |
# File 'lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb', line 58 def record_size self.class.record_size end |
#to_binary ⇒ Object
Serialize to binary format
27 28 29 30 31 32 33 34 |
# File 'lib/omnizip/formats/zip/zip64_end_of_central_directory_locator.rb', line 27 def to_binary [ signature, disk_number_with_zip64_eocd, zip64_eocd_offset, total_disks, ].pack("VVQV") end |