class Badgerkit::Archive

Adds ability to archive directories to {Badgerkit}.

@see Badgerkit.archive @example

Badgerkit.archive('js-doc/')

Public Class Methods

archive(directory) click to toggle source

Archives a directory.

@param directory [String] the directory to zip. @return [File]

# File lib/badgerkit/archive.rb, line 21
def archive(directory)
  filename = "tmp/#{directory.split('/').last}.zip"

  File.delete(filename) rescue nil # Make sure there's not already an archive

  ## Zip the directory
  Zip::File.open(filename, Zip::File::CREATE) do |zipfile|
    Dir[File.join(directory, '**', '**')].each do |file|
      zipfile.add(file.sub(directory, ''), file)
    end
  end

  ## Return the newly archived directory
  File.new(filename)
end