lib/jekyll/zopfli/compressor.rb in jekyll-zopfli-2.0.0 vs lib/jekyll/zopfli/compressor.rb in jekyll-zopfli-2.1.0
- old
+ new
@@ -23,11 +23,11 @@
# site files ready for compression.
#
# @return void
def self.compress_site(site)
site.each_site_file do |file|
- compress_file(file.destination(site.dest), zippable_extensions(site))
+ compress_file(file.destination(site.dest), extensions: zippable_extensions(site))
end
end
##
# Takes a directory path and maps over the files within compressing them
@@ -43,11 +43,11 @@
#
# @return void
def self.compress_directory(dir, site)
extensions = zippable_extensions(site).join(',')
files = Dir.glob(dir + "**/*{#{extensions}}")
- files.each { |file| compress_file(file, zippable_extensions(site)) }
+ files.each { |file| compress_file(file, extensions: zippable_extensions(site)) }
end
##
# Takes a file name and an array of extensions. If the file name extension
# matches one of the extensions in the array then the file is loaded and
@@ -58,14 +58,16 @@
# Jekyll::Zopfli::Compressor.compress_file("~/blog/_site/index.html", ['.html')
#
# @param file_name [String] The file name of the file we want to compress
# @param extensions [Array<String>] The extensions of files that will be
# compressed.
+ # @param replace_file [Boolean] Whether the origina file should be
+ # replaced or written alongside the original with a `.gz` extension
#
# @return void
- def self.compress_file(file_name, extensions)
+ def self.compress_file(file_name, extensions: [], replace_file: false)
return unless extensions.include?(File.extname(file_name))
- zipped = "#{file_name}.gz"
+ zipped = replace_file ? file_name : "#{file_name}.gz"
contents = ::Zopfli.deflate(File.read(file_name), format: :gzip)
File.open(zipped, "w+") do |file|
file << contents
end
File.utime(File.atime(file_name), File.mtime(file_name), zipped)
\ No newline at end of file