Sha256: 360f2cf57308080046184ce8d69a1939deead4bfd73cf1fc257477a518de8e44

Contents?: true

Size: 1.26 KB

Versions: 60

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

module ActiveStorage
  # This analyzer relies on the third-party {MiniMagick}[https://github.com/minimagick/minimagick] gem. MiniMagick requires
  # the {ImageMagick}[http://www.imagemagick.org] system library.
  class Analyzer::ImageAnalyzer::ImageMagick < Analyzer::ImageAnalyzer
    def self.accept?(blob)
      super && ActiveStorage.variant_processor == :mini_magick
    end

    private
      def read_image
        begin
          require "mini_magick"
        rescue LoadError
          logger.info "Skipping image analysis because the mini_magick gem isn't installed"
          return {}
        end

        download_blob_to_tempfile do |file|
          image = instrument("mini_magick") do
            MiniMagick::Image.new(file.path)
          end

          if image.valid?
            yield image
          else
            logger.info "Skipping image analysis because ImageMagick doesn't support the file"
            {}
          end
        rescue MiniMagick::Error => error
          logger.error "Skipping image analysis due to an ImageMagick error: #{error.message}"
          {}
        end
      end

      def rotated_image?(image)
        %w[ RightTop LeftBottom TopRight BottomLeft ].include?(image["%[orientation]"])
      end
  end
end

Version data entries

60 entries across 59 versions & 7 rubygems

Version Path
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/activestorage-7.0.8.7/lib/active_storage/analyzer/image_analyzer/image_magick.rb
minato_ruby_api_client-0.2.2 vendor/bundle/ruby/3.2.0/gems/activestorage-7.1.3.4/lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-8.0.1 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-8.0.0.1 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-7.2.2.1 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-7.1.5.1 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-7.0.8.7 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-8.0.0 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-7.2.2 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-7.1.5 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-8.0.0.rc2 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-7.2.1.2 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-7.1.4.2 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-7.0.8.6 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-8.0.0.rc1 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-7.2.1.1 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-7.1.4.1 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-7.0.8.5 lib/active_storage/analyzer/image_analyzer/image_magick.rb
activestorage-8.0.0.beta1 lib/active_storage/analyzer/image_analyzer/image_magick.rb
omg-activestorage-8.0.0.alpha9 lib/active_storage/analyzer/image_analyzer/image_magick.rb