След разглеждане на кода на другите, осъзнах, че имам една грешка, пък и не само аз де :D, при извеждането не трябва да има нито puts, нито return.Извеждането става чрез irb...
Кратък извод от предизвикателството
- Тестовете очакват стойност, която се връща от функцията. На практика puts принти стойността на низа в конзолата. Функцията няма нужда от return, защото, дали си написал 'return string', 'string' или просто си оставил на последния ред последната операция, която си извършил със string-а (string.upcase например), функцията винаги ще върне string. 
- Всъщност, не трябва да има никакво извеждане. "Извеждане" означава да се изпише текст на екрана, така да се каже, или, още по-коректно, да се запишат едни байтове данни в един файлов дескриптор ( - STDOUT).- В това конкретно предизвикателство, не искаме да пишете на - STDOUT, т.е. не искаме нищо да се извежда на екрана. Не искаме да се ползват функциите- putsили- print. Искаме просто вашата функция да върне стойност, а не да я изведе. Върнатата стойност може да се използва от ползвателя на функцията по начин, по който той прецени. Може да си я запише в променлива, да я запише в някаква база данни, или пък нищо да не направи с нея. Може и да я изведе на екрана, но може и да не я изведе.- Самата функция не трябва да пише по екрана. - irbе изключение. То взима стойността, която дадена функция/код връщат и я извежда на екрана, за да я види програмистът. Реално, в нашите тестове не се ползва- irb, тъй като то си е отделен инструмент, следователно никъде не става дума за извеждане.- Радвам се, че първото предизвикателство става повод да си говорим за това и да научите тези неща :) Може би ще го споменем и на лекцията. - EDIT: Явор ме изпревари :) 
Трябва да сте влезли в системата, за да може да отговаряте на теми.
