| Server IP : 74.208.236.79 / Your IP : 216.73.216.156 Web Server : Apache System : Linux infongp-us50 4.4.400-icpu-108 #2 SMP Wed Feb 11 10:12:42 UTC 2026 x86_64 User : u93192080 ( 6162215) PHP Version : 8.4.22 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /kunden/usr/lib/ruby/vendor_ruby/em/ |
Upload File : |
module EventMachine
# 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
#
# @see EventMachine.watch_file
class FileWatch < Connection
# @private
Cmodified = 'modified'.freeze
# @private
Cdeleted = 'deleted'.freeze
# @private
Cmoved = 'moved'.freeze
# @private
def receive_data(data)
case data
when Cmodified
file_modified
when Cdeleted
file_deleted
when Cmoved
file_moved
end
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
def path
@path
end
# Will be called when the file is modified. Supposed to be redefined by subclasses.
#
# @abstract
def file_modified
end
# 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 {http://en.wikipedia.org/wiki/Inotify inotify}), this method will not be called until *all* open file descriptors to
# the file have been closed.
#
# @abstract
def file_deleted
end
# Will be called when the file is moved or renamed. Supposed to be redefined by subclasses.
#
# @abstract
def file_moved
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.
def stop_watching
EventMachine::unwatch_filename(@signature)
end # stop_watching
end # FileWatch
end # EventMachine