Sha256: 02120f92bb9a6ce71eec92e17c5584c3e67101768c48a1c483b526fc01b58efb
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
module SGF class Writer def stringify_tree_from root_node @indentation = 0 @sgf = "" write_new_branch_from root_node end # Takes a node and a filename as arguments def save(root_node, filename) stringify_tree_from root_node File.open(filename, 'w') { |f| f << @sgf } end private def write_tree_from node @sgf << "\n" << node.to_str(@indentation) decide_what_comes_after node end def decide_what_comes_after node if node.children.size == 1 then write_tree_from node.children[0] else write_new_branch_from node end end def write_new_branch_from node node.each_child do |child_node| open_branch write_tree_from child_node close_branch end end def open_branch @sgf << "\n" << whitespace << "(" @indentation += 2 end def close_branch @indentation -= 2 @indentation = (@indentation < 0) ? 0 : @indentation @sgf << "\n" << whitespace << ")" end def whitespace " " * @indentation end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
SgfParser-2.0.0 | lib/sgf/writer.rb |