Using rubyzip to add files and nested directories to a zipoutputstream

fturtle picture fturtle · Feb 24, 2010 · Viewed 11.7k times · Source

I'm struggling with getting rubyzip to append directories to a zipoutputstream. (I want the output stream so I can send it from a rails controller). My code follows this example:

http://info.michael-simons.eu/2008/01/21/using-rubyzip-to-create-zip-files-on-the-fly/

When modified to include directories in the list of files to add I get the following error:

Any help would be greatly appreciated.

UPDATE

After trying a number of solutions I had best success with zipruby which has a clean api and good examples: http://zipruby.rubyforge.org/.

Answer

Macario picture Macario · Nov 11, 2010
Zip::ZipFile.open(path, Zip::ZipFile::CREATE) do |zip|
  songs.each do |song|
    zip.add "record/#{song.title.parameterize}.mp3", song.file.to_file.path
  end
end