class NameGenerator::Main
Your one stop location for generating random names
Public Instance Methods
next_name(syllables = random_syllable_count)
click to toggle source
# File lib/name_generator/main.rb, line 14 def next_name(syllables = random_syllable_count) name = generate_name(syllables) name = generate_name(syllables) until sensible_name?(name) titlecase(name) end
Private Instance Methods
digraphs()
click to toggle source
# File lib/name_generator/main.rb, line 44 def digraphs %w[a ac ad ar as at ax ba bi bo ce ci co de di e ed en es ex fa fo ga ge gi gu ha he in is it ju ka ky la le le lo mi mo na ne ne ni no o ob oi ol on or or os ou pe pi po qt re ro sa se so ta te ti to tu ud um un us ut va ve ve za zi] end
generate_name(syllables)
click to toggle source
# File lib/name_generator/main.rb, line 27 def generate_name(syllables) name = (1...syllables).collect do digraphs.sample end name << (digraphs + trigraphs).sample name.join end
random_syllable_count()
click to toggle source
# File lib/name_generator/main.rb, line 40 def random_syllable_count [2, 3, 4].sample end
sensible_name?(name)
click to toggle source
# File lib/name_generator/main.rb, line 36 def sensible_name?(name) name != ~ /.*[aeiou]{3}.*/i # reject if at least three vowels in a row end
titlecase(name)
click to toggle source
# File lib/name_generator/main.rb, line 22 def titlecase(name) name[0] = name[0].upcase name end
trigraphs()
click to toggle source
# File lib/name_generator/main.rb, line 51 def trigraphs %w[cla clu cra cre dre dro pha phi pho sha she sta stu tha the thi thy tri] end