Class: LetterPressIsNotAsGoodAsBoggle::BoardTraverser
- Inherits:
-
Object
- Object
- LetterPressIsNotAsGoodAsBoggle::BoardTraverser
- Defined in:
- lib/letter_press_is_not_as_good_as_boggle/board_traverser.rb
Instance Attribute Summary collapse
-
#characters ⇒ Object
Returns the value of attribute characters.
Instance Method Summary collapse
- #each_with_recur(&block) ⇒ Object
-
#initialize(characters) ⇒ BoardTraverser
constructor
A new instance of BoardTraverser.
- #recursive_each_with_recur(current, path, block) ⇒ Object
Constructor Details
#initialize(characters) ⇒ BoardTraverser
Returns a new instance of BoardTraverser.
6 7 8 |
# File 'lib/letter_press_is_not_as_good_as_boggle/board_traverser.rb', line 6 def initialize(characters) self.characters = characters end |
Instance Attribute Details
#characters ⇒ Object
Returns the value of attribute characters.
4 5 6 |
# File 'lib/letter_press_is_not_as_good_as_boggle/board_traverser.rb', line 4 def characters @characters end |
Instance Method Details
#each_with_recur(&block) ⇒ Object
10 11 12 |
# File 'lib/letter_press_is_not_as_good_as_boggle/board_traverser.rb', line 10 def each_with_recur(&block) recursive_each_with_recur "", [], block end |
#recursive_each_with_recur(current, path, block) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/letter_press_is_not_as_good_as_boggle/board_traverser.rb', line 14 def recursive_each_with_recur(current, path, block) characters.each do |char| next if path.any? { |path_char| path_char.equal? char } new_current = current + char path.push char recurser = lambda { recursive_each_with_recur new_current, path, block } block.call new_current, char, recurser path.pop end end |