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
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