correct emergency regeneration in the controller

This commit is contained in:
Sam 2015-05-06 07:33:32 +10:00
parent 2625c3bb9a
commit 0f53fc8328
3 changed files with 6 additions and 3 deletions

View file

@ -5,6 +5,7 @@ class StylesheetsController < ApplicationController
target,digest = params[:name].split("_")
digest_orig = digest
digest = "_" + digest if digest
# Security note, safe due to route constraint
@ -13,7 +14,7 @@ class StylesheetsController < ApplicationController
unless File.exist?(location)
query = StylesheetCache.where(target: target)
if digest
query = query.where(digest: digest)
query = query.where(digest: digest_orig)
else
query = query.order('id desc')
end

View file

@ -12,7 +12,9 @@ class StylesheetCache < ActiveRecord::Base
count = StylesheetCache.count
if count > MAX_TO_KEEP
remove_lower = StylesheetCache.limit(MAX_TO_KEEP)
remove_lower = StylesheetCache
.where(target: target)
.limit(MAX_TO_KEEP)
.order('id desc')
.pluck(:id)
.last

View file

@ -5,7 +5,7 @@ describe StylesheetCache do
describe "add" do
it "correctly cycles once MAX_TO_KEEP is hit" do
(StylesheetCache::MAX_TO_KEEP + 1).times do |i|
StylesheetCache.add(i.to_s, "d" + i.to_s, "c" + i.to_s)
StylesheetCache.add("a", "d" + i.to_s, "c" + i.to_s)
end
expect(StylesheetCache.count).to eq StylesheetCache::MAX_TO_KEEP