До 1. Модуль створюється / відкривається, просто сказавши:
module MyModule
def first_module_method
end
end
До 2. lib
Папка. Якщо ви хочете впорядкувати свої модулі в lib
папці, ви можете помістити їх у самі модулі. Наприклад, якщо ви хочете підпапку, super_modules
ваші модулі визначатимуться наступним чином:
module SuperModules
module MyModule
def first_module_method
end
end
end
До 3./5. При включенні модуля в клас ви можете просто викликати методи модулів так, ніби вони були визначені в класі:
class MyClass
include MyModule
def some_method
first_module_method #calls module method
end
end
До 4. Спочатку переконайтеся, що ваш модуль дійсно потрібен у кожному класі вашої програми. Якщо це не так, то має сенс включити його лише туди, де це потрібно, щоб не роздувати класи, які в будь-якому випадку не потребують. Якщо ви дійсно хочете модуль скрізь, включіть перегляд ієрархії класів ваших класів у програмі. Вам потрібен модуль у всіх моделях? Ви можете відкрити ActiveRecord :: Base і додати туди свій модуль.