Module: Cowsay

Defined in:
lib/cowsay.rb,
lib/cowsay/version.rb,
lib/cowsay/character.rb,
lib/cowsay/character/cow.rb,
lib/cowsay/character/ren.rb,
lib/cowsay/character/tux.rb,
lib/cowsay/character/base.rb,
lib/cowsay/character/bunny.rb,
lib/cowsay/character/frogs.rb,
lib/cowsay/character/kitty.rb,
lib/cowsay/character/koala.rb,
lib/cowsay/character/moose.rb,
lib/cowsay/character/sheep.rb,
lib/cowsay/character/beavis.rb,
lib/cowsay/character/cheese.rb,
lib/cowsay/character/daemon.rb,
lib/cowsay/character/dragon.rb,
lib/cowsay/character/stimpy.rb,
lib/cowsay/character/turkey.rb,
lib/cowsay/character/turtle.rb,
lib/cowsay/character/elephant.rb,
lib/cowsay/character/stegosaurus.rb,
lib/cowsay/character/ghostbusters.rb

Defined Under Namespace

Modules: Character

Constant Summary collapse

VERSION =
'0.3.0'

Class Method Summary collapse

Class Method Details

.character_classesObject



12
13
14
# File 'lib/cowsay.rb', line 12

def character_classes
  @character_classes ||= Character.constants.map { |c| c.to_sym } - [:Base, :Template]
end

.random_characterObject



7
8
9
10
# File 'lib/cowsay.rb', line 7

def random_character
  random_class = Character.const_get(character_classes[rand(character_classes.length)])
  random_class.new
end

.say(message, character) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/cowsay.rb', line 16

def say(message, character)
  character ||= 'cow'
  if character == 'random'
    random_character.say(message)
  else
    if character_classes.include? character.capitalize.to_sym
      Character.const_get(character.capitalize).say(message)
    else
      puts "No cow file found for #{character}. Use the -l flag to see a list of available cow files."
    end
  end
end