class MemFs::File::Stat

Attributes

entry[R]

Public Class Methods

new(path, dereference = false) click to toggle source
# File lib/memfs/file/stat.rb, line 55
def initialize(path, dereference = false)
  entry = fs.find!(path)
  @entry = dereference ? entry.dereferenced : entry
end

Public Instance Methods

blockdev?() click to toggle source
# File lib/memfs/file/stat.rb, line 23
def blockdev?
  !!entry.block_device
end
chardev?() click to toggle source
# File lib/memfs/file/stat.rb, line 27
def chardev?
  !!entry.character_device
end
directory?() click to toggle source
# File lib/memfs/file/stat.rb, line 31
def directory?
  entry.is_a?(Fake::Directory)
end
executable?() click to toggle source
# File lib/memfs/file/stat.rb, line 35
def executable?
  user_executable? || group_executable? || !!world_executable?
end
executable_real?() click to toggle source
# File lib/memfs/file/stat.rb, line 39
def executable_real?
  user_executable_real? || group_executable_real? || !!world_executable?
end
file?() click to toggle source
# File lib/memfs/file/stat.rb, line 43
def file?
  entry.is_a?(Fake::File)
end
ftype() click to toggle source
# File lib/memfs/file/stat.rb, line 47
def ftype
  entry.type
end
grpowned?() click to toggle source
# File lib/memfs/file/stat.rb, line 51
def grpowned?
  gid == Process.egid
end
owned?() click to toggle source
# File lib/memfs/file/stat.rb, line 60
def owned?
  uid == Process.euid
end
pipe?() click to toggle source
# File lib/memfs/file/stat.rb, line 64
def pipe?
  false
end
readable?() click to toggle source
# File lib/memfs/file/stat.rb, line 68
def readable?
  user_readable? || group_readable? || !!world_readable?
end
readable_real?() click to toggle source
# File lib/memfs/file/stat.rb, line 72
def readable_real?
  user_readable_real? || group_readable_real? || !!world_readable?
end
setgid?() click to toggle source
# File lib/memfs/file/stat.rb, line 76
def setgid?
  !!(entry.mode & Fake::Entry::SETGID).nonzero?
end
setuid?() click to toggle source
# File lib/memfs/file/stat.rb, line 80
def setuid?
  !!(entry.mode & Fake::Entry::SETUID).nonzero?
end
socket?() click to toggle source
# File lib/memfs/file/stat.rb, line 84
def socket?
  false
end
sticky?() click to toggle source
# File lib/memfs/file/stat.rb, line 88
def sticky?
  !!(entry.mode & Fake::Entry::USTICK).nonzero?
end
world_readable?() click to toggle source
# File lib/memfs/file/stat.rb, line 96
def world_readable?
  entry.mode - 0100000 if (entry.mode & Fake::Entry::OREAD).nonzero?
end
world_writable?() click to toggle source
# File lib/memfs/file/stat.rb, line 100
def world_writable?
  entry.mode - 0100000 if (entry.mode & Fake::Entry::OWRITE).nonzero?
end
writable?() click to toggle source
# File lib/memfs/file/stat.rb, line 104
def writable?
  user_writable? || group_writable? || !!world_writable?
end
writable_real?() click to toggle source
# File lib/memfs/file/stat.rb, line 108
def writable_real?
  user_writable_real? || group_writable_real? || !!world_writable?
end
zero?() click to toggle source
# File lib/memfs/file/stat.rb, line 112
def zero?
  !!(entry.content && entry.content.empty?)
end

Private Instance Methods

group_executable?() click to toggle source
# File lib/memfs/file/stat.rb, line 118
def group_executable?
  grpowned? && !!(mode & Fake::Entry::GEXEC).nonzero?
end
group_executable_real?() click to toggle source
# File lib/memfs/file/stat.rb, line 122
def group_executable_real?
  Process.gid == gid && !!(mode & Fake::Entry::GEXEC).nonzero?
end
group_readable?() click to toggle source
# File lib/memfs/file/stat.rb, line 126
def group_readable?
  grpowned? && !!(mode & Fake::Entry::GREAD).nonzero?
end
group_readable_real?() click to toggle source
# File lib/memfs/file/stat.rb, line 130
def group_readable_real?
  Process.gid == gid && !!(mode & Fake::Entry::GREAD).nonzero?
end
group_writable?() click to toggle source
# File lib/memfs/file/stat.rb, line 134
def group_writable?
  grpowned? && !!(mode & Fake::Entry::GWRITE).nonzero?
end
group_writable_real?() click to toggle source
# File lib/memfs/file/stat.rb, line 138
def group_writable_real?
  Process.gid == gid && !!(mode & Fake::Entry::GWRITE).nonzero?
end
user_executable?() click to toggle source
# File lib/memfs/file/stat.rb, line 142
def user_executable?
  owned? && !!(mode & Fake::Entry::UEXEC).nonzero?
end
user_executable_real?() click to toggle source
# File lib/memfs/file/stat.rb, line 146
def user_executable_real?
  Process.uid == uid && !!(mode & Fake::Entry::UEXEC).nonzero?
end
user_readable?() click to toggle source
# File lib/memfs/file/stat.rb, line 150
def user_readable?
  owned? && !!(mode & Fake::Entry::UREAD).nonzero?
end
user_readable_real?() click to toggle source
# File lib/memfs/file/stat.rb, line 154
def user_readable_real?
  Process.uid == uid && !!(mode & Fake::Entry::UREAD).nonzero?
end
user_writable?() click to toggle source
# File lib/memfs/file/stat.rb, line 158
def user_writable?
  owned? && !!(mode & Fake::Entry::UWRITE).nonzero?
end
user_writable_real?() click to toggle source
# File lib/memfs/file/stat.rb, line 162
def user_writable_real?
  Process.uid == uid && !!(mode & Fake::Entry::UWRITE).nonzero?
end
world_executable?() click to toggle source
# File lib/memfs/file/stat.rb, line 166
def world_executable?
  entry.mode - 0100000 if (entry.mode & Fake::Entry::OEXEC).nonzero?
end