Добро пожаловать в переполнение стека!
Причина, по которой это не сработало для вас, заключается в том, что если вы изучите массив alphabet
, то на самом деле это будут только заглавные буквы. Таким образом, в вашем переводе вы переводите только символы верхнего регистра. Если вы вместо этого измените
alphabet=("a".."z").to_a
, который будет переводиться для строчных букв.
Если вы хотите сделать и то, и другое, то я бы предложил создать два "алфавита", один с прописными буквами, а другой - с строчными буквами, а затем дважды применить перевод к строке, один с прописными буквами, а другой с строчными буквами.