Самый лучший способ сделать это в Ruby - это case
и регулярные выражения:
def family_member_text
name = @fm1.split(/ |\_|\-/).map(&:capitalize).join(" ")
case (@fm1)
when /\s/
"#{name} is a puppy!"
when /schnider/i
"#{name} is Schnider's member."
else
"#{name} is a guest."
end
end
Где этот метод возвращает текст, который вы можете, но не обязаны передавать на puts
, чтоприводит к более модульной конструкции кода.Помните ваши принципы SOLID .
Обратите внимание, что я также применил здесь DRY (не повторяйте себя) для очистки кода канонизации дублированного имени.Это также, вероятно, неправильно, потому что такие имена, как «Леонардо да Винчи», не имеют заглавной буквы «Да».