Utility class that is useful for file monitoring. Supported events are
File is modified
File is deleted
File is moved
@note On Mac OS X, file watching only works when kqueue is enabled
Will be called when the file is deleted. Supposed to be redefined by subclasses. When the file is deleted, stop_watching will be called after this to make sure everything is cleaned up correctly.
@note On Linux (with {en.wikipedia.org/wiki/Inotify inotify}), this method will not be called until all open file descriptors to
the file have been closed.
@abstract
# File lib/em/file_watch.rb, line 56 def file_deleted end
Will be called when the file is modified. Supposed to be redefined by subclasses.
@abstract
# File lib/em/file_watch.rb, line 45 def file_modified end
Will be called when the file is moved or renamed. Supposed to be redefined by subclasses.
@abstract
# File lib/em/file_watch.rb, line 62 def file_moved end
Returns the path that is being monitored.
@note Current implementation does not pick up on the new filename after a rename occurs.
@return [String] @see EventMachine.watch_file
# File lib/em/file_watch.rb, line 38 def path @path end
@private
# File lib/em/file_watch.rb, line 21 def receive_data(data) case data when Cmodified file_modified when Cdeleted file_deleted when Cmoved file_moved end end
Discontinue monitoring of the file.
This involves cleaning up the underlying monitoring details with kqueue/inotify, and in turn firing {EventMachine::Connection#unbind}. This will be called automatically when a file is deleted. User code may call it as well.
# File lib/em/file_watch.rb, line 69 def stop_watching EventMachine::unwatch_filename(@signature) end
Generated with the Darkfish Rdoc Generator 2.