# class Chef::ChefFS::FileSystem::ChefRepositoryFileSystemRootDir

### Attributes

child_paths[R]
write_pretty_json[RW]

### Public Class Methods

new(child_paths) click to toggle source
Calls superclass method Chef::ChefFS::FileSystem::BaseFSDir.new

    # File lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb, line 37
    def initialize(child_paths)
      super("", nil)
      @child_paths = child_paths
    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_root_dir.rb, line 50
    def can_have_child?(name, is_dir)
      child_paths.has_key?(name) && is_dir
    end

children() click to toggle source

    # File lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb, line 46
    def children
      @children ||= child_paths.keys.sort.map { |name| make_child_entry(name) }.select { |child| !child.nil? }
    end

create_child(name, file_contents = nil) click to toggle source

    # File lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb, line 54
    def create_child(name, file_contents = nil)
      child_paths[name].each do |path|
        begin
          Dir.mkdir(path)
        rescue Errno::EEXIST
        end
      end
      child = make_child_entry(name)
      @children = nil
      child
    end

fs_description() click to toggle source

Used to print out the filesystem

    # File lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb, line 71
    def fs_description
      repo_path = File.dirname(child_paths['cookbooks'][0])
      result = "repository at #{repo_path}\n"
      if Chef::Config[:versioned_cookbooks]
        result << "  Multiple versions per cookbook\n"
      else
        result << "  One version per cookbook\n"
      end
      child_paths.each_pair do |name, paths|
        if paths.any? { |path| File.dirname(path) != repo_path }
          result << "  #{name} at #{paths.join(', ')}\n"
        end
      end
      result
    end

json_class() click to toggle source

    # File lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb, line 66
    def json_class
      nil
    end