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