Class: Ext3::Directory

Inherits:
Object
  • Object
show all
Defined in:
lib/fs/ext3/directory.rb

Constant Summary collapse

ROOT_DIRECTORY =
2

Instance Method Summary collapse

Constructor Details

#initialize(sb, inodeNum = ROOT_DIRECTORY) ⇒ Directory

Returns a new instance of Directory.



8
9
10
11
12
13
14
# File 'lib/fs/ext3/directory.rb', line 8

def initialize(sb, inodeNum = ROOT_DIRECTORY)
  raise "Ext3::Directory.initialize: Nil superblock"   if sb.nil?
  raise "Ext3::Directory.initialize: Nil inode number" if inodeNum.nil?
  @sb = sb; @inodeNum = inodeNum
  @inodeObj = sb.getInode(inodeNum)
  @data = FileData.new(@inodeObj, @sb).read
end

Instance Method Details

#findEntry(name, type = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/fs/ext3/directory.rb', line 20

def findEntry(name, type = nil)
  return nil unless globEntries.key?(name)

  newEnt = @sb.isNewDirEnt?
  globEntries[name].each do |ent|
    ent.fileType = @sb.getInode(ent.inode).fileModeToFileType unless newEnt
    return ent if ent.fileType == type || type.nil?
  end
  nil
end

#globNamesObject



16
17
18
# File 'lib/fs/ext3/directory.rb', line 16

def globNames
  @ent_names ||= globEntries.keys.compact.sort
end