lib/zipper.rb
def create_zip(entries, ignore_entries)
            compress(entries.map { |x|
                if x.is_a? String
                    get_entries(x, nil, ignore_entries)
                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| f.is_a?(ZipEntry) || filter_entries(f.name, FileEntryType::FILE, ignore_entries) }.uniq{ |f| f.name })
        end
def create_zip(entries, ignore_entries)
            compress(entries.map { |x|
                if x.is_a? String
                    get_entries(x, nil, ignore_entries)
                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| f.is_a?(ZipEntry) || filter_entries(f.name, FileEntryType::FILE, ignore_entries) }.uniq{ |f| f.name })
        end
Creates from json array of entries
 Params:
 +entries+:: input entries to compress
 +ignore_entries+:: entries which should be ignored