summaryrefslogtreecommitdiff
path: root/lib/erubis/engine.rb
diff options
context:
space:
mode:
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