Method: CodeNode::SexpWalker#walk

Defined in:
lib/code_node/sexp_walker.rb

#walk(s = nil) ⇒ nil

Walk the tree rooted at the given sexp

Parameters:

  • (defaults to: nil)

    if nil will be the root sexp

Returns:

API:

  • developer



23
24
25
26
27
28
29
30
31
32
# File 'lib/code_node/sexp_walker.rb', line 23

def walk(s = nil)
  s ||= @root
  if [:module, :class].member?(s[0])
    add_node s
  elsif find_relations? && s[0] == :call && s.length >= 4 && [:extend, :include].member?(s[2]) && !@graph.scope.empty?
    add_relation s
  else
    walk_siblings s.slice(1..-1)
  end
end