Files
discourse/lib/disk_cache_eviction.rb
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

19 lines
387 B
Ruby
Raw Normal View History

# frozen_string_literal: true
class DiskCacheEviction
def self.evict(dir:, max_entries:, evict_count:)
pattern = File.join(dir.to_s, "*")
files = Dir.glob(pattern)
return if files.length <= max_entries
oldest =
files.min_by(evict_count) do |f|
File.mtime(f)
rescue Errno::ENOENT
Time.new(0)
end
FileUtils.rm_f(oldest)
end
end