Flush cache on surf pages

This commit is contained in:
Kyle Drake 2015-08-03 22:33:35 -07:00
parent e4c88688e7
commit 351816c154
2 changed files with 10 additions and 2 deletions

View file

@ -591,7 +591,11 @@ class Site < Sequel::Model
# We gotta flush the dirname too if it's an index file.
if relative_path != '' && relative_path.match(/\/$|index\.html?$/i)
PurgeCacheOrderWorker.perform_async username, relative_path
PurgeCacheOrderWorker.perform_async username, Pathname(relative_path).dirname.to_s
purge_file_path = Pathname(relative_path).dirname.to_s
PurgeCacheOrderWorker.perform_async username, '/?surf=1' if purge_file_path == '/'
PurgeCacheOrderWorker.perform_async username, purge_file_path
else
PurgeCacheOrderWorker.perform_async username, relative_path
end

View file

@ -107,13 +107,17 @@ describe 'site_files' do
@site.title.must_equal 'Hello?'
# Purge cache needs to flush / and index.html for either scenario.
PurgeCacheOrderWorker.jobs.length.must_equal 2
PurgeCacheOrderWorker.jobs.length.must_equal 3
first_purge = PurgeCacheOrderWorker.jobs.first
surf_purge = PurgeCacheOrderWorker.jobs[1]
dirname_purge = PurgeCacheOrderWorker.jobs.last
username, pathname = first_purge['args']
username.must_equal @site.username
pathname.must_equal '/index.html'
surf_purge['args'].last.must_equal '/?surf=1'
username, pathame = nil
username, pathname = dirname_purge['args']
username.must_equal @site.username