class ZipTricks::Streamer::Entry
Is used internally by Streamer to keep track of entries in the archive during writing. Normally you will not have to use this class directly
Public Class Methods
new(*)
click to toggle source
Calls superclass method
# File lib/zip_tricks/streamer/entry.rb, line 8 def initialize(*) super filename.force_encoding(Encoding::UTF_8) @requires_efs_flag = !(begin filename.encode(Encoding::ASCII) rescue false end) end
Public Instance Methods
gp_flags()
click to toggle source
Set the general purpose flags for the entry. We care about is the EFS bit (bit 11) which should be set if the filename is UTF8. If it is, we need to set the bit so that the unarchiving application knows that the filename in the archive is UTF-8 encoded, and not some DOS default. For ASCII entries it does not matter. Additionally, we care about bit 3 which toggles the use of the postfix data descriptor.
# File lib/zip_tricks/streamer/entry.rb, line 27 def gp_flags flag = 0b00000000000 flag |= 0b100000000000 if @requires_efs_flag # bit 11 flag |= 0x0008 if use_data_descriptor # bit 3 flag end
total_bytes_used()
click to toggle source
# File lib/zip_tricks/streamer/entry.rb, line 18 def total_bytes_used bytes_used_for_local_header + compressed_size + bytes_used_for_data_descriptor end