rubocop: move mtimes cache hash to class variable

This commit is contained in:
Anatoliy Yastreb 2016-06-16 23:12:01 +03:00
parent 7a933893db
commit 0f74db4131
1 changed files with 14 additions and 5 deletions

View File

@ -2,6 +2,17 @@ module Jekyll
class StaticFile class StaticFile
attr_reader :relative_path, :extname attr_reader :relative_path, :extname
class << self
# The cache of last modification times [path] -> mtime.
def mtimes
@mtimes ||= {}
end
def reset_cache
@mtimes = nil
end
end
# Initialize a new StaticFile. # Initialize a new StaticFile.
# #
# site - The Site. # site - The Site.
@ -17,8 +28,6 @@ module Jekyll
@collection = collection @collection = collection
@relative_path = File.join(*[@dir, @name].compact) @relative_path = File.join(*[@dir, @name].compact)
@extname = File.extname(@name) @extname = File.extname(@name)
# The cache of last modification times [path] -> mtime.
@mtimes = {}
end end
# rubocop: enable ParameterLists # rubocop: enable ParameterLists
@ -57,7 +66,7 @@ module Jekyll
# #
# Returns true if modified since last write. # Returns true if modified since last write.
def modified? def modified?
@mtimes[path] != mtime self.class.mtimes[path] != mtime
end end
# Whether to write the file to the filesystem # Whether to write the file to the filesystem
@ -77,12 +86,11 @@ module Jekyll
dest_path = destination(dest) dest_path = destination(dest)
return false if File.exist?(dest_path) && !modified? return false if File.exist?(dest_path) && !modified?
@mtimes[path] = mtime self.class.mtimes[path] = mtime
FileUtils.mkdir_p(File.dirname(dest_path)) FileUtils.mkdir_p(File.dirname(dest_path))
FileUtils.rm(dest_path) if File.exist?(dest_path) FileUtils.rm(dest_path) if File.exist?(dest_path)
copy_file(dest_path) copy_file(dest_path)
File.utime(@mtimes[path], @mtimes[path], dest_path)
true true
end end
@ -138,6 +146,7 @@ module Jekyll
else else
FileUtils.copy_entry(path, dest_path) FileUtils.copy_entry(path, dest_path)
end end
File.utime(self.class.mtimes[path], self.class.mtimes[path], dest_path)
end end
end end
end end