From 1b8bf367024857f452e9450fbb23a4935418ad54 Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Mon, 29 Dec 2008 10:17:35 -0600 Subject: [PATCH] Also Expire Caches Removing orphaned pages, or deleting a Web should also expire all associated caches. --- app/controllers/web_sweeper.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/app/controllers/web_sweeper.rb b/app/controllers/web_sweeper.rb index 817d792b..276a2128 100644 --- a/app/controllers/web_sweeper.rb +++ b/app/controllers/web_sweeper.rb @@ -4,12 +4,14 @@ class WebSweeper < ActionController::Caching::Sweeper include CacheSweepingHelper - observe Web + observe Web, Page def after_save(record) - web = record - web.pages.each { |page| expire_cached_page(web, page.name) } - expire_cached_summary_pages(web) + if record.is_a?(Web) + web = record + web.pages.each { |page| expire_cached_page(web, page.name) } + expire_cached_summary_pages(web) + end end def after_remove_orphaned_pages(web) @@ -19,5 +21,13 @@ class WebSweeper < ActionController::Caching::Sweeper def after_remove_orphaned_pages_in_category(web) expire_cached_summary_pages(web) end + + def after_destroy(record) + if record.is_a?(Web) + expire_cached_summary_pages(record) + else + expire_cached_page(record.web, record.name) + end + end end