Method: Forester::Iterators#each_node

Defined in:
lib/forester/tree_node_ext/iterators.rb

#each_node(options = {}, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/forester/tree_node_ext/iterators.rb', line 10

def each_node(options = {}, &block)
  default_options = {
    traversal: :depth_first
  }
  options = default_options.merge(options)

  method_name = traversal_modes[options[:traversal]]

  if method_name
    send(method_name, &block)
  else
    available = traversal_modes.keys.join(', ')
    raise ArgumentError, "invalid traversal mode: #{options[:traversal]} (#{available})"
  end
end