Parent

Files

Class/Module Index [+]

Quicksearch

Chef::ChefFS::FileSystem::ChefRepositoryFileSystemCookbookEntry

Attributes

recursive[R]
ruby_only[R]

Public Class Methods

new(name, parent, file_path = nil, ruby_only = false, recursive = false) click to toggle source
# 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

Public Instance Methods

can_have_child?(name, is_dir) click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb, line 74
def write_pretty_json
  false
end

Protected Instance Methods

make_child(child_name) click to toggle source
# File lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb, line 80
def make_child(child_name)
  ChefRepositoryFileSystemCookbookEntry.new(child_name, self, nil, ruby_only, recursive)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.