# File lib/bee_task_default.rb, line 989
      def zip(parameters)
        require 'zip/zip'
        params_desc = {
          :root     => { :mandatory => false, :type => :string },
          :includes => { :mandatory => true,  :type => :string_or_array },
          :excludes => { :mandatory => false, :type => :string_or_array, :default => nil },
          :dotmatch => { :mandatory => false, :type => :boolean, :default => false },
          :dest     => { :mandatory => true,  :type => :string },
          :prefix   => { :mandatory => false, :type => :string }
        }
        check_parameters(parameters, params_desc)
        root     = parameters[:root]
        includes = parameters[:includes]
        excludes = parameters[:excludes]
        dotmatch = parameters[:dotmatch]
        dest     = parameters[:dest]
        prefix   = parameters[:prefix]
        files = filter_files(includes, excludes, root, dotmatch)
        # build the archive
        puts "Building ZIP archive '#{dest}'"
        begin
          zipfile = Zip::ZipFile.open(dest, Zip::ZipFile::CREATE) do |zip|
            for file in files
              path = (root == nil ? file : File.join(root, file))
              entry = prefix ? File.join(prefix, file) : file
              puts "Adding '#{entry}'" if @build.listener.verbose
              zip.add(entry, path)
            end
            zip.close
          end
        rescue
          error "Error building ZIP archive: #{$!}"
        end
      end