4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/core/node_processing.rb', line 4
def flatten(node, leaves = [])
if( !node.respond_to?( :elements) ||
node.elements.nil? ||
node.elements.empty? ||
(node.is_a?( TextNode ) && !node.has_variables?)||
node.is_a?( HerbStringVariable ) ||
node.is_a?( PluralizeNode ) ||
( node.is_a?(NonTextNode) && node.can_be_combined? ) )
leaves << node if( !node.text_value.empty? )
leaves
else
node.elements.each do |sub_node|
flatten( sub_node, leaves )
end
leaves
end
end
|