class FakeFS::FakeInode

Inode class

def assign_inode_num

def assign_inode_num
  unless (@inode_num = self.class.freed_inodes.shift)
    @inode_num = self.class.next_inode_num
    self.class.next_inode_num += 1
  end
end

def clear_inode_info_for_tests

When called, it will reset the current inode information of the FakeFS
This method should only be used for tests
def clear_inode_info_for_tests
  self.freed_inodes = []
  self.next_inode_num = 0
end

def clone

def clone
  clone = super
  clone.content = content.dup
  clone.assign_inode_num
  clone
end

def free_inode_num

def free_inode_num
  self.class.freed_inodes.push(@inode_num)
end

def initialize(file_owner)

def initialize(file_owner)
  @content = ''.encode(Encoding.default_external)
  @links = [file_owner]
  assign_inode_num
end

def link(file)

def link(file)
  links << file unless links.include?(file)
  file.inode = self
end

def unlink(file)

def unlink(file)
  links.delete(file)
end