module BlobVirusScannerConcern extend ActiveSupport::Concern included do before_create :set_pending end def virus_scanner ActiveStorage::VirusScanner.new(self) end def scan_for_virus_later VirusScannerJob.perform_later(self) end private def set_pending metadata[:virus_scan_result] ||= ActiveStorage::VirusScanner::PENDING end end