Revert "Readability: lib/jekyll/static_file.rb."

This reverts commit 26f1ea2487.
This commit is contained in:
Jordon Bedwell 2016-07-28 13:15:29 -05:00
parent 26f1ea2487
commit 54281530fb
No known key found for this signature in database
GPG Key ID: E051B220DFADB075
1 changed files with 30 additions and 46 deletions

View File

@ -3,9 +3,7 @@ module Jekyll
attr_reader :relative_path, :extname attr_reader :relative_path, :extname
class << self class << self
# # The cache of last modification times [path] -> mtime.
# The cache of last modification times
# [path] -> mtime.
def mtimes def mtimes
@mtimes ||= {} @mtimes ||= {}
end end
@ -31,29 +29,25 @@ module Jekyll
@relative_path = File.join(*[@dir, @name].compact) @relative_path = File.join(*[@dir, @name].compact)
@extname = File.extname(@name) @extname = File.extname(@name)
end end
# rubocop: enable ParameterLists # rubocop: enable ParameterLists
# Returns source file path. # Returns source file path.
def path def path
File.join( File.join(*[@base, @dir, @name].compact)
*[@base, @dir, @name].compact
)
end end
# Obtain destination path. # Obtain destination path.
#
# dest - The String path to the destination dir. # dest - The String path to the destination dir.
#
# Returns destination file path. # Returns destination file path.
def destination(dest) def destination(dest)
@site.in_dest_dir( @site.in_dest_dir(*[dest, destination_rel_dir, @name].compact)
*[dest, destination_rel_dir, @name].compact
)
end end
def destination_rel_dir def destination_rel_dir
if @collection if @collection
File.dirname( File.dirname(url)
url
)
else else
@dir @dir
end end
@ -69,12 +63,14 @@ module Jekyll
end end
# Is source path modified? # Is source path modified?
#
# Returns true if modified since last write. # Returns true if modified since last write.
def modified? def modified?
self.class.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
#
# Returns true unless the defaults for the destination path from # Returns true unless the defaults for the destination path from
# _config.yml contain `published: false`. # _config.yml contain `published: false`.
def write? def write?
@ -82,18 +78,20 @@ module Jekyll
end end
# Write the static file to the destination directory (if modified). # Write the static file to the destination directory (if modified).
# Returns false if the file was not modified since last time (no-op). #
# dest - The String path to the destination dir. # dest - The String path to the destination dir.
#
# Returns false if the file was not modified since last time (no-op).
def write(dest) def write(dest)
dest_path = destination(dest) dest_path = destination(dest)
if File.exist?(dest_path) && !modified?
return false
end
return false if File.exist?(dest_path) && !modified?
self.class.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)
true true
end end
@ -108,12 +106,11 @@ module Jekyll
def placeholders def placeholders
{ {
:collection => @collection.label, :collection => @collection.label,
:path => relative_path[
@collection.relative_directory.size..relative_path.size],
:output_ext => "", :output_ext => "",
:name => "", :name => "",
:title => "", :title => ""
:path => relative_path[
@collection.relative_directory.size..relative_path.size
]
} }
end end
@ -121,16 +118,14 @@ module Jekyll
# the collection's URL template into account. The default URL template can # the collection's URL template into account. The default URL template can
# be overriden in the collection's configuration in _config.yml. # be overriden in the collection's configuration in _config.yml.
def url def url
@url ||= @url ||= if @collection.nil?
if @collection.nil? relative_path
relative_path else
else ::Jekyll::URL.new({
::Jekyll::URL.new({ :template => @collection.url_template,
:template => @collection.url_template, :placeholders => placeholders
:placeholders => placeholders })
}) end.to_s.gsub(%r!/$!, "")
end
.to_s.gsub(%r!/$!, "")
end end
# Returns the type of the collection if present, nil otherwise. # Returns the type of the collection if present, nil otherwise.
@ -141,28 +136,17 @@ module Jekyll
# Returns the front matter defaults defined for the file's URL and/or type # Returns the front matter defaults defined for the file's URL and/or type
# as defined in _config.yml. # as defined in _config.yml.
def defaults def defaults
@defaults ||= @site.frontmatter_defaults.all( @defaults ||= @site.frontmatter_defaults.all url, type
url, type
)
end end
private private
def copy_file(dest_path) def copy_file(dest_path)
if @site.safe || Jekyll.env == "production" if @site.safe || Jekyll.env == "production"
FileUtils.cp( FileUtils.cp(path, dest_path)
path, dest_path
)
else else
FileUtils.copy_entry( FileUtils.copy_entry(path, dest_path)
path, dest_path
)
end end
File.utime(self.class.mtimes[path], self.class.mtimes[path], dest_path)
File.utime(
self.class.mtimes[path],
self.class.mtimes[path],
dest_path
)
end end
end end
end end