lib/carrierwave/processing/mini_magick.rb in carrierwave-0.9.0 vs lib/carrierwave/processing/mini_magick.rb in carrierwave-0.10.0

- old
+ new

@@ -256,15 +256,22 @@ # [CarrierWave::ProcessingError] if manipulation failed. # def manipulate! cache_stored_file! if !cached? image = ::MiniMagick::Image.open(current_path) - image.format(@format.to_s.downcase) if @format - image = yield(image) - image.write(current_path) - ::MiniMagick::Image.open(current_path) + + begin + image.format(@format.to_s.downcase) if @format + image = yield(image) + image.write(current_path) + image.run_command("identify", current_path) + ensure + image.destroy! + end rescue ::MiniMagick::Error, ::MiniMagick::Invalid => e - raise CarrierWave::ProcessingError, I18n.translate(:"errors.messages.mini_magick_processing_error", :e => e, :default => I18n.translate(:"errors.messages.mini_magick_processing_error", :e => e, :locale => :en)) + default = I18n.translate(:"errors.messages.mini_magick_processing_error", :e => e, :locale => :en) + message = I18n.translate(:"errors.messages.mini_magick_processing_error", :e => e, :default => default) + raise CarrierWave::ProcessingError, message end end # MiniMagick end # CarrierWave