С Ruby я мало чем могу помочь, но WMI также поддерживает отслеживаемые события.Существует внешнее событие с именем Win32_DeviceChangeEvent .
Вот простой код PowerShell для его использования:
$query = "SELECT * FROM Win32_DeviceChangeEvent WHERE EventType=2"
Register-WMIEvent -Query $query -Action { Write-Host "A device has been inserted"}
Код, указанный в параметре Action, вызывается каждый разустройство вставлено.Я не знаю, чтобы обработать такой запрос в Ruby.