Модуль в ruby - это область видимости / пространства имен, которую можно добавить к другим вещам. Они используются для двух разных, но связанных целей: связать кучу связанных вещей (констант, классов и т. Д.), Которые принадлежат друг другу, и затем добавить их в другую область (например, множественное наследование).
Например, есть модули, называемые такими вещами, как Comparable и Enumerable и т. Д., Которые инкапсулируют функциональность, которую вы ожидаете получить, применяя эти прилагательные. Предоставляя базовое определение (метод, который сравнивает два экземпляра для Comparable и итератор для Enumerable), вы можете импортировать модуль и найти себя с полным интерфейсом.
С другой стороны, есть такие модули, как Net, которые вы редко включаете в класс, но которые предоставляют набор функций, таких как Net :: HTTP, Net :: FTP, Net :: SMTP и т. Д.
Посередине находятся такие вещи, как математика и процесс, которые можно использовать так или иначе.
- MarkusQ