To 1. Модуль создается / открывается просто говоря:
module MyModule
def first_module_method
end
end
To 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 и добавить туда свой модуль.