Parent

Methods

Class/Module Index [+]

Quicksearch

PhusionPassenger::Utils::FileSystemWatcher::DirInfo

Constants

DOT
DOTDOT

Public Class Methods

new(filename, stat) click to toggle source
# File lib/phusion_passenger/utils/file_system_watcher.rb, line 123
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

Public Instance Methods

changed?() click to toggle source
# File lib/phusion_passenger/utils/file_system_watcher.rb, line 134
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

[Validate]

Generated with the Darkfish Rdoc Generator 2.