Class: MemFs::File::Stat
- Inherits:
-
Object
- Object
- MemFs::File::Stat
- Extended by:
- Forwardable
- Includes:
- MemFs::FilesystemAccess
- Defined in:
- lib/memfs/file/stat.rb
Instance Attribute Summary collapse
-
#entry ⇒ Object
readonly
Returns the value of attribute entry.
Instance Method Summary collapse
- #blockdev? ⇒ Boolean
- #chardev? ⇒ Boolean
- #directory? ⇒ Boolean
- #executable? ⇒ Boolean
- #executable_real? ⇒ Boolean
- #file? ⇒ Boolean
- #ftype ⇒ Object
- #grpowned? ⇒ Boolean
-
#initialize(path, dereference = false) ⇒ Stat
constructor
A new instance of Stat.
- #owned? ⇒ Boolean
- #pipe? ⇒ Boolean
- #readable? ⇒ Boolean
- #readable_real? ⇒ Boolean
- #setgid? ⇒ Boolean
- #setuid? ⇒ Boolean
- #socket? ⇒ Boolean
- #sticky? ⇒ Boolean
- #symlink? ⇒ Boolean
- #world_readable? ⇒ Boolean
- #world_writable? ⇒ Boolean
- #writable? ⇒ Boolean
- #writable_real? ⇒ Boolean
- #zero? ⇒ Boolean
Methods included from MemFs::FilesystemAccess
Constructor Details
#initialize(path, dereference = false) ⇒ Stat
Returns a new instance of Stat.
55 56 57 58 |
# File 'lib/memfs/file/stat.rb', line 55 def initialize(path, dereference = false) entry = fs.find!(path) @entry = dereference ? entry.dereferenced : entry end |
Instance Attribute Details
#entry ⇒ Object (readonly)
Returns the value of attribute entry.
10 11 12 |
# File 'lib/memfs/file/stat.rb', line 10 def entry @entry end |
Instance Method Details
#blockdev? ⇒ Boolean
23 24 25 |
# File 'lib/memfs/file/stat.rb', line 23 def blockdev? !!entry.block_device end |
#chardev? ⇒ Boolean
27 28 29 |
# File 'lib/memfs/file/stat.rb', line 27 def chardev? !!entry.character_device end |
#directory? ⇒ Boolean
31 32 33 |
# File 'lib/memfs/file/stat.rb', line 31 def directory? entry.is_a?(Fake::Directory) end |
#executable? ⇒ Boolean
35 36 37 |
# File 'lib/memfs/file/stat.rb', line 35 def executable? user_executable? || group_executable? || !!world_executable? end |
#executable_real? ⇒ Boolean
39 40 41 |
# File 'lib/memfs/file/stat.rb', line 39 def executable_real? user_executable_real? || group_executable_real? || !!world_executable? end |
#file? ⇒ Boolean
43 44 45 |
# File 'lib/memfs/file/stat.rb', line 43 def file? entry.is_a?(Fake::File) end |
#ftype ⇒ Object
47 48 49 |
# File 'lib/memfs/file/stat.rb', line 47 def ftype entry.type end |
#grpowned? ⇒ Boolean
51 52 53 |
# File 'lib/memfs/file/stat.rb', line 51 def grpowned? gid == Process.egid end |
#owned? ⇒ Boolean
60 61 62 |
# File 'lib/memfs/file/stat.rb', line 60 def owned? uid == Process.euid end |
#pipe? ⇒ Boolean
64 65 66 |
# File 'lib/memfs/file/stat.rb', line 64 def pipe? false end |
#readable? ⇒ Boolean
68 69 70 |
# File 'lib/memfs/file/stat.rb', line 68 def readable? user_readable? || group_readable? || !!world_readable? end |
#readable_real? ⇒ Boolean
72 73 74 |
# File 'lib/memfs/file/stat.rb', line 72 def readable_real? user_readable_real? || group_readable_real? || !!world_readable? end |
#setgid? ⇒ Boolean
76 77 78 |
# File 'lib/memfs/file/stat.rb', line 76 def setgid? !!(entry.mode & Fake::Entry::SETGID).nonzero? end |
#setuid? ⇒ Boolean
80 81 82 |
# File 'lib/memfs/file/stat.rb', line 80 def setuid? !!(entry.mode & Fake::Entry::SETUID).nonzero? end |
#socket? ⇒ Boolean
84 85 86 |
# File 'lib/memfs/file/stat.rb', line 84 def socket? false end |
#sticky? ⇒ Boolean
88 89 90 |
# File 'lib/memfs/file/stat.rb', line 88 def sticky? !!(entry.mode & Fake::Entry::USTICK).nonzero? end |
#symlink? ⇒ Boolean
92 93 94 |
# File 'lib/memfs/file/stat.rb', line 92 def symlink? entry.is_a?(Fake::Symlink) end |
#world_readable? ⇒ Boolean
96 97 98 |
# File 'lib/memfs/file/stat.rb', line 96 def world_readable? entry.mode - 0100000 if (entry.mode & Fake::Entry::OREAD).nonzero? end |
#world_writable? ⇒ Boolean
100 101 102 |
# File 'lib/memfs/file/stat.rb', line 100 def world_writable? entry.mode - 0100000 if (entry.mode & Fake::Entry::OWRITE).nonzero? end |
#writable? ⇒ Boolean
104 105 106 |
# File 'lib/memfs/file/stat.rb', line 104 def writable? user_writable? || group_writable? || !!world_writable? end |
#writable_real? ⇒ Boolean
108 109 110 |
# File 'lib/memfs/file/stat.rb', line 108 def writable_real? user_writable_real? || group_writable_real? || !!world_writable? end |
#zero? ⇒ Boolean
112 113 114 |
# File 'lib/memfs/file/stat.rb', line 112 def zero? entry.content && entry.content.empty? end |