Just cache '<!-- idem -->' for unchanged texts.

This saves space and writing/loading times.

Signed-off-by: Thomas Hochstein <thh@inter.net>
This commit is contained in:
Thomas Hochstein 2017-05-25 13:44:03 +02:00
parent c09ed68423
commit 77cd2e21b4
2 changed files with 15 additions and 2 deletions

View file

@ -4,6 +4,7 @@
### Version 0.3 (unreleased)
* Save space by caching just '<!-- idem -->' for unchanged texts.
* Change protocol to https.
* Make cache validity configurable.
* Rename from "DejureIntegrator" to "DejureAutolinker".

View file

@ -124,16 +124,28 @@ module Nanoc::Filters
cache_file = cache_dir + '/' + cache_filename(input)
if File.directory?(cache_dir)
File.open(cache_file, 'w') do |f|
# if input is unchanged, just save '<!-- idem -->'
# instead of the whole (unchanged) text to save space
if input == output
f.write('<!-- idem -->')
else
f.write(output)
end
end
end
end
def cache_read (input,cache_days=CACHEDAYS,cache_dir=CACHEDIR)
cache_file = cache_dir + '/' + cache_filename(input)
# file exists and is younger than cache_days?
if File.exist?(cache_file) && File.mtime(cache_file).to_i > cache_age(cache_days)
return File.read(cache_file)
output = File.read(cache_file)
# if just '<!-- idem -->' is cached, return input unchanged
if output == '<!-- idem -->'
return input
else
return output
end
else
return false
end