CarrierWave で mp3 保存時に 音の長さを保存する

Mp3Info は、パス指定でなければ利用出来ないので、
current_path によって、一時ファイルを開き直している。

class ItemDataUploader < CarrierWave::Uploader::Base
  include CarrierWave::MimeTypes

  storage :fog
  process :set_content_type
  process :check_mp3_length

  def extension_white_list
    %w(mp3)
  end

  def check_mp3_length
    Mp3Info.open(current_path) do |mp3|
      model.data_length = (mp3.length + 0.5).to_i
    end
  end

end