lib/tasks/assets.rake
module Slices
module Tasks
def self.remove_all_unused_styles
Asset.all.each do |asset|
remove_unused_styles(asset)
end
end
def self.remove_unused_styles(asset)
asset.remove_attribute :dimensions
used_styles = asset.file_dimensions.symbolize_keys.keys << :original
styles_to_clear = asset.file.styles.keys - used_styles
asset.file.clear(*styles_to_clear)
asset.save
end
end
end
namespace :slices do
namespace :assets do
desc "Mark assets for reprocessing"
task reprocess: :environment do
Asset.update_all(file_dimensions: {})
end
desc "Remove unused asset styles"
task remove_unused_styles: :environment do
Slices::Tasks.remove_all_unused_styles
end
end
end