Para 1. Um módulo é criado / aberto simplesmente dizendo:
module MyModule
def first_module_method
end
end
Para 2. A lib
pasta. Se você deseja organizar seus módulos na lib
pasta, pode colocá-los nos próprios módulos. Por exemplo, se você quiser uma subpasta, super_modules
seus módulos serão definidos da seguinte forma:
module SuperModules
module MyModule
def first_module_method
end
end
end
Para 3./5. Ao incluir o módulo em uma classe, você pode simplesmente chamar os métodos dos módulos como se fossem definidos na classe:
class MyClass
include MyModule
def some_method
first_module_method #calls module method
end
end
Para 4. Primeiro, certifique-se de que seu módulo seja realmente necessário em todas as classes de seu aplicativo. Caso contrário, faz sentido incluí-lo apenas onde for necessário para não sobrecarregar as classes que não precisam dele de qualquer maneira. Se você realmente deseja o módulo em todos os lugares, inclua uma olhada na hierarquia de classes de suas classes no aplicativo. Você quer o módulo em todos os modelos? Você pode abrir ActiveRecord :: Base e adicionar seu módulo lá.