# class Chef::ChefFS::FileSystem::MultiplexedDir

### Attributes

multiplexed_dirs[R]

### Public Class Methods

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

    # File lib/chef/chef_fs/file_system/multiplexed_dir.rb, line 8
    def initialize(*multiplexed_dirs)
      @multiplexed_dirs = multiplexed_dirs.flatten
      super(@multiplexed_dirs[0].name, @multiplexed_dirs[0].parent)
    end

### Public Instance Methods

can_have_child?(name, is_dir) click to toggle source

    # File lib/chef/chef_fs/file_system/multiplexed_dir.rb, line 38
    def can_have_child?(name, is_dir)
      write_dir.can_have_child?(name, is_dir)
    end

children() click to toggle source

    # File lib/chef/chef_fs/file_system/multiplexed_dir.rb, line 19
    def children
      begin
        result = []
        seen = {}
        # If multiple things have the same name, the first one wins.
        multiplexed_dirs.each do |dir|
          dir.children.each do |child|
            if seen[child.name]
              Chef::Log.warn("Child with name '#{child.name}' found in multiple directories: #{seen[child.name].path_for_printing} and #{child.path_for_printing}")
            else
              result << child
              seen[child.name] = child
            end
          end
        end
        result
      end
    end

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

    # File lib/chef/chef_fs/file_system/multiplexed_dir.rb, line 42
    def create_child(name, file_contents = nil)
      @children = nil
      write_dir.create_child(name, file_contents)
    end

write_dir() click to toggle source

    # File lib/chef/chef_fs/file_system/multiplexed_dir.rb, line 15
    def write_dir
      multiplexed_dirs[0]
    end