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