Module: Zombify

Defined in:
lib/zombify.rb

Defined Under Namespace

Modules: String

Class Method Summary collapse

Class Method Details

.alphabetObject



74
75
76
# File 'lib/zombify.rb', line 74

def self.alphabet
  %w(a e h u g k s r A E H U G K S R)
end

.talk(word_count = 30, min_length = 2, max_length = 13) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/zombify.rb', line 37

def self.talk(word_count = 30, min_length = 2, max_length = 13)
  content = ""

  word_count.times do
    letter_count = (min_length == max_length) ? min_length : (Kernel.rand(max_length) % (max_length - min_length)) + min_length
    word = Zombify::vocabulary.pick

    if word[:real?]
      
      content += word[:word][0,letter_count-1] + word[:word][-1,1] + " "
    else
      begin_letter = Kernel.rand(word[:word].size - letter_count)

      content += word[:word][begin_letter, letter_count] + " "
    end
  end

  content.strip
end

.undeadize(word, percent_change_letter = 50) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/zombify.rb', line 57

def self.undeadize(word, percent_change_letter = 50)
  number_letter_change = word.size * percent_change_letter / 100
  STDERR.puts number_letter_change
  
  content = word.dup
  
  number_letter_change.times do
    index = Kernel.rand(content.size)
    a = Zombify::alphabet.pick
    STDERR.puts "##{content}: #{index} -> #{a}"
    
    content[index] = a
  end
  
  content
end

.vocabularyObject



26
27
28
29
30
31
32
33
34
35
# File 'lib/zombify.rb', line 26

def self.vocabulary
  [
    { :word => "braiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiin", :real? => true },
    { :word => "eaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaat", :real? => true },
    { :word => "AahfaheuahAgAkajafaaaghahehbgrahaaaeuuuha", :real? => false },
    { :word => "auhueeeeeaaaAAeeuhahhggakaaa", :real? => false },
    { :word => "rrsshhchhhaaaaachshhh", :real? => false },
    { :word => "hhhhhhhheeaaaaahhaaschhhh", :real? => false }
  ]
end