Sha256: 627174efb81d7d3fe50c50a77fdc019eb9cd6b49d0646e5de4b34e466c9234b3
Contents?: true
Size: 1.06 KB
Versions: 2
Compression:
Stored size: 1.06 KB
Contents
require 'zip/zipfilesystem' module CFoundry module Zip PACK_EXCLUSION_GLOBS = ['..', '.', '*~', '#*#', '*.log'] module_function def entry_lines(file) entries = [] ::Zip::ZipFile.foreach(file) do |zentry| entries << zentry end entries end def unpack(file, dest) ::Zip::ZipFile.foreach(file) do |zentry| epath = "#{dest}/#{zentry}" dirname = File.dirname(epath) FileUtils.mkdir_p(dirname) unless File.exists?(dirname) zentry.extract(epath) unless File.exists?(epath) end end def files_to_pack(dir) Dir.glob("#{dir}/**/*", File::FNM_DOTMATCH).select do |f| File.exists?(f) && PACK_EXCLUSION_GLOBS.none? do |e| File.fnmatch(e, File.basename(f)) end end end def pack(dir, zipfile) files = files_to_pack(dir) return false if files.empty? ::Zip::ZipFile.open(zipfile, true) do |zf| files.each do |f| zf.add(f.sub("#{dir}/",''), f) end end true end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
cfoundry-0.2.0 | lib/cfoundry/zip.rb |
cfoundry-0.1.2 | lib/cfoundry/zip.rb |