document.write('<link rel="stylesheet" href="http://gist.github.com/stylesheets/gist/embed.css"/>')





document.write('<div id=\"gist-173503\" class=\"gist\">\n  \n  \n    \n            \n\n      <div class=\"gist-file\">\n        <div class=\"gist-data gist-syntax\">\n          \n          \n          \n            <div class=\"gist-highlight\"><pre><div class=\"line\" id=\"LC1\"><span class=\"k\">class<\/span> <span class=\"nc\">PageSweeper<\/span> <span class=\"o\">&lt;<\/span> <span class=\"no\">ActionController<\/span><span class=\"o\">::<\/span><span class=\"no\">Caching<\/span><span class=\"o\">::<\/span><span class=\"no\">Sweeper<\/span><\/div><div class=\"line\" id=\"LC2\">&nbsp;&nbsp;<span class=\"n\">observe<\/span> <span class=\"no\">Page<\/span><\/div><div class=\"line\" id=\"LC3\">&nbsp;<\/div><div class=\"line\" id=\"LC4\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nf\">after_save<\/span><span class=\"p\">(<\/span><span class=\"n\">page<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC5\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">clear_page_cache<\/span><\/div><div class=\"line\" id=\"LC6\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC7\">&nbsp;<\/div><div class=\"line\" id=\"LC8\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nf\">after_destroy<\/span><span class=\"p\">(<\/span><span class=\"n\">page<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC9\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">clear_page_cache<\/span><\/div><div class=\"line\" id=\"LC10\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC11\">&nbsp;<\/div><div class=\"line\" id=\"LC12\">&nbsp;&nbsp;<span class=\"k\">def<\/span> <span class=\"nf\">clear_page_cache<\/span><\/div><div class=\"line\" id=\"LC13\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">expire_page<\/span><span class=\"p\">(<\/span><span class=\"s1\">&#39;/index&#39;<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC14\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">dirs<\/span> <span class=\"o\">=<\/span> <span class=\"sx\">%w{ pages news }<\/span><\/div><div class=\"line\" id=\"LC15\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">dirs<\/span><span class=\"o\">.<\/span><span class=\"n\">each<\/span> <span class=\"k\">do<\/span> <span class=\"o\">|<\/span><span class=\"n\">dir<\/span><span class=\"o\">|<\/span><\/div><div class=\"line\" id=\"LC16\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"n\">cache_dir<\/span> <span class=\"o\">=<\/span> <span class=\"no\">RAILS_ROOT<\/span> <span class=\"o\">+<\/span> <span class=\"s2\">&quot;/public/<\/span><span class=\"si\">#{<\/span><span class=\"n\">dir<\/span><span class=\"si\">}<\/span><span class=\"s2\">&quot;<\/span><\/div><div class=\"line\" id=\"LC17\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"no\">FileUtils<\/span><span class=\"o\">.<\/span><span class=\"n\">rm_r<\/span><span class=\"p\">(<\/span><span class=\"no\">Dir<\/span><span class=\"o\">.<\/span><span class=\"n\">glob<\/span><span class=\"p\">(<\/span><span class=\"n\">cache_dir<\/span><span class=\"o\">+<\/span><span class=\"s2\">&quot;/*&quot;<\/span><span class=\"p\">))<\/span> <span class=\"k\">rescue<\/span> <span class=\"no\">Errno<\/span><span class=\"o\">::<\/span><span class=\"no\">ENOENT<\/span><\/div><div class=\"line\" id=\"LC18\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"no\">RAILS_DEFAULT_LOGGER<\/span><span class=\"o\">.<\/span><span class=\"n\">info<\/span><span class=\"p\">(<\/span><span class=\"s2\">&quot;Cache directory &#39;<\/span><span class=\"si\">#{<\/span><span class=\"n\">cache_dir<\/span><span class=\"si\">}<\/span><span class=\"s2\">&#39; fully swept.&quot;<\/span><span class=\"p\">)<\/span><\/div><div class=\"line\" id=\"LC19\">&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC20\">&nbsp;&nbsp;<span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC21\">&nbsp;<\/div><div class=\"line\" id=\"LC22\"><span class=\"k\">end<\/span><\/div><div class=\"line\" id=\"LC23\">&nbsp;<\/div><\/pre><\/div>\n          \n        <\/div>\n\n        <div class=\"gist-meta\">\n          <a href=\"http://gist.github.com/raw/173503/b230cef40600ad8e2e64fbbcc04d746a8684ea46/gistfile1.rb\" style=\"float:right;\">view raw<\/a>\n          <a href=\"http://gist.github.com/173503#file_gistfile1.rb\" style=\"float:right;margin-right:10px;color:#666\">gistfile1.rb<\/a>\n          <a href=\"http://gist.github.com/173503\">This Gist<\/a> brought to you by <a href=\"http://github.com\">GitHub<\/a>.\n        <\/div>\n      <\/div>\n    \n  \n<\/div>\n')
