Class: Chef::ChefFS::FileSystem::ChefRepositoryFileSystemCookbookEntry
- Inherits:
-
ChefRepositoryFileSystemEntry
- Object
- BaseFSObject
- BaseFSDir
- FileSystemEntry
- ChefRepositoryFileSystemEntry
- Chef::ChefFS::FileSystem::ChefRepositoryFileSystemCookbookEntry
- Defined in:
- lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#recursive ⇒ Object
readonly
Returns the value of attribute recursive.
-
#ruby_only ⇒ Object
readonly
Returns the value of attribute ruby_only.
Attributes inherited from FileSystemEntry
Attributes inherited from BaseFSObject
Instance Method Summary collapse
- #can_have_child?(name, is_dir) ⇒ Boolean
- #children ⇒ Object
-
#initialize(name, parent, file_path = nil, ruby_only = false, recursive = false) ⇒ ChefRepositoryFileSystemCookbookEntry
constructor
A new instance of ChefRepositoryFileSystemCookbookEntry.
- #write_pretty_json ⇒ Object
Methods inherited from ChefRepositoryFileSystemEntry
#chef_object, #data_handler, #minimize, #write, #write_pretty_json=
Methods inherited from FileSystemEntry
#create_child, #delete, #dir?, #exists?, #path_for_printing, #read, #write
Methods inherited from BaseFSDir
Methods inherited from BaseFSObject
#chef_object, #child, #compare_to, #create_child, #delete, #dir?, #exists?, #path_for_printing, #read, #root, #write
Constructor Details
#initialize(name, parent, file_path = nil, ruby_only = false, recursive = false) ⇒ ChefRepositoryFileSystemCookbookEntry
Returns a new instance of ChefRepositoryFileSystemCookbookEntry.
27 28 29 30 31 |
# File 'lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb', line 27 def initialize(name, parent, file_path = nil, ruby_only = false, recursive = false) super(name, parent, file_path) @ruby_only = ruby_only @recursive = recursive end |
Instance Attribute Details
#recursive ⇒ Object (readonly)
Returns the value of attribute recursive.
34 35 36 |
# File 'lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb', line 34 def recursive @recursive end |
#ruby_only ⇒ Object (readonly)
Returns the value of attribute ruby_only.
33 34 35 |
# File 'lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb', line 33 def ruby_only @ruby_only end |
Instance Method Details
#can_have_child?(name, is_dir) ⇒ Boolean
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb', line 47 def can_have_child?(name, is_dir) if is_dir return recursive && name != '.' && name != '..' elsif ruby_only return false if name[-3..-1] != '.rb' end # Check chefignore ignorer = parent begin if ignorer.is_a?(ChefRepositoryFileSystemCookbooksDir) # Grab the path from entry to child path_to_child = name child = self while child.parent != ignorer path_to_child = PathUtils.join(child.name, path_to_child) child = child.parent end # Check whether that relative path is ignored return !ignorer.chefignore || !ignorer.chefignore.ignored?(path_to_child) end ignorer = ignorer.parent end while ignorer true end |
#children ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb', line 36 def children begin Dir.entries(file_path).sort. select { |child_name| can_have_child?(child_name, File.directory?(File.join(file_path, child_name))) }. map { |child_name| make_child(child_name) }. select { |entry| !(entry.dir? && entry.children.size == 0) } rescue Errno::ENOENT raise Chef::ChefFS::FileSystem::NotFoundError.new(self, $!) end end |
#write_pretty_json ⇒ Object
74 75 76 |
# File 'lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb', line 74 def write_pretty_json false end |