1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
class File
class Stat
include Comparable
def <=>(other)
if other.kind_of?(self.class)
self.mtime <=> other.mtime
else
nil
end
end
def inspect
_dev = dev
_dev = "0x#{_dev.to_s(16)}" if _dev.kind_of?(Fixnum)
_mode = mode
_mode = "0#{_mode.to_s(8)}" if _mode.kind_of?(Fixnum)
_rdev = rdev
_rdev = "0x#{_rdev.to_s(16)}" if _rdev.kind_of?(Fixnum)
stats = {
'dev' => _dev,
'ino' => ino,
'mode' => _mode,
'nlink' => nlink,
'uid' => uid,
'gid' => gid,
'rdev' => _rdev,
'size' => size,
'blksize' => blksize,
'blocks' => blocks,
'atime' => atime,
'mtime' => mtime,
'ctime' => ctime,
}
if respond_to? :birthtime
stats['birthtime'] = birthtime
end
"#<#{self.class.to_s} #{stats.map{|k, v| "#{k}=#{v}"}.join(', ')}>"
end
def size?
s = size
s == 0 ? nil : s
end
def zero?
size == 0
end
end
end
|