class Middleman::ImageOptim::Extension

Attributes

image_optim[R]

Public Class Methods

new(*) click to toggle source
Calls superclass method
# File lib/middleman/image_optim/extension.rb, line 21
def initialize(*)
  super
  @image_optim = ::ImageOptim.new(options.to_h.merge(verbose: logger.level == 0))
end

Public Instance Methods

manipulate_resource_list(resources) click to toggle source
# File lib/middleman/image_optim/extension.rb, line 26
def manipulate_resource_list(resources)
  optimized_files = image_optim.optimize_images(resources.map(&:source_file))

  resources.zip(optimized_files).map do |resource, (_, optimized_file)|
    if optimized_file
      reduction = optimized_file.original_size - optimized_file.size
      if reduction > 0
        logger.debug "#{resource.path} reduced #{reduction / 1024}KB (#{'%.2f' % (100.0 * reduction / optimized_file.original_size)}%)"
        Middleman::Sitemap::Resource.new(app.sitemap, resource.path, optimized_file.to_s)
      end
    end or resource
  end
end