From dc3d202665331cde234df3ab8b3cfd85563005c1 Mon Sep 17 00:00:00 2001 From: Jacques Distler Date: Sun, 13 Dec 2009 21:09:12 -0600 Subject: [PATCH] Cache Source View Also, fix a cache-sweeping bug reported, long ago, by Toby Bartels. --- app/controllers/cache_sweeping_helper.rb | 2 +- app/controllers/revision_sweeper.rb | 3 ++- app/controllers/wiki_controller.rb | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/controllers/cache_sweeping_helper.rb b/app/controllers/cache_sweeping_helper.rb index 20e68b2f..cb56c08b 100644 --- a/app/controllers/cache_sweeping_helper.rb +++ b/app/controllers/cache_sweeping_helper.rb @@ -2,7 +2,7 @@ module CacheSweepingHelper def expire_cached_page(web, page_name) expire_action :controller => 'wiki', :web => web.address, - :action => %w(show published s5 tex print history), :id => page_name + :action => %w(show published s5 tex print history source), :id => page_name expire_action :controller => 'wiki', :web => web.address, :action => 'show', :id => page_name, :mode => 'diff' end diff --git a/app/controllers/revision_sweeper.rb b/app/controllers/revision_sweeper.rb index 6408133b..d5dac253 100644 --- a/app/controllers/revision_sweeper.rb +++ b/app/controllers/revision_sweeper.rb @@ -7,7 +7,8 @@ class RevisionSweeper < ActionController::Caching::Sweeper observe Revision, Page def before_save(record) - if record.is_a?(Revision) + if record.is_a?(Revision) + expire_cached_page(record.page.web, record.page.name) expire_cached_revisions(record.page) end end diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index d98bb7f7..31360927 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -9,7 +9,7 @@ class WikiController < ApplicationController before_filter :load_page before_filter :dnsbl_check, :only => [:edit, :new, :save, :export_html, :export_markup] - caches_action :show, :published, :authors, :tex, :s5, :print, :recently_revised, :list, :file_list, + caches_action :show, :published, :authors, :tex, :s5, :print, :recently_revised, :list, :file_list, :source, :history, :revision, :atom_with_content, :atom_with_headlines, :if => Proc.new { |c| c.send(:do_caching?) } cache_sweeper :revision_sweeper @@ -393,7 +393,7 @@ class WikiController < ApplicationController return text if text.length <= length len = length - truncate_string.length t = '' - text.split.collect do | word| + text.split.collect do |word| if t.length + word.length <= len t << word + ' ' else