12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/compression/strategy.rb', line 12
def decompress(dest_path, compressed_file_path, max_size)
sanitized_compressed_file_path = sanitize_path(compressed_file_path)
sanitized_dest_path = sanitize_path(dest_path)
get_compressed_file_stream(sanitized_compressed_file_path) do |compressed_file|
available_size = calculate_available_size(max_size)
entries_of(compressed_file).each do |entry|
entry_path = build_entry_path(sanitized_dest_path, entry, sanitized_compressed_file_path)
next if !(entry_path, sanitized_dest_path)
FileUtils.mkdir_p(File.dirname(entry_path))
if is_file?(entry)
remaining_size = (entry, entry_path, available_size)
available_size = remaining_size
else
(entry, entry_path)
end
end
decompression_results_path(sanitized_dest_path, sanitized_compressed_file_path)
end
end
|