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)

Deprecated:
  • - 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

FIXME: yard with @yield
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)

Parameters:
  • 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