Sha256: 486536b602f766d953bc9a67109ac43d5fa20730b07e16e5f834490a4e4bd0f0

Contents?: true

Size: 935 Bytes

Versions: 22

Compression:

Stored size: 935 Bytes

Contents

module Spree
  module ImageMethods
    extend ActiveSupport::Concern

    def generate_url(size:, gravity: 'centre', quality: 80, background: [0, 0, 0])
      return if size.blank?

      size = size.gsub(/\s+/, '')

      return unless size.match(/(\d+)x(\d+)/)

      width, height = size.split('x').map(&:to_i)
      gravity = translate_gravity_for_mini_magick(gravity)

      # FIXME: bring back support for background color

      cdn_image_url(attachment.variant(resize_and_pad: [width, height, { gravity: gravity }], saver: { quality: quality }))
    end

    def original_url
      cdn_image_url(attachment)
    end

    private

    def translate_gravity_for_mini_magick(gravity)
      variant_processor = Rails.application.config.active_storage.variant_processor

      if gravity.downcase == 'centre' && [:mini_magick, nil].include?(variant_processor)
        'center'
      else
        gravity
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
spree_core-4.10.1 app/models/concerns/spree/image_methods.rb
spree_core-4.10.0 app/models/concerns/spree/image_methods.rb
spree_core-4.9.0 app/models/concerns/spree/image_methods.rb
spree_core-4.8.3 app/models/concerns/spree/image_methods.rb
spree_core-4.8.2 app/models/concerns/spree/image_methods.rb
spree_core-4.7.3 app/models/concerns/spree/image_methods.rb
spree_core-4.6.6 app/models/concerns/spree/image_methods.rb
spree_core-4.5.5 app/models/concerns/spree/image_methods.rb
spree_core-4.5.4 app/models/concerns/spree/image_methods.rb
spree_core-4.6.5 app/models/concerns/spree/image_methods.rb
spree_core-4.7.2 app/models/concerns/spree/image_methods.rb
spree_core-4.7.1 app/models/concerns/spree/image_methods.rb
spree_core-4.6.4 app/models/concerns/spree/image_methods.rb
spree_core-4.7.0 app/models/concerns/spree/image_methods.rb
spree_core-4.6.3 app/models/concerns/spree/image_methods.rb
spree_core-4.6.2 app/models/concerns/spree/image_methods.rb
spree_core-4.6.1 app/models/concerns/spree/image_methods.rb
spree_core-4.6.0 app/models/concerns/spree/image_methods.rb
spree_core-4.5.3 app/models/concerns/spree/image_methods.rb
spree_core-4.5.2 app/models/concerns/spree/image_methods.rb