Class: WordScramble::Descrambler

Inherits:
Object
  • Object
show all
Defined in:
lib/word_scramble/descrambler.rb

Instance Method Summary collapse

Constructor Details

#initialize(scrambled_word) ⇒ Descrambler

Returns a new instance of Descrambler.



3
4
5
6
# File 'lib/word_scramble/descrambler.rb', line 3

def initialize(scrambled_word)
  @scrambled_word = WordScramble::ScrambledWord.new(scrambled_word)
  @matching_words = []
end

Instance Method Details

#descrambleObject



15
16
17
18
19
20
21
22
23
# File 'lib/word_scramble/descrambler.rb', line 15

def descramble
  same_length_words.each do |word|
    if @scrambled_word.can_make?(word)
      @matching_words.push(word)
    end
  end
  @matching_words.sort! { |a,b| b.length <=> a.length }
  @already_descrambled = true
end

#matching_wordsObject



8
9
10
11
12
13
# File 'lib/word_scramble/descrambler.rb', line 8

def matching_words
  unless @already_descrambled
    descramble
  end
  @matching_words
end

#same_length_wordsObject



25
26
27
28
29
30
31
# File 'lib/word_scramble/descrambler.rb', line 25

def same_length_words
  if WordScramble::DICTIONARY[@scrambled_word.length].nil?
    []
  else
    WordScramble::DICTIONARY[@scrambled_word.length]
  end
end