class ActiveStorage::Analyzer::ImageAnalyzer::Vips

def read_image

def read_image
  download_blob_to_tempfile do |file|
    require "ruby-vips"
    image = instrument("vips") do
      ::Vips::Image.new_from_file(file.path, access: :sequential)
    end
    if valid_image?(image)
      yield image
    else
      logger.info "Skipping image analysis because Vips doesn't support the file"
      {}
    end
  end
rescue LoadError
  logger.info "Skipping image analysis because the ruby-vips gem isn't installed"
  {}
rescue ::Vips::Error => error
  logger.error "Skipping image analysis due to an Vips error: #{error.message}"
  {}
end