# File lib/puppet/resource/catalog.rb, line 71
71:   def add_resource(*resources)
72:     resources.each do |resource|
73:       raise ArgumentError, "Can only add objects that respond to :ref, not instances of #{resource.class}" unless resource.respond_to?(:ref)
74:     end.each { |resource| fail_on_duplicate_type_and_title(resource) }.each do |resource|
75:       title_key = title_key_for_ref(resource.ref)
76: 
77:       @transient_resources << resource if applying?
78:       @resource_table[title_key] = resource
79: 
80:       # If the name and title differ, set up an alias
81: 
82:       if resource.respond_to?(:name) and resource.respond_to?(:title) and resource.respond_to?(:isomorphic?) and resource.name != resource.title
83:         self.alias(resource, resource.uniqueness_key) if resource.isomorphic?
84:       end
85: 
86:       resource.catalog = self if resource.respond_to?(:catalog=)
87: 
88:       add_vertex(resource)
89: 
90:       @relationship_graph.add_vertex(resource) if @relationship_graph
91: 
92:       yield(resource) if block_given?
93:     end
94:   end