Class: DirectoryWatcher::FileStat

Inherits:
Object
  • Object
show all
Defined in:
lib/directory_watcher/file_stat.rb

Overview

FileStat contains file system information about a single file including:

path - The fully expanded path of the file mtime - The last modified time of the file, as a Time object size - The size of the file, in bytes.

The FileStat object can also say if the file is removed of not.

Instance Attribute Summary (collapse)

Class Method Summary (collapse)

Instance Method Summary (collapse)

Constructor Details

- (FileStat) initialize(path, mtime, size)

Create a new instance of FileStat with the given path, mtime and size



29
30
31
32
33
# File 'lib/directory_watcher/file_stat.rb', line 29

def initialize( path, mtime, size )
  @path = path
  @mtime = mtime
  @size = size
end

Instance Attribute Details

- (Object) mtime

The last modified time of the file



15
16
17
# File 'lib/directory_watcher/file_stat.rb', line 15

def mtime
  @mtime
end

- (Object) path (readonly)

The fully expanded path of the file



12
13
14
# File 'lib/directory_watcher/file_stat.rb', line 12

def path
  @path
end

- (Object) size

The size of the file in bytes



18
19
20
# File 'lib/directory_watcher/file_stat.rb', line 18

def size
  @size
end

Class Method Details

+ (Object) for_removed_path(path)

Create an instance of FileStat that will make sure that the instance method removed? returns true when called on it.



23
24
25
# File 'lib/directory_watcher/file_stat.rb', line 23

def self.for_removed_path( path )
  ::DirectoryWatcher::FileStat.new(path, nil, nil)
end

Instance Method Details

- (Boolean) eql?(other) Also known as: ==

Compare this FileStat to another object.

This will only return true when all of the following are true:

1) The other object is also a FileStat object 2) The other object's mtime is equal to this mtime 3) The other object's msize is equal to this size

Returns:

  • (Boolean)


54
55
56
57
# File 'lib/directory_watcher/file_stat.rb', line 54

def eql?( other )
  return false unless other.instance_of? self.class
  self.mtime == other.mtime and self.size == other.size
end

- (Boolean) removed?

Is the file represented by this FileStat to be considered removed?

FileStat doesn't actually go to the file system and check, it assumes if the FileStat was initialized with a nil mtime or a nil size then that data wasn't available, and therefore must indicate that the file is no longer in existence.

Returns:

  • (Boolean)


42
43
44
# File 'lib/directory_watcher/file_stat.rb', line 42

def removed?
  @mtime.nil? || @size.nil?
end

- (Object) to_s

Create a nice string based representation of this instance.



62
63
64
# File 'lib/directory_watcher/file_stat.rb', line 62

def to_s
  "<#{self.class.name} path: #{path} mtime: #{mtime} size: #{size}>"
end