Sha256: e97c8e4f994c50c4dee21858f5ae0094fd334486a3dc67ba2a7ad9e13fcf2598

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 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 options
      if app.config.assets.image_optim == true
        {}
      else
        app.config.assets.image_optim || {}
      end
    end

    def register_preprocessor(app)
      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

1 entries across 1 versions & 1 rubygems

Version Path
image_optim-0.20.0 lib/image_optim/railtie.rb