class ActiveStorage::Analyzer::ImageAnalyzer::Vips

def read_image

def read_image
  begin
    require "ruby-vips"
  rescue LoadError
    logger.info "Skipping image analysis because the ruby-vips gem isn't installed"
    return {}
  end
  download_blob_to_tempfile do |file|
    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
  rescue ::Vips::Error => error
    logger.error "Skipping image analysis due to an Vips error: #{error.message}"
    {}
  end
end