summaryrefslogtreecommitdiff
path: root/lib/erubis/engine.rb
diff options
context:
space:
mode:
authormakoto kuwata <kwa@kuwata-lab.com>2011-03-21 09:03:59 +0900
committermakoto kuwata <kwa@kuwata-lab.com>2011-03-21 09:03:59 +0900
commit5f4e4cd9bbe277d6b8ab40b4ba7ff06ffec0dec9 (patch)
tree6825ece6619e6699d062234ee9f6a6592a437403 /lib/erubis/engine.rb
parent2c7f043f66d80b0b72217c79162d912a73dc80b9 (diff)
downloaderubis-5f4e4cd9bbe277d6b8ab40b4ba7ff06ffec0dec9.tar.gz
[change] 'Erubis::Engine.load_file()' to set cache timestamp to be the same value as original file
Diffstat (limited to 'lib/erubis/engine.rb')
-rw-r--r--lib/erubis/engine.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/erubis/engine.rb b/lib/erubis/engine.rb
index 0ef9a47..1df7e28 100644
--- a/lib/erubis/engine.rb
+++ b/lib/erubis/engine.rb
@@ -48,7 +48,8 @@ module Erubis
def self.load_file(filename, properties={})
cachename = properties[:cachename] || (filename + '.cache')
properties[:filename] = filename
- if test(?f, cachename) && File.mtime(filename) <= File.mtime(cachename)
+ timestamp = File.mtime(filename)
+ if test(?f, cachename) && timestamp == File.mtime(cachename)
engine = self.new(nil, properties)
engine.src = File.read(cachename)
else
@@ -57,6 +58,7 @@ module Erubis
tmpname = cachename + rand().to_s[1,8]
File.open(tmpname, 'wb') {|f| f.write(engine.src) }
File.rename(tmpname, cachename)
+ File.utime(timestamp, timestamp, cachename)
end
engine.src.untaint # ok?
return engine