# class Chef::CookbookCollection

## Chef::CookbookCollection¶ ↑

This class is the consistent interface for a node to obtain its cookbooks by name.

This class is basically a glorified Hash, but since there are several ways this cookbook information is collected, (e.g. CookbookLoader for solo, hash of auto-vivified Cookbook objects for lazily-loaded remote cookbooks), it gets transformed into this.

### Public Class Methods

new(cookbook_versions={}) click to toggle source

The input is a mapping of cookbook name to CookbookVersion objects. We simply extract them

Calls superclass method Mash.new

    # File lib/chef/cookbook/cookbook_collection.rb, line 36
    def initialize(cookbook_versions={})
      super() do |hash, key|
        raise Chef::Exceptions::CookbookNotFound, "Cookbook #{key} not found. " <<
          "If you're loading #{key} from another cookbook, make sure you configure the dependency in your metadata"
      end
      cookbook_versions.each{ |cookbook_name, cookbook_version| self[cookbook_name] = cookbook_version }
    end