Вы хотите прочитать документацию по миксинам, которая позволяет обойти тот факт, что у Ruby есть только одно наследование. Включая данный модуль A в класс B, все методы модулей в A становятся доступными, как если бы они были частью класса B.
Это означает, что звонить turn_invisible
так же просто, как
def run_away
turn_invisible
end
Для flap_wings
, как в другом пространстве имен, это может быть так же просто, как:
def fly_away
Fly.flap_wings
end
но я не пытался завершить ваш код и "запустить" его.
Миксины объясняются здесь и там .