Module: NSWTopo::Zip

Included in:
Map
Defined in:
lib/nswtopo/zip.rb

Instance Method Summary collapse

Instance Method Details

#zip(directory, archive) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/nswtopo/zip.rb', line 3

def zip(directory, archive)
  Enumerator.new do |yielder|
    yielder << ->(dir) { OS.zip "-r", archive.expand_path, *Pathname.glob('*') }
    yielder << ->(dir) { OS.send "7z", "a", "-tzip", "-r", archive.expand_path, *Pathname.glob('*') }
    raise "no zip utility installed"
  end.each do |zip|
    Dir.chdir(directory, &zip)
    break
  rescue OS::Missing
  end
end