Module: RubyAnagrams::Enumerable

Includes:
Enumerable
Included in:
Node
Defined in:
lib/anagrams/enumerable.rb

Overview

Provides enumerable behavior to the trie data structure.

Author:

  • Connor Lay

Instance Method Summary collapse

Instance Method Details

#each(&block) ⇒ Enumerator

Calls a block for each word in the trie data strucutre. If no block is given, an Enumerator is returned.

Returns:

  • (Enumerator)

    the enumerator for the words in the trie data structure.



11
12
13
14
15
16
17
# File 'lib/anagrams/enumerable.rb', line 11

def each &block
  enumerator = Enumerator.new do |yielder|
    yielder << word if terminal?
    @children.each_value { |child| child.each { |word| yielder << word } }
  end
  block.nil? ? enumerator : enumerator.each(&block)
end