Class: XFS::Directory
- Inherits:
-
Object
- Object
- XFS::Directory
- Defined in:
- lib/fs/xfs/directory.rb
Constant Summary collapse
- DOT =
1
- DOTDOT =
2
- ROOT_DIRECTORY =
128
Instance Attribute Summary collapse
-
#inode_number ⇒ Object
readonly
Returns the value of attribute inode_number.
-
#inode_object ⇒ Object
readonly
Returns the value of attribute inode_object.
Instance Method Summary collapse
- #find_entry(name, type = nil) ⇒ Object
- #glob_names ⇒ Object
-
#initialize(sb, inode_number = ROOT_DIRECTORY) ⇒ Directory
constructor
A new instance of Directory.
Constructor Details
#initialize(sb, inode_number = ROOT_DIRECTORY) ⇒ Directory
Returns a new instance of Directory.
22 23 24 25 26 27 28 29 |
# File 'lib/fs/xfs/directory.rb', line 22 def initialize(sb, inode_number = ROOT_DIRECTORY) raise "XFS::Directory: Nil superblock" if sb.nil? @sb = sb @inode_number = inode_number @inode_object = sb.get_inode(inode_number) raise "XFS::Directory: INODE=#{inode_number} is NOT a DIRECTORY" unless @inode_object.directory? @data = @inode_object.read end |
Instance Attribute Details
#inode_number ⇒ Object (readonly)
Returns the value of attribute inode_number.
20 21 22 |
# File 'lib/fs/xfs/directory.rb', line 20 def inode_number @inode_number end |
#inode_object ⇒ Object (readonly)
Returns the value of attribute inode_object.
20 21 22 |
# File 'lib/fs/xfs/directory.rb', line 20 def inode_object @inode_object end |
Instance Method Details
#find_entry(name, type = nil) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/fs/xfs/directory.rb', line 35 def find_entry(name, type = nil) return nil unless glob_entries.key?(name) glob_entries[name].each do |entry| @inode_object = @sb.get_inode(entry.inode) entry.file_type = @inode_object.file_mode_to_file_type return entry if (entry.file_type == type) || type.nil? end nil end |
#glob_names ⇒ Object
31 32 33 |
# File 'lib/fs/xfs/directory.rb', line 31 def glob_names @ent_names ||= glob_entries.keys.compact.sort end |