EM.attach / watch не может использоваться для файлов, так как select / epoll для файлового дескриптора на диске всегда будет возвращать читаемый.
В конечном счете, это зависит от того, что вы пытаетесь сделать. Если это небольшой файл, просто File.read его. Если он больше, вы можете читать небольшие куски с течением времени. Например, EM :: FileStreamer делает это для отправки большого файла по сети.
Другим распространенным вариантом использования является добавление файла и чтение нового содержимого при его изменении. Это может быть достигнуто с помощью EM.watch_file: http://github.com/jordansissel/eventmachine-tail