class Moft::StaticFile
Public Class Methods
new(site, base, dir, name)
click to toggle source
Initialize a new StaticFile
.
site - The Site
. base - The String
path to the <source>. dir - The String
path between <source> and the file. name - The String
filename of the file.
# File lib/moft/static_file.rb, line 12 def initialize(site, base, dir, name) @site = site @base = base @dir = dir @name = name end
reset_cache()
click to toggle source
Reset the mtimes cache (for testing purposes).
Returns nothing.
# File lib/moft/static_file.rb, line 69 def self.reset_cache @@mtimes = Hash.new nil end
Public Instance Methods
destination(dest)
click to toggle source
Obtain destination path.
dest - The String
path to the destination dir.
Returns destination file path.
# File lib/moft/static_file.rb, line 29 def destination(dest) if (@dir[0..1] == '..') File.join(dest, @dir[3..-1], @name) else File.join(dest, @dir, @name) end end
modified?()
click to toggle source
Is source path modified?
Returns true if modified since last write.
# File lib/moft/static_file.rb, line 45 def modified? @@mtimes[path] != mtime end
mtime()
click to toggle source
Returns last modification time for this file.
# File lib/moft/static_file.rb, line 38 def mtime File.stat(path).mtime.to_i end
path()
click to toggle source
Returns source file path.
# File lib/moft/static_file.rb, line 20 def path File.join(@base, @dir, @name) end
write(dest)
click to toggle source
Write the static file to the destination directory (if modified).
dest - The String
path to the destination dir.
Returns false if the file was not modified since last time (no-op).
# File lib/moft/static_file.rb, line 54 def write(dest) dest_path = destination(dest) return false if File.exist?(dest_path) and !modified? @@mtimes[path] = mtime FileUtils.mkdir_p(File.dirname(dest_path)) FileUtils.cp(path, dest_path) true end