DAS> Потихоньку разбираюсь в Sequel и обнаружил, что в его исходных кодах DAS>несколько классов объявляются сразу в нескольких модулях. Например:
DAS> — sequel/database.rb — Sequel::Database ....... DAS> — sequel/database/scheme_methods.rb — Sequel::Database ......
DAS> В Programming Ruby ничего не нашел про эту возможность.
DAS> Собственно, я правильно понимаю, что это определение одного и того же DAS>класса 'размазано' по нескольким классам? Зачем так сделано?
Возможность называется «открытые классы» (несколько определений класса с одинаковым именем дают один и тот же класс). Для «толстых» классов (с кучей возможностей) — это один из способов структурировать код (часть класса в одном файле, часть в другом). Более того, разные файлы можно подргужать в зависимости от внешних условий, из-за чего определение класса будет изменяться.