Zip/Ruby: そうだ、メモリ読み書き用のI/Fを実装しよう

open_memstream(3)を使ってメモリ読み書き用のI/Fを実装しよう、と思ったので考えてみる。

  • gcc以外はテンポラリファイル作ればいいかな?
    • テンポラリファイルってどこに作ればいいだろう?
      • Windowsでもposixでもテンポラリファイルを作るAPIがあったような気が…
      • というかlibzipで実装していたような
  • gccかどうかってどうやって判断するんだろう?
  • RubyAPIはこんな感じかなぁ?
Zip::Archive.open_buffer(buf) do |ar|
  ar.add_buffer('bar.txt', 'Zzz.. Zzz..')
end

open('foo.zip', 'w') do |f|
  f << buf
end