Module: MultiGit::Walkable

Included in:
Tree::Base, TreeEntry::Base
Defined in:
lib/multi_git/walkable.rb

Instance Method Summary collapse

Instance Method Details

#walk(mode = :pre, &block) ⇒ Object

works like each, but recursive

Parameters:

  • mode (:pre, :post, :leaves) (defaults to: :pre)

Raises:

  • (ArgumentError)


12
13
14
15
16
17
18
19
20
# File 'lib/multi_git/walkable.rb', line 12

def walk( mode = :pre, &block )
  raise ArgumentError, "Unknown walk mode #{mode.inspect}. Use either :pre, :post or :leaves" unless MODES.include? mode
  return to_enum(:walk, mode) unless block
  case(mode)
  when :pre   then walk_pre(&block)
  when :post  then walk_post(&block)
  when :leaves then walk_leaves(&block)
  end
end