Added callback that removes images files when a screenshot gets destroyed
This commit is contained in:
parent
8b9b40fdee
commit
dc17ff1e3e
2 changed files with 30 additions and 2 deletions
|
|
@ -19,7 +19,8 @@ class Screenshot < ActiveRecord::Base
|
|||
basepath = "/screenshots/unapproved/"
|
||||
end
|
||||
|
||||
File.join(basepath, self.package.name[0], self.package.name, "#{self.id}_#{size}.png")
|
||||
#File.join(basepath, self.package.name[0], self.package.name, "#{self.id}_#{size}.png")
|
||||
Rails.config.images_path.join(self.package.name[0], self.package.name, "#{self.id}_#{size}.png")
|
||||
end
|
||||
|
||||
# Return caption for full-screen screenshots.
|
||||
|
|
@ -32,4 +33,28 @@ class Screenshot < ActiveRecord::Base
|
|||
self.package.description
|
||||
end
|
||||
end
|
||||
|
||||
def image_file(size)
|
||||
# Screenshot files are at e.g.
|
||||
# .../public/screenshots/f/firefox/5871654_large.png
|
||||
Rails.configuration.images_path.join(self.package.name[0], self.package.name, "#{self.id}_#{size}.png")
|
||||
end
|
||||
|
||||
# Delete all image files related to this screenshot
|
||||
def delete_all_images
|
||||
Rails.configuration.image_sizes.each do |size,dimensions|
|
||||
image_file = self.image_file(size)
|
||||
Rails.logger.info "(before_destroy) Deleting screenshot image '#{image_file}' from disk"
|
||||
if File.exist?(image_file)
|
||||
File.delete(image_file)
|
||||
else
|
||||
Rails.logger.error "(before_destroy) File '#{image_file}' not found - could not delete it"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Callback to delete image files from disk when a screenshot record gets destroyed
|
||||
before_destroy do |screenshot|
|
||||
screenshot.delete_all_images
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue