diff options
Diffstat (limited to 'lib/erubis')
-rw-r--r-- | lib/erubis/engine.rb | 4 |
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 |