# File lib/puppet/type.rb, line 1301
1301:         def to_edges
1302:             @value.collect do |reference|
1303:                 reference.catalog = resource.catalog
1304: 
1305:                 # Either of the two retrieval attempts could have returned
1306:                 # nil.
1307:                 unless related_resource = reference.resolve
1308:                     self.fail "Could not retrieve dependency '%s' of %s" % [reference, @resource.ref]
1309:                 end
1310: 
1311:                 # Are we requiring them, or vice versa?  See the method docs
1312:                 # for futher info on this.
1313:                 if self.class.direction == :in
1314:                     source = related_resource
1315:                     target = @resource
1316:                 else
1317:                     source = @resource
1318:                     target = related_resource
1319:                 end
1320: 
1321:                 if method = self.class.callback
1322:                     subargs = {
1323:                         :event => self.class.events,
1324:                         :callback => method
1325:                     }
1326:                     self.debug("subscribes to %s" % [related_resource.ref])
1327:                 else
1328:                     # If there's no callback, there's no point in even adding
1329:                     # a label.
1330:                     subargs = nil
1331:                     self.debug("requires %s" % [related_resource.ref])
1332:                 end
1333: 
1334:                 rel = Puppet::Relationship.new(source, target, subargs)
1335:             end
1336:         end