diff options
Diffstat (limited to 'lib/chef/resource_collection.rb')
-rw-r--r-- | lib/chef/resource_collection.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/chef/resource_collection.rb b/lib/chef/resource_collection.rb index 8eaa2961c4..e450f4f19e 100644 --- a/lib/chef/resource_collection.rb +++ b/lib/chef/resource_collection.rb @@ -117,6 +117,16 @@ class Chef end end + def self.from_hash(o) + collection = new() + { "@resource_list" => "ResourceList", "@resource_set" => "ResourceSet" }.each_pair do |name, klass| + obj = Chef::ResourceCollection.const_get(klass).from_hash(o["instance_vars"].delete(name)) + collection.instance_variable_set(name.to_sym, obj) + end + collection.instance_variable_set(:@run_context, o["instance_vars"].delete("@run_context")) + collection + end + private def lookup_recursive(rc, key) |