Sha256: 3dc4920043ad9814a8809cdf1b0b6622f6a144f7ffda5fc27a1876400b1036f6

Contents?: true

Size: 969 Bytes

Versions: 2

Compression:

Stored size: 969 Bytes

Contents

class CmsContentSweeper < ActionController::Caching::Sweeper
  observe CmsPage, CmsTemplate, CmsSnippet
  
  def after_save(record)
    delete_all_cached_pages
  end
  
  def after_destroy(record)
    delete_all_cached_pages
  end
  
  def delete_all_cached_pages
    begin
      if File.expand_path(Management::CmsController.page_cache_directory) == File.expand_path("#{Rails.root}/public")
        # expire home page
        expire_page :controller => 'cms/content', :action => 'show', :content_path => nil
        
        # expire all other pages
        CmsPage.select([ :id, :path ]).find_each do |page|
          expire_page :controller => 'cms/content', :action => 'show', :content_path => page.path.split('/')
        end
      else
        FileUtils.rm_r(Dir.glob("#{cache_dir}/*")) rescue Errno::ENOENT
      end
    rescue Exception => e
      Rails.logger.error "Error while clearing cache: #{e.message}" unless e.is_a?(NoMethodError)
    end
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
imagine_cms-4.1.2 app/sweepers/cms_content_sweeper.rb
imagine_cms-4.1.1 app/sweepers/cms_content_sweeper.rb