# File lib/puppet/type.rb, line 1162
1162:     def to_edges
1163:       @value.collect do |reference|
1164:         reference.catalog = resource.catalog
1165: 
1166:         # Either of the two retrieval attempts could have returned
1167:         # nil.
1168:         unless related_resource = reference.resolve
1169:           self.fail "Could not retrieve dependency '#{reference}' of #{@resource.ref}"
1170:         end
1171: 
1172:         # Are we requiring them, or vice versa?  See the method docs
1173:         # for futher info on this.
1174:         if self.class.direction == :in
1175:           source = related_resource
1176:           target = @resource
1177:         else
1178:           source = @resource
1179:           target = related_resource
1180:         end
1181: 
1182:         if method = self.class.callback
1183:           subargs = {
1184:             :event => self.class.events,
1185:             :callback => method
1186:           }
1187:           self.debug("subscribes to #{related_resource.ref}")
1188:         else
1189:           # If there's no callback, there's no point in even adding
1190:           # a label.
1191:           subargs = nil
1192:           self.debug("requires #{related_resource.ref}")
1193:         end
1194: 
1195:         rel = Puppet::Relationship.new(source, target, subargs)
1196:       end
1197:     end