Также имейте в виду, чтобы не быть отметенными в OO (, видят блог ), и всегда объекты модели на основе требуемого поведения, если бы Вы разрабатывали приложение, где единственное поведение, которого Вы потребовали, было родовым названием и разновидностями для животного тогда, то Вам только был бы нужен один класс Животное со свойством для имени вместо миллионов классов для каждого возможного животного в мире.
Возможно, вы захотите найти один из способов добавления авививификации к рубиновым хэшам. Существует несколько подходов, упомянутых в следующих потоках stackoverflow: