Sha256: 78e80b5c5af19ba0e23dafa7eaa33a793f9e5d0ca784cfd9ea6991a528548c51
Contents?: true
Size: 1.99 KB
Versions: 1
Compression:
Stored size: 1.99 KB
Contents
class BlogSweeper < ActionController::Caching::Sweeper observe Category, Blog, User, Article, Page, Categorization, Comment, Trackback def pending_sweeps @pending_sweeps ||= Set.new end def run_pending_page_sweeps pending_sweeps.each do |each| self.send(each) end end def after_comments_create expire_for(controller.send(:instance_variable_get, :@comment)) end alias_method :after_comments_update, :after_comments_create alias_method :after_articles_comment, :after_comments_create def after_comments_destroy expire_for(controller.send(:instance_variable_get, :@comment), true) end alias_method :after_articles_nuke_comment, :after_comments_destroy def after_articles_trackback expire_for(controller.send(:instance_variable_get, :@trackback)) end def after_articles_nuke_trackback expire_for(controller.send(:instance_variable_get, :@trackback), true) end def after_save(record) expire_for(record) unless (record.is_a?(Article) and record.state == :draft) end def after_destroy(record) expire_for(record, true) end def expire_for(record, destroying = false) case record when Page pending_sweeps << :sweep_pages when Content if record.invalidates_cache?(destroying) pending_sweeps << :sweep_articles << :sweep_pages end when Category, Categorization pending_sweeps << :sweep_articles << :sweep_pages when Blog, User, Comment, Trackback pending_sweeps << :sweep_all << :sweep_theme end unless controller run_pending_page_sweeps end end def sweep_all PageCache.sweep_all end def sweep_theme PageCache.sweep_theme_cache end def sweep_articles PageCache.sweep_all end def sweep_pages PageCache.zap_pages('pages') unless Blog.default.nil? end def logger @logger ||= RAILS_DEFAULT_LOGGER || Logger.new(STDERR) end private def callback(timing) super if timing == :after run_pending_page_sweeps end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
typo-5.5 | app/models/blog_sweeper.rb |