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