Sha256: b77028bb77790d7d411d875e911aef0030e2ae64b0ce675e92a1ed59bb9b8bf9
Contents?: true
Size: 1.34 KB
Versions: 9
Compression:
Stored size: 1.34 KB
Contents
module Middleman::Features::SmushPngs module ThorActions def smush_pngs # Read cache cache_file = File.join(Middleman::Server.root, ".smush-cache") cache_data = if File.exists?(cache_file) Marshal.restore(File.read(cache_file)) else {} end smush_dir = File.join(Middleman::Server.build_dir, Middleman::Server.images_dir) files = ::Smusher.class_eval do images_in_folder(smush_dir) end files.each do |file| ::Smusher.class_eval do original_file_size = size(file) return if original_file_size.zero? return if cache_data[file] && cache_data[file] == original_file_size with_logging(file, true) do write_optimized_data(file) cache_data[file] = size(file) # Add or update cache File.open(cache_file, "w") { |f| f.write Marshal.dump(cache_data) } # Write cache end end say_status :smushed, file.gsub(Middleman::Server.build_dir+"/", "") end end end class << self def registered(app) require "middleman/builder" require "smusher" require "json/pure" Middleman::Builder.send :include, ThorActions Middleman::Builder.after_run "smush_pngs" do smush_pngs end end end end
Version data entries
9 entries across 9 versions & 1 rubygems