Sha256: 98e0d28d38400220fa0391dc11be67adb5ab7d98cee63307e153cb69146d2209
Contents?: true
Size: 1.27 KB
Versions: 6
Compression:
Stored size: 1.27 KB
Contents
class SpudBannerSweeper < ActionController::Caching::Sweeper observe :spud_banner, :spud_banner_set def before_save(record) if record.is_a?(SpudBannerSet) @old_name = record.name end end def after_save(record) if record.is_a?(SpudBanner) expire_cache_for(record.owner) else expire_cache_for(record) end end def after_destroy(record) if record.is_a?(SpudBanner) expire_cache_for(record.owner) else expire_cache_for(record) end end private def expire_cache_for(record) # lazy full page cache clear cache_path = ActionController::Base.page_cache_directory if cache_path != Rails.root && cache_path != Rails.public_path && File.directory?(cache_path) FileUtils.rm_rf(cache_path) end # reprocess cached liquid tags if defined?(Spud::Cms) values = [record.set_name] values << @old_name if !@old_name.blank? SpudPageLiquidTag.where(:tag_name => "banner_set",:value => values).includes(:attachment).each do |tag| partial = tag.attachment partial.postprocess_content partial.save page = partial.try(:spud_page) if page.blank? == false page.updated_at = Time.now.utc page.save end end end end end
Version data entries
6 entries across 6 versions & 2 rubygems