Sha256: 8afd0c1f8bb4652f392ee38e969bf35d5cc96754a077451ec8322a438162e16d
Contents?: true
Size: 1.44 KB
Versions: 2
Compression:
Stored size: 1.44 KB
Contents
class PageSweeper < ActionController::Caching::Sweeper observe :spud_page,:spud_menu_item def before_save(record) if record.is_a?(SpudPage) && record.url_name_was.blank? == false && record.url_name_was != record.url_name if Spud::Cms.cache_mode == :full_page expire_page cache_path_for_page(record.url_name_was) elsif Spud::Cms.cache_mode == :action expire_action cache_url_for_page(record.url_name_was) end end end def after_save(record) expire_cache_for(record) expire_page spud_cms_sitemap_path(:format => :xml) expire_page spud_sitemap_path(:format => :xml) end def after_destroy(record) expire_cache_for(record) expire_page spud_cms_sitemap_path expire_page spud_sitemap_path end private def expire_cache_for(record) if record.is_a?(SpudPage) if Spud::Cms.cache_mode == :full_page expire_page cache_path_for_page(record.url_name) elsif Spud::Cms.cache_mode == :action expire_action cache_url_for_page(record.url_name) end else Rails.cache.clear SpudPage.published_pages.all.each {|page| expire_cache_for(page)} end end def cache_path_for_page(url_name) if url_name == Spud::Cms.root_page_name root_path else page_path(:id => url_name) end end def cache_url_for_page(url_name) if url_name == Spud::Cms.root_page_name root_url else page_url(:id => url_name) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
spud_cms-0.9.21 | app/observers/page_sweeper.rb |
spud_cms-0.9.20 | app/observers/page_sweeper.rb |