Sha256: 84201363e92ad08611a0d4462c8a65a831528a23d88ffdc21ff5974bd1e4eb26
Contents?: true
Size: 1.97 KB
Versions: 1
Compression:
Stored size: 1.97 KB
Contents
class PageSweeper < ActionController::Caching::Sweeper observe SpudPage,SpudTemplate,SpudMenuItem def before_save(record) if record.is_a?(SpudPage) && record.changed_attributes.has_key?("url_name") if Spud::Cms.enable_full_page_caching if record.changed_attributes["url_name"] == Spud::Cms.root_page_name expire_page root_path else expire_page page_path(:id => record.changed_attributes["url_name"]) end elsif Spud::Cms.enable_action_caching if record.changed_attributes["url_name"] == Spud::Cms.root_page_name expire_action root_path else expire_action page_path(:id => record.changed_attributes["url_name"]) end 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?(SpudTemplate)) record.spud_pages.each do |page| expire_cache_for(page) end elsif record.is_a?(SpudPage) if Spud::Cms.enable_full_page_caching multisite_prefix = "" if Spud::Core.multisite_mode_enabled site_config = Spud::Core.site_config_for_id(record.site_id) multisite_prefix = "/" + site_config[:short_name].to_s.downcase end if record.url_name == Spud::Cms.root_page_name expire_page root_path else expire_page page_path(:id => record.url_name) end elsif Spud::Cms.enable_action_caching if record.url_name == Spud::Cms.root_page_name expire_action root_path else expire_action page_path(:id => record.url_name) end end else Rails.cache.clear SpudPage.site(record.spud_menu.site_id).published_pages.all.each {|page| expire_cache_for(page)} end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
spud_cms-0.8.17 | app/models/page_sweeper.rb |