# class 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
Calls superclass method

    # 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