ZipFile.extract overwrite option

Hi

I’m trying to extract a Zipfile using the ZipFile Class.
According to the docs,
http://rubyzip.sourceforge.net/classes/Zip/ZipFile.html#M000150"
the extract method takes a third param to specify the behaviour if a
file already exists.

However if I try to use that param I get a “wrong number of arguments (3
for 2)” error.

My code:

=====================================================
require ‘fileutils’
require ‘zip/zip’
require ‘zip/zipfilesystem’

def unzip(file,destination)
Zip::ZipFile.open(file) { |zip_file|
zip_file.each { |f|
f_path=File.join(destination, f.name)
FileUtils.mkdir_p(File.dirname(f_path))
zip_file.extract(f, f_path, proc { true })
}
}
end

What am I doing wrong?

2009/10/8 Ingmar H. [email protected]:

zip_file.each { |f|
f_path=File.join(destination, f.name)
FileUtils.mkdir_p(File.dirname(f_path))
zip_file.extract(f, f_path, proc { true })
}
}
end

What am I doing wrong?

Zipfile#extract’s third argument is prefixed with &, which means it
expects to be called like so:


zip_file.extract(f, f_path) { true }


zip_file.extract(f, f_path) { true }

works like a charm!

Thanks a lot, I’ve been misguided by the only example of zip.extract
with overwrite I found here:
http://stackoverflow.com/questions/966054/how-to-overwrite-existing-files-using-rubyzip-lib

You’re my hero for the day Tom!
Thanks again

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs