例えば、wav ファイルを 保存したときに、別バージョンとして mp3 も保存するような場合。
version :mp3 do process :convert_mp3 # この名前が、最終的なファイル名になる。 # デフォルトで、 mp3_****.wav になっているので、リネーム def full_filename for_file super.gsub(/^mp3_/, '').gsub(/wav$/, 'mp3') end end def convert_mp3 # current_path に、オリジナルのファイルがあります。 # この関数を抜けた後に、current_path にあるファイルがコピーされて、最終的な位置に保存されます。 # 一時的な名前 out_path = current_path.gsub(/wav$/, 'mp3') system("lame -V4 #{current_path} #{out_path}") # 元ファイルは削除 File.unlink current_path # 元ファイルの位置に配置 File.rename out_path, current_path end
実際にはこれだけの記述であると、tmp ファイルが残ってしまったり、コピーが複数発生したりするので、その設定も追加する。