class VGen::VarWordGen
Public Class Methods
new( letter_gen: TypicalLetterGen.new, length: nil, size: (4..9), except: [] )
click to toggle source
# File lib/v_gen/var_word_gen.rb, line 5 def initialize( letter_gen: TypicalLetterGen.new, length: nil, size: (4..9), except: [] ) @length = length || size @letter_gen = letter_gen @except = except end
Public Instance Methods
call()
click to toggle source
# File lib/v_gen/var_word_gen.rb, line 16 def call() loop do word = Array.new( word_length, @letter_gen ).map(&:call).join if word.size > 2 if Random.new.rand(1..100) < 15 word[Random.new.rand(1..word.size - 2)] = "_" end end return word unless @except.include? word end end
Private Instance Methods
word_length()
click to toggle source
# File lib/v_gen/var_word_gen.rb, line 34 def word_length length = Random.new.rand(@length) if @length.is_a? Range length = @length if @length.is_a? Integer raise "length (size) can't be negative" if length < 0 length end