def print_sub_clusters_and_members(clusters, idx = "0", indent = 1)
padding = " " * (indent + 1)
opadding = " " * indent
clusters.sort.each do |cluster_name, members|
next if cluster_name == DEFAULTCLUSTER
puts "", opadding + "subgraph cluster#{ idx } { "
puts padding + "label = \"#{cluster_name}\";"
subs, mems = members.partition{ |m| m.is_a?(Hash) }
print_cluster_members(mems, padding)
tidx = idx + "_a"
subs.each do |member|
puts ""
print_sub_clusters_and_members(member, tidx , indent + 1)
tidx = tidx.succ
end
puts "", opadding + "}", ""
idx = idx.succ
end
idx
end