class GabTreeProcessor
Attributes
gab_tree[R]
Public Class Methods
new(gab_tree)
click to toggle source
# File lib/promper/gab_tree_processor.rb, line 4 def initialize(gab_tree) # Root node of gab_tree @gab_tree = gab_tree end
Public Instance Methods
check_leaves()
click to toggle source
# File lib/promper/gab_tree_processor.rb, line 12 def check_leaves # This seems to duplicate the GabTree class code. gab_tree.each_leaf end
content_from_node_path(node_path)
click to toggle source
# File lib/promper/gab_tree_processor.rb, line 46 def content_from_node_path(node_path) node_path.map do |node| node.content[0] end end
conv_node_parents_path_to_parents_content(node_parents_path)
click to toggle source
# File lib/promper/gab_tree_processor.rb, line 40 def conv_node_parents_path_to_parents_content(node_parents_path) node_parents_path.map do |node_path| content_from_node_path(node_path) end end
get_leaf_content(nodes)
click to toggle source
# File lib/promper/gab_tree_processor.rb, line 52 def get_leaf_content(nodes) nodes = nodes.select {|node| node.content[2][:state] == :completed } nodes.map do |node| node.content[0] end end
leaf_phoneme_array_from_completed_tree()
click to toggle source
# File lib/promper/gab_tree_processor.rb, line 16 def leaf_phoneme_array_from_completed_tree nodes = check_leaves() node_parents_path = node_parents_path_from_nodes(nodes) parents_content = conv_node_parents_path_to_parents_content(node_parents_path) leafs_content = get_leaf_content(nodes) zipped_content = leafs_content.zip(parents_content) massage_zipped_content(zipped_content) end
massage_zipped_content(zipped_content)
click to toggle source
# File lib/promper/gab_tree_processor.rb, line 59 def massage_zipped_content(zipped_content) flattened_matches = zipped_content.map do |match| match.flatten end flattened_matches.map do |match| match.pop match.reverse end end
node_parents_path_from_nodes(nodes)
click to toggle source
# File lib/promper/gab_tree_processor.rb, line 33 def node_parents_path_from_nodes(nodes) nodes = nodes.select {|node| node.content[2][:state] == :completed } nodes.map do |node| parents = node.parentage end end
only_keep_completed_nodes(nodes)
click to toggle source
# File lib/promper/gab_tree_processor.rb, line 25 def only_keep_completed_nodes(nodes) nodes.each do |node| if node.content[2][:state] != :completed nodes.delete(node) end end end
result()
click to toggle source
# File lib/promper/gab_tree_processor.rb, line 8 def result leaf_phoneme_array_from_completed_tree end