Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
cache_trasher ============ When using page caching, often you'll need to expire several pages in several locations at once. cache_trasher provides a simple method for bulk-deleting cached pages via action, controller, or direct path. Example ======= cache_trasher should be used in place of expire_page in your cache sweepers. class PageSweeper < ActionController::Caching::Sweeper observe Page def after_save(page) # deletes public/pages and public/pages.html (if it exists) # note that this uses url_for, so the documentation for url_for paths applies: # # If the controller name begins with a slash no defaults are used: # url_for :controller => '/home' # In particular, a leading slash ensures no namespace is assumed. Thus, while url_for :controller => 'users' # may resolve to Admin::UsersController if the current controller lives under that module, url_for :controller => '/users' # ensures you link to ::UsersController no matter what. trash_cache(:controller => "pages") # => may resolve to admin/pages if there happens to be a pages controller in the admin namespace # ensure no namespace when trashing the pages cache trash_cache(:controller => "/pages") # deletes public/pages/view and public/pages/view.html (if it exists) trash_cache(:controller => "pages", :action => "view") # deletes public/index.html trash_cache("index") # deletes public/bio.js trash_cache("bio", :format => :js) # deletes public/bio.js and public/bio.html trash_cache("bio", :format => [:js, :html]) # deletes your entire cache provided config.action_controller.page_cache_directory is not your public directory trashes_cache() end end Note that trash_cache will never delete your entire public directory or everything in your public directory. However, it will delete pretty much anything else you tell it to regardless of whether or not it's actually a cached file, so be careful! Copyright (c) 2008 factor[e] design initiative, released under the MIT license