На Объектно-ориентированных языках распространено использовать полиморфизм для замены if's.
мне понравился этот Google Clean Code Talk, который покрывает предмет:
Чистые Переговоры по Коду - Наследование, Полиморфизм, & при Тестировании
КРАТКИЙ ОБЗОР
Является кодом, полным если операторы? Операторы переключения? У Вас есть тот же оператор переключения в различных местах? При внесении изменений, Вы вносите то же изменение в то же если/переключатель в нескольких местах? Вы когда-либо забывали тот?
Этот разговор обсудит подходы к использованию Объектно-ориентированных методов для удаления многих из тех условных выражений. Результатом является более чистый, более трудный, лучший разработанный код, который это легче протестировать, понять и поддержать.
Есть гем под названием activerecord-interbase-adapter , хотя я его не использовал.