From 351816c15428fe19ee74e3a0104167b4c20df9cf Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Mon, 3 Aug 2015 22:33:35 -0700 Subject: [PATCH] Flush cache on surf pages --- models/site.rb | 6 +++++- tests/site_file_tests.rb | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/models/site.rb b/models/site.rb index 44a95f60..eeeb89d2 100644 --- a/models/site.rb +++ b/models/site.rb @@ -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 diff --git a/tests/site_file_tests.rb b/tests/site_file_tests.rb index f2aee5ee..28eb95b7 100644 --- a/tests/site_file_tests.rb +++ b/tests/site_file_tests.rb @@ -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