class Ole::Storage::FileClass::Stat

Attributes

blksize[R]
blocks[R]
dev[R]
ftype[R]
gid[R]
ino[R]
rdev[R]
rdev_major[R]
rdev_minor[R]
size[R]
uid[R]

Public Class Methods

new(dirent) click to toggle source
# File lib/ole/storage/file_system.rb, line 62
def initialize dirent
  @dirent = dirent
  @size = dirent.size
  if file?
    @ftype = 'file'
    bat = dirent.ole.bat_for_size(dirent.size)
    @blocks = bat.chain(dirent.first_block).length
    @blksize = bat.block_size
  else
    @ftype = 'directory'
    @blocks = 0
    @blksize = 0
  end
  # a lot of these are bogus. ole file format has no analogs
  @nlink = 1
  @uid, @gid = 0, 0
  @dev, @rdev = 0, 0
  @ino = 0
  # need to add times - atime, mtime, ctime.
end

Public Instance Methods

directory?() click to toggle source
# File lib/ole/storage/file_system.rb, line 90
def directory?
  @dirent.dir?
end
file?() click to toggle source
# File lib/ole/storage/file_system.rb, line 86
def file?
  @dirent.file?
end
inspect() click to toggle source
# File lib/ole/storage/file_system.rb, line 98
def inspect
  pairs = (instance_variables - ['@dirent']).map do |n|
    "#{n[1..-1]}=#{instance_variable_get n}"
  end
  "#<#{self.class} #{pairs * ', '}>"
end
size?() click to toggle source
# File lib/ole/storage/file_system.rb, line 94
def size?
  size if file?
end