Sha256: ccd833d9868c19ed27f6feab0fafef0eaecc85425dc3fb5af7d6668c33d43a85
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
class Knj::Event_filemod attr_reader :args def initialize(args, &block) @args = args @run = true @mutex = Mutex.new @args[:wait] = 1 if !@args.key?(:wait) @mtimes = {} args[:paths].each do |path| @mtimes[path] = File.mtime(path) end Knj::Thread.new do while @run do break if !@args or !@args[:paths] or @args[:paths].empty? @mutex.synchronize do @args[:paths].each do |path| changed = false if @mtimes and !@mtimes.key?(path) and @mtimes.is_a?(Hash) @mtimes[path] = File.mtime(path) end begin newdate = File.mtime(path) rescue Errno::ENOENT #file does not exist. changed = true end if !changed and newdate and @mtimes and newdate > @mtimes[path] changed = true end if changed block.call(self, path) @args[:paths].delete(path) if @args and @args[:break_when_changed] end end sleep @args[:wait] if @args and @run end end end end def destroy @mtimes = {} @run = false @args = nil end def add_path(fpath) @args[:paths] << fpath end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
knjrbfw-0.0.8 | lib/knj/event_filemod.rb |