class Chef::ResourceCollection::ResourceList
def self.from_hash(o)
def self.from_hash(o) collection = new resources = o["instance_vars"]["@resources"].map { |r| Chef::Resource.from_hash(r) } collection.instance_variable_set(:@resources, resources) collection end
def []=(index, resource)
- - can be removed when it is removed from resource_collection.rb
def []=(index, resource) @resources[index] = resource end
def all_resources
def all_resources @resources end
def delete(key)
def delete(key) raise ArgumentError, "Must pass a Chef::Resource or String to delete" unless key.is_a?(String) || key.is_a?(Chef::Resource) key = key.to_s ret = @resources.reject! { |r| r.to_s == key } if ret.nil? raise Chef::Exceptions::ResourceNotFound, "Cannot find a resource matching #{key} (did you define it first?)" end ret end
def execute_each_resource
def execute_each_resource @iterator = ResourceCollection::StepableIterator.for_collection(@resources) @iterator.each_with_index do |resource, idx| @insert_after_idx = idx yield resource end end
def initialize
def initialize @resources = [] @insert_after_idx = nil end
def insert(resource)
-
resource
(Chef::Resource
) -- The resource to insert
def insert(resource) is_chef_resource!(resource) if @insert_after_idx @resources.insert(@insert_after_idx += 1, resource) else @resources << resource end end