Class: Chef::ResourceCollection
- Inherits:
-
Object
- Object
- Chef::ResourceCollection
- Extended by:
- Forwardable
- Includes:
- ResourceCollectionSerialization
- Defined in:
- lib/chef/resource_collection.rb,
lib/chef/resource_collection/resource_set.rb,
lib/chef/resource_collection/resource_list.rb,
lib/chef/resource_collection/stepable_iterator.rb,
lib/chef/resource_collection/resource_collection_serialization.rb
Defined Under Namespace
Modules: ResourceCollectionSerialization Classes: ResourceList, ResourceSet, StepableIterator
Instance Attribute Summary collapse
-
#run_context ⇒ Object
Returns the value of attribute run_context.
Instance Method Summary collapse
- #[]=(index, resource) ⇒ Object deprecated Deprecated.
- #find(*args) ⇒ Object
- #find_local(*args) ⇒ Object
-
#initialize(run_context = nil) ⇒ ResourceCollection
constructor
A new instance of ResourceCollection.
-
#insert(resource, opts = {}) ⇒ Object
(also: #<<)
This method is meant to be the 1 insert method necessary in the future.
- #lookup(key) ⇒ Object
- #lookup_local(key) ⇒ Object
- #push(*resources) ⇒ Object deprecated Deprecated.
Methods included from ResourceCollectionSerialization
included, #is_chef_resource!, #to_hash, #to_json
Constructor Details
#initialize(run_context = nil) ⇒ ResourceCollection
Returns a new instance of ResourceCollection.
40 41 42 43 44 |
# File 'lib/chef/resource_collection.rb', line 40 def initialize(run_context = nil) @run_context = run_context @resource_set = ResourceSet.new @resource_list = ResourceList.new end |
Instance Attribute Details
#run_context ⇒ Object
Returns the value of attribute run_context.
36 37 38 |
# File 'lib/chef/resource_collection.rb', line 36 def run_context @run_context end |
Instance Method Details
#[]=(index, resource) ⇒ Object
Deprecated.
63 64 65 66 67 |
# File 'lib/chef/resource_collection.rb', line 63 def []=(index, resource) Chef::Log.warn("`[]=` is deprecated, use `insert` (which only inserts at the end)") resource_list[index] = resource resource_set.insert_as(resource) end |
#find(*args) ⇒ Object
107 108 109 110 111 112 113 |
# File 'lib/chef/resource_collection.rb', line 107 def find(*args) if run_context.nil? find_local(*args) else find_recursive(run_context, *args) end end |
#find_local(*args) ⇒ Object
95 96 97 |
# File 'lib/chef/resource_collection.rb', line 95 def find_local(*args) resource_set.find(*args) end |
#insert(resource, opts = {}) ⇒ Object Also known as: <<
This method is meant to be the 1 insert method necessary in the future. It should support all known use cases
for writing into the ResourceCollection.
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/chef/resource_collection.rb', line 51 def insert(resource, opts = {}) resource_type ||= opts[:resource_type] # Would rather use Ruby 2.x syntax, but oh well instance_name ||= opts[:instance_name] resource_list.insert(resource) if !(resource_type.nil? && instance_name.nil?) resource_set.insert_as(resource, resource_type, instance_name) else resource_set.insert_as(resource) end end |
#lookup(key) ⇒ Object
99 100 101 102 103 104 105 |
# File 'lib/chef/resource_collection.rb', line 99 def lookup(key) if run_context.nil? lookup_local(key) else lookup_recursive(run_context, key) end end |
#lookup_local(key) ⇒ Object
91 92 93 |
# File 'lib/chef/resource_collection.rb', line 91 def lookup_local(key) resource_set.lookup(key) end |
#push(*resources) ⇒ Object
Deprecated.
70 71 72 73 74 75 76 |
# File 'lib/chef/resource_collection.rb', line 70 def push(*resources) Chef::Log.warn("`push` is deprecated, use `insert`") resources.flatten.each do |res| insert(res) end self end |