Що таке модуль (module) в Ruby?

В 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 .