RubyでZipを作成する方法はざっと調べた限りziprubyとrubyzipあたりが使われているっぽい。とりあえずziprubyをチョイスして、ディレクトリを含めた圧縮を実装。
def make_zip(target, zippath)
Zip::Archive.open(zippath, Zip::CREATE) do |ar|
if File.directory?(target)
target = (target + "/").sub("//", "/")
Dir::chdir(target) do
Dir.glob("**/*") do |file|
if File.directory?(file)
ar.add_dir(target+file)
else
ar.add_file(target+file, file)
end
end
end
else
ar.add_file(target)
end
end
end
なんか冗長なような気もする。。。