Class: Badgerkit::Archive

Inherits:
Object
  • Object
show all
Defined in:
lib/badgerkit/archive.rb

Overview

Adds ability to archive directories to Badgerkit.

Examples:

Badgerkit.archive('js-doc/')

See Also:

Class Method Summary collapse

Class Method Details

.archive(directory) ⇒ File

Archives a directory.

Parameters:

  • directory (String)

    the directory to zip.

Returns:

  • (File)


21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 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