Module: TireSwing::NodeDefinition::NodeFilters

Defined in:
lib/tire_swing/node_definition.rb

Class Method Summary collapse

Class Method Details

.filter(node, kinds) ⇒ Object



178
179
180
181
182
183
184
# File 'lib/tire_swing/node_definition.rb', line 178

def self.filter(node, kinds)
  nodes = []
  children = node.respond_to?(:elements) ? (node.elements || []) : []
  nodes << node if node.respond_to?(:node_to_build) && kinds.include?(node.node_to_build)
  children.each { |child| nodes.push *filter(child, kinds) }
  nodes
end