code: 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
docs: Creates from json array of entries
   Params:
   +entries+:: input entries to compress
   +ignore_entries+:: entries which should be ignored