instiki/app/controllers/revision_sweeper.rb

30 lines
640 B
Ruby
Raw Normal View History

require_dependency 'cache_sweeping_helper'
2006-03-19 22:49:53 +01:00
class RevisionSweeper < ActionController::Caching::Sweeper
include CacheSweepingHelper
2006-03-19 22:49:53 +01:00
observe Revision, Page
def after_save(record)
if record.is_a?(Revision)
expire_caches(record.page)
end
end
def after_delete(record)
if record.is_a?(Page)
expire_caches(record)
end
end
private
def expire_caches(page)
expire_cached_summary_pages(page.web)
pages_to_expire = ([page.name] + WikiReference.pages_that_reference(page.web, page.name)).uniq
pages_to_expire.each { |page_name| expire_cached_page(page.web, page_name) }
2006-03-19 22:49:53 +01:00
end
end