Module: VSql::Helpers

Defined in:
lib/vsql_node_extensions.rb

Class Method Summary collapse

Class Method Details

.find_elements(node, klass, skip_klass = nil) ⇒ Object



114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/vsql_node_extensions.rb', line 114

def self.find_elements(node, klass, skip_klass = nil)
  results = []
  return results unless node.elements
  node.elements.each do |e|
    case
    when e.is_a?(klass)
      results << e
      results.concat(find_elements(e, klass, skip_klass))
    when skip_klass && e.is_a?(skip_klass)
      next
    else
      results.concat(find_elements(e, klass, skip_klass))
    end
  end
  results
end