> @tmpdir = Dir.mktmpdir
これは自分で削除するよりもブロック付きで呼び出した方が
良いのではないでしょうか。
http://docs.ruby-lang.org/ja/2.1.0/method/Dir/s/mktmpdir.html
これは固定の文字列だから問題は起きなさそうですが、普通は
> system("zip -r download.zip download")
system("zip", "-r", "download.zip", "download")
のように配列で渡した方がシェル経由で余計な問題が発生する可能性が
減らせて良いのではないでしょうか。