С точки зрения руби оба скрипта в похожем стиле, и обо содержат длинющий метод, который делает все. Этого стоит избегать. Для прерывания слайда оба использовали один и тот же прием, но вынести кнопку прерывания в настройки - забыли
Оба не сделали текст, который может отображаться поверх слайда, а жаль.
Эльф, в руби не используют цикл for, для этого есть итератор each. Так же, на мой взгляд, если определяешь метод в Object - вся логика должна все равно быть включена в отдельный класс \ модуль, а этот метод - выступать как удобный интерфейс. С точки зрения юзабилити - ты опираешься на два индекса во время вызова слайдов. Это означает, что если у тебя в двух слайдшоу будут одни и те же картинки, то их придеться дублировать.
Стрелок, мне больше понравилась твоя идея настроить слайды через массивы, однако сами массивы выглядят немного магически, руби позволяет такие настройки делать более красиво. Так же хорошо, что ты подумал про звук, это важно. Вместо loop лучше использовать while, вместо include через singletone class лучше использовать extend.
В общем и целом отдаю голос стрелку из-за поддержки звука и настройки через массивы.