Class: Randexp::Dictionary

Inherits:
Object
  • Object
show all
Defined in:
lib/randexp/dictionary.rb

Class Method Summary collapse

Class Method Details

.load_dictionaryObject



2
3
4
5
6
7
8
9
10
# File 'lib/randexp/dictionary.rb', line 2

def self.load_dictionary
  if File.exists?("/usr/share/dict/words")
    File.read("/usr/share/dict/words").split
  elsif File.exists?("/usr/dict/words")
    File.read("/usr/dict/words").split
  else
    raise "Words file not found. Check if it is installed in (/usr/share/dict/words or /usr/dict/words) "
  end
end

.words(options = {}) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/randexp/dictionary.rb', line 12

def self.words(options = {})
  if options.has_key?(:length)
    words_by_length[options[:length]]
  else
    @@words ||= load_dictionary
  end
end

.words_by_lengthObject



20
21
22
23
24
25
# File 'lib/randexp/dictionary.rb', line 20

def self.words_by_length
  @@words_by_length ||= begin
    hash = Hash.new {|h,k| h[k] = [] }
    words.inject(hash) {|h, w| h[w.size] << w; h }
  end
end