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.