69: def add_resource(*resources)
70: resources.each do |resource|
71: unless resource.respond_to?(:ref)
72: raise ArgumentError, "Can only add objects that respond to :ref, not instances of %s" % resource.class
73: end
74: end.each { |resource| fail_unless_unique(resource) }.each do |resource|
75: ref = resource.ref
76:
77: @transient_resources << resource if applying?
78: @resource_table[ref] = resource
79:
80:
81:
82: if resource.respond_to?(:name) and resource.respond_to?(:title) and resource.name != resource.title
83: self.alias(resource, resource.name) if resource.isomorphic?
84: end
85:
86: resource.catalog = self if resource.respond_to?(:catalog=)
87:
88: add_vertex(resource)
89:
90: if @relationship_graph
91: @relationship_graph.add_vertex(resource)
92: end
93:
94: yield(resource) if block_given?
95: end
96: end