по сути изменений нет
проблема с автоматическим выбором кодировки добавил charset utf8
следуем принципам DRY убираем кучу повторяющегося кода за счет define_method
Забыл модификатор доступа