Проблема с вашим кодом заключается в том, что вы звоните puts
здесь и там.
Код уже вызывает puts
в print_all_song_names
, и после того, как вы позвоните puts Song.print_all_song_names
, что примерно означает вызов метода и выводят возвращенное значение.
each
возвращает получателя, что означает print_all_song_names
возвращает значение переменной класса @@all
. Который печатается снова.
Чтобы исправить это, просто не вызывайте puts
в последней строке; Song.print_all_song_names
уже распечатывает все необходимое.
Song.print_all_song_names # voilà