# encoding: utf-8
module FilesHelper

  def downloadAll containers
    paths = []
    files = []
    tmpfile = "tmp.zip"

    containers.each do |container|
      next if container.attachments.empty?
      if container.is_a?(Version);end
      container.attachments.each do |attachment|
        paths << attachment.diskfile
        file = attachment.diskfile
        # logger.error "[FilesHelper] downloadAll: #{e}"
        begin
          File.new(file, "r")
        rescue Exception => e
          logger.error e
          next
        end
        files << file
      # zip.add(file.path.dup.sub(directory, ''), file.path)
      end
    end

    zipfile_name = "archive.zip"
    if File.exists? File.open(zipfile_name, "w+")
      ff = File.open(zipfile_name, "w+")
      ff.close
      File.delete ff
    end 
    Zip::ZipFile.open(zipfile_name, Zip::ZipFile::CREATE) do |zipfile|
      files.each do |filename|
        directory = File.dirname filename
        # Two arguments:
        # - The name of the file as it will appear in the archive
        # - The original file, including the path to find it
        dir = filename.sub(directory+"/", '')
        zipfile.add(dir, filename)
        
      end
    end
    File.new(zipfile_name,'w+')
  end

end