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