Class: ChefFS::FileSystem::MemoryDir
Instance Attribute Summary collapse
Attributes inherited from BaseFSObject
#name, #parent, #path
Instance Method Summary
collapse
Methods inherited from BaseFSDir
#dir?
#chef_object, #compare_to, #create_child, #delete, #dir?, #exists?, #path_for_printing, #read, #root, #write
Constructor Details
#initialize(name, parent) ⇒ MemoryDir
Returns a new instance of MemoryDir.
8
9
10
11
|
# File 'lib/chef_fs/file_system/memory_dir.rb', line 8
def initialize(name, parent)
super(name, parent)
@children = []
end
|
Instance Attribute Details
#children ⇒ Object
Returns the value of attribute children.
13
14
15
|
# File 'lib/chef_fs/file_system/memory_dir.rb', line 13
def children
@children
end
|
Instance Method Details
#add_child(child) ⇒ Object
19
20
21
|
# File 'lib/chef_fs/file_system/memory_dir.rb', line 19
def add_child(child)
@children.push(child)
end
|
#add_dir(path) ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'lib/chef_fs/file_system/memory_dir.rb', line 35
def add_dir(path)
path_parts = path.split('/')
dir = self
path_parts.each do |path_part|
subdir = dir.child(path_part)
if !subdir.exists?
subdir = MemoryDir.new(path_part, dir)
dir.add_child(subdir)
end
dir = subdir
end
dir
end
|
#add_file(path, value) ⇒ Object
27
28
29
30
31
32
33
|
# File 'lib/chef_fs/file_system/memory_dir.rb', line 27
def add_file(path, value)
path_parts = path.split('/')
dir = add_dir(path_parts[0..-2].join('/'))
file = MemoryFile.new(path_parts[-1], dir, value)
dir.add_child(file)
file
end
|
#can_have_child?(name, is_dir) ⇒ Boolean
23
24
25
|
# File 'lib/chef_fs/file_system/memory_dir.rb', line 23
def can_have_child?(name, is_dir)
root.cannot_be_in_regex ? (name !~ root.cannot_be_in_regex) : true
end
|
#child(name) ⇒ Object
15
16
17
|
# File 'lib/chef_fs/file_system/memory_dir.rb', line 15
def child(name)
@children.select { |child| child.name == name }.first || ChefFS::FileSystem::NonexistentFSObject.new(name, self)
end
|