Sha256: 87743fad6d91983c68e4f328dce887586b5017b7690025b8b0c341a1e2ee276b

Contents?: true

Size: 1.07 KB

Versions: 7

Compression:

Stored size: 1.07 KB

Contents

require 'image_optim'

class ImageOptim
  # Adds image_optim as preprocessor for gif, jpeg, png and svg images
  class Railtie < Rails::Railtie
    initializer 'image_optim.initializer' do |app|
      register_preprocessor(app) if register_preprocessor?(app)
    end

    def register_preprocessor?(app)
      return if app.config.assets.compress == false
      return if app.config.assets.image_optim == false

      app.assets
    end

    def register_preprocessor(app)
      options = if app.config.assets.image_optim == true
        {}
      else
        app.config.assets.image_optim || {}
      end

      image_optim = ImageOptim.new(options)

      processor = proc do |_context, data|
        image_optim.optimize_image_data(data) || data
      end

      app.assets.register_preprocessor 'image/gif', :image_optim, &processor
      app.assets.register_preprocessor 'image/jpeg', :image_optim, &processor
      app.assets.register_preprocessor 'image/png', :image_optim, &processor
      app.assets.register_preprocessor 'image/svg+xml', :image_optim, &processor
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
image_optim-0.19.1 lib/image_optim/railtie.rb
image_optim-0.19.0 lib/image_optim/railtie.rb
image_optim-0.18.0 lib/image_optim/railtie.rb
image_optim-0.17.1 lib/image_optim/railtie.rb
image_optim-0.17.0 lib/image_optim/railtie.rb
image_optim-0.16.0 lib/image_optim/railtie.rb
image_optim-0.15.0 lib/image_optim/railtie.rb