class PhusionPassenger::Utils::FileSystemWatcher::DirInfo
def changed?
def changed? new_stat = File.stat(@filename) if @stat.ino != new_stat.ino || !new_stat.directory? || @stat.mtime != new_stat.mtime return true end count = 0 Dir.foreach(@filename) do |entry| next if entry == DOT || entry == DOTDOT subfilename = "#{@filename}/#{entry}" file_info = @subfiles[entry] if !file_info || file_info.changed?(false) return true else count += 1 end end return count != @subfiles.size rescue Errno::EACCES, Errno::ENOENT return true end
def initialize(filename, stat)
def initialize(filename, stat) @filename = filename @stat = stat @subfiles = {} Dir.foreach(filename) do |entry| next if entry == DOT || entry == DOTDOT subfilename = "#{filename}/#{entry}" @subfiles[entry] = FileInfo.new(subfilename, File.stat(subfilename)) end end