39 lines
786 B
Ruby
39 lines
786 B
Ruby
#!/usr/bin/env ruby
|
|
|
|
def print_verse(name)
|
|
first_letter_and_consonants_re = /^.[^aeiyou]*/i
|
|
|
|
full_name = name.capitalize # X
|
|
suffixed = case full_name[0] # Y
|
|
when 'A','E','I','O','U'
|
|
name.downcase
|
|
else
|
|
full_name.sub(first_letter_and_consonants_re, '')
|
|
end
|
|
|
|
b_name = "b#{suffixed}"
|
|
f_name = "f#{suffixed}"
|
|
m_name = "m#{suffixed}"
|
|
|
|
case full_name[0]
|
|
when 'B'
|
|
b_name = suffixed
|
|
when 'F'
|
|
f_name = suffixed
|
|
when 'M'
|
|
m_name = suffixed
|
|
end
|
|
|
|
puts <<~END_VERSE
|
|
#{full_name}, #{full_name}, bo-#{b_name}
|
|
Banana-fana fo-#{f_name}
|
|
Fee-fi-mo-#{m_name}
|
|
#{full_name}!
|
|
|
|
END_VERSE
|
|
end
|
|
|
|
%w[Gary Earl Billy Felix Mary Steve Chris Byron].each do |name|
|
|
print_verse name
|
|
end
|