U:RDoc::AnyMethod[iI"&each_strongly_connected_component:EFI"-TSort::each_strongly_connected_component;TT: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"LThe iterator version of the TSort.strongly_connected_components method.;To:RDoc::Markup::BlankLineo; ; [I"?The graph is represented by _each_node_ and _each_child_. ;TI"T_each_node_ should have +call+ method which yields for each node in the graph. ;TI"g_each_child_ should have +call+ method which takes a node argument and yields for each child node.;T@o:RDoc::Markup::Verbatim; [I"/g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]} ;TI"/each_node = lambda {|&b| g.each_key(&b) } ;TI"2each_child = lambda {|n, &b| g[n].each(&b) } ;TI"STSort.each_strongly_connected_component(each_node, each_child) {|scc| p scc } ;TI" #=> [4] ;TI" # [2] ;TI" # [3] ;TI" # [1] ;TI" ;TI",g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]} ;TI"/each_node = lambda {|&b| g.each_key(&b) } ;TI"2each_child = lambda {|n, &b| g[n].each(&b) } ;TI"STSort.each_strongly_connected_component(each_node, each_child) {|scc| p scc } ;TI" #=> [4] ;TI"# [2, 3] ;TI" # [1];T: @format0: @fileI"lib/tsort.rb;T:0@omit_headings_from_table_of_contents_below00I" nodes;F[I"(each_node, each_child);T@&FI" TSort;FcRDoc::NormalModule00