Sha256: eddad84eee6aafe946806b744627712175b117dc0ea9f28d918198ccea3bfcfe

Contents?: true

Size: 1.28 KB

Versions: 20

Compression:

Stored size: 1.28 KB

Contents

module Middleman::Features::SmushPNGs
  class << self
    def registered(app)
      require "middleman/builder"

      app.alias_method  :pre_smush_after_run, :after_run
      app.define_method :after_run do
        pre_smush_after_run
        smush_dir = File.join(Middleman::Server.build_dir, Middleman::Server.images_dir)
      
        # 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
      
        require "smusher"
        require "json/pure"
        ::Smusher.class_eval do
          images_in_folder(smush_dir).each do |file|
            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
              say "<%= color('#{"[SMUSHED]".rjust(12)}', :yellow) %>  " + file.gsub(Middleman::Server.build_dir+"/", '')
            end
          end
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
beans-middleman-1.0.14 lib/middleman/features/smush_pngs.rb
beans-middleman-1.0.13 lib/middleman/features/smush_pngs.rb
beans-middleman-1.0.12 lib/middleman/features/smush_pngs.rb
beans-middleman-1.0.11 lib/middleman/features/smush_pngs.rb
beans-middleman-1.0.9 lib/middleman/features/smush_pngs.rb
beans-middleman-1.0.8 lib/middleman/features/smush_pngs.rb
beans-middleman-1.0.7 lib/middleman/features/smush_pngs.rb
beans-middleman-1.0.6 lib/middleman/features/smush_pngs.rb
beans-middleman-1.0.5 lib/middleman/features/smush_pngs.rb
middleman-1.1.0.beta.1 lib/middleman/features/smush_pngs.rb
middleman-1.1.0.beta.0 lib/middleman/features/smush_pngs.rb
middleman-1.1.0.alpha.2 lib/middleman/features/smush_pngs.rb
middleman-1.0.3 lib/middleman/features/smush_pngs.rb
middleman-1.1.0.alpha.1 lib/middleman/features/smush_pngs.rb
middleman-1.0.2 lib/middleman/features/smush_pngs.rb
middleman-1.0.1 lib/middleman/features/smush_pngs.rb
middleman-1.0.0 lib/middleman/features/smush_pngs.rb
middleman-1.0.0.pre lib/middleman/features/smush_pngs.rb
middleman-0.99.3.pre lib/middleman/features/smush_pngs.rb
middleman-0.99.2.pre lib/middleman/features/smush_pngs.rb