2007-01-22 14:43:50 +01:00
|
|
|
require_dependency 'cache_sweeping_helper'
|
|
|
|
|
|
|
|
class WebSweeper < ActionController::Caching::Sweeper
|
|
|
|
|
|
|
|
include CacheSweepingHelper
|
|
|
|
|
2009-01-11 05:33:30 +01:00
|
|
|
observe Web, Page, WikiFile
|
2007-01-22 14:43:50 +01:00
|
|
|
|
|
|
|
def after_save(record)
|
2008-12-29 17:17:35 +01:00
|
|
|
if record.is_a?(Web)
|
|
|
|
web = record
|
2011-06-01 21:35:18 +02:00
|
|
|
web.pages.find_each { |page| expire_cached_page(web, page.name) }
|
2008-12-29 17:17:35 +01:00
|
|
|
expire_cached_summary_pages(web)
|
2009-01-11 05:33:30 +01:00
|
|
|
elsif record.is_a?(WikiFile)
|
2009-06-03 05:17:15 +02:00
|
|
|
record.web.pages_that_link_to_file(record.file_name).each do |page|
|
2009-01-11 05:33:30 +01:00
|
|
|
expire_cached_page(record.web, page)
|
|
|
|
end
|
|
|
|
expire_cached_summary_pages(record.web)
|
2008-12-29 17:17:35 +01:00
|
|
|
end
|
2007-01-22 14:43:50 +01:00
|
|
|
end
|
2008-10-27 07:47:01 +01:00
|
|
|
|
2008-12-29 17:17:35 +01:00
|
|
|
def after_destroy(record)
|
|
|
|
if record.is_a?(Web)
|
|
|
|
expire_cached_summary_pages(record)
|
2009-01-11 05:33:30 +01:00
|
|
|
elsif record.is_a?(Page)
|
2008-12-29 17:17:35 +01:00
|
|
|
expire_cached_page(record.web, record.name)
|
2009-01-01 09:38:12 +01:00
|
|
|
expire_cached_summary_pages(record.web)
|
2009-04-01 06:37:21 +02:00
|
|
|
expire_cached_revisions(record)
|
2009-01-11 05:33:30 +01:00
|
|
|
else
|
|
|
|
expire_cached_summary_pages(record.web)
|
2008-12-29 17:17:35 +01:00
|
|
|
end
|
|
|
|
end
|
2008-12-06 23:11:47 +01:00
|
|
|
|
2007-01-22 14:43:50 +01:00
|
|
|
end
|