В Ruby термін “модуль” (module) використовується для групування методів, класів та констант в один “контейнер”. Модулі надають простий механізм для організації та управління кодом, а також для реалізації механізму множинного успадкування.
Основні особливості модулів в Ruby:
Простори імен \ Namespace
Модулі дозволяють вам створювати простори імен, які допомагають уникнути конфліктів імен між різними частинами вашого коду.
Множинне успадкування
Модулі можуть включатися в інші класи або модулі, що надає можливість використовувати їхні методи та константи. Це надає спосіб реюзу коду без використання єдиного цільового класу для успадкування.
Методи та константи
В модулі можна визначати як методи, так і константи, які можуть бути викликані або використовувані в інших частинах коду.
Включення (mix-in)
Класи або інші модулі можуть “включати” (include) модуль, отримуючи таким чином доступ до його методів та констант. Це називається міксіном і дозволяє легко додавати функціональність до класів.
Наприклад, визначення простого модуля у Ruby може виглядати так:
module MyModule
def my_method
puts "This is a method in MyModule"
end
MY_CONSTANT = 42
end
Після чого можна включити цей модуль в клас або інший модуль за допомогою ключового слова include
.