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

Version Path
middleman-1.1.1.a lib/middleman/features/smush_pngs.rb
middleman-1.1.0.1 lib/middleman/features/smush_pngs.rb
middleman-1.1.0.beta.8 lib/middleman/features/smush_pngs.rb
middleman-1.1.0.beta.7 lib/middleman/features/smush_pngs.rb
middleman-1.1.0.beta.6 lib/middleman/features/smush_pngs.rb
middleman-1.1.0.beta.5 lib/middleman/features/smush_pngs.rb
middleman-1.1.0.beta.4 lib/middleman/features/smush_pngs.rb
middleman-1.1.0.beta.3 lib/middleman/features/smush_pngs.rb
middleman-1.1.0.beta.2 lib/middleman/features/smush_pngs.rb