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