lib/zipper.rb in zipbundler-0.2.0 vs lib/zipper.rb in zipbundler-0.2.1

- old
+ new

@@ -1,10 +1,11 @@ require "zipper/version" require "zipper/fileEntryType" require "zipper/fileEntry" require "zipper/zipEntry" require "zipper/JsonConfigKey" +require "zipper/cli" require "zip" module Zipper class ZipFileGenerator # Initialize with the json config. @@ -43,11 +44,11 @@ # +entry_path+:: path with which the entry should be put into zip def get_entries(directory_or_file, entry_path, ignore_entries) if File.directory? directory_or_file get_dir_entries_recursively(directory_or_file, entry_path, ignore_entries) else - FileEntry.new(directory_or_file, FileEntryType::FILE, false, entry_path) + FileEntry.new(directory_or_file, false, entry_path) end end # Collects all files from directory recursively # Params: @@ -59,24 +60,24 @@ (Dir.entries(dir) - %w(. ..)).map { |v| File.join(dir, v) }.select { |path| filter_entries path, FileEntryType::FILE, ignore_entries }.map { |path| if File.directory? path get_dir_entries_recursively(path, entry_path, ignore_entries, replace_path) else entry_path_in_zip = (entry_path.nil? ? path : path.sub(replace_path, entry_path)).gsub(/^[\/\\]+/, "") - FileEntry.new(path, FileEntryType::FILE, false, entry_path_in_zip) + FileEntry.new(path, false, entry_path_in_zip) end } end # Creates zip file in memory from passed +FileEntry+ array, returns StringIO as result # Params: # +entries+:: array of +FileEntry+ and +ZipEntry+ objects def compress(entries) puts "\nadding the following entries into zip package" - puts "#{ entries.map{ |x| x.name + ", " + x.path.to_s + ", " + x.type.to_s }.join("\n")}" + puts "#{ entries.map{ |x| x.name }.join("\n")}" buffer = Zip::File.add_buffer do |zio| entries.each do |file| - if file.is_a FileEntry + if file.is_a? FileEntry zio.add(file.path == nil ? file.name : file.path, file.name) else zio.get_output_stream(file.name) { |os| os.write file.buffer.string } end end @@ -94,9 +95,9 @@ elsif x[JsonConfigKey::Type].nil? || x[JsonConfigKey::Type].casecmp(FileEntryType::FILE) == 0 get_entries(x[JsonConfigKey::Name], x[JsonConfigKey::Path], ignore_entries) elsif x[JsonConfigKey::Type].casecmp(FileEntryType::ZIP) == 0 ZipEntry.new(x[JsonConfigKey::Name], create_zip(x[JsonConfigKey::Entries], x[JsonConfigKey::IgnoreEntries])) end - }.flatten.select{ |f| filter_entries(f.name, f.type, ignore_entries) }.uniq{ |f| f.name }) + }.flatten.select{ |f| f.is_a?(ZipEntry) || filter_entries(f.name, FileEntryType::FILE, ignore_entries) }.uniq{ |f| f.name }) end end end