33: def queue_events(resource, events)
34: @events += events
35:
36:
37:
38: events.inject({}) do |collection, event|
39: collection[event.name] ||= []
40: collection[event.name] << event
41: collection
42: end.collect do |name, list|
43:
44:
45: event = list[0]
46:
47:
48:
49:
50: relationship_graph.matching_edges(event, resource).each do |edge|
51: next unless method = edge.callback
52: next unless edge.target.respond_to?(method)
53:
54: queue_events_for_resource(resource, edge.target, method, list)
55: end
56:
57: queue_events_for_resource(resource, resource, :refresh, [event]) if resource.self_refresh? and ! resource.deleting?
58: end
59: end