Я не знаю ни одного лишнего, но думаю, что путь Ruby, вероятно, будет включать передачу блока в функцию регулярного выражения. Вот тупой, который работает только для заглавных букв:
"ABCYZ".gsub(/\w/) { |a| a=="Z" ? "A" : a.succ }
=> "BCDZA"
Редактировать: ну, неважно, слушай Песто, он звучит умно.