Para 1. Un módulo se crea / abre simplemente diciendo:
module MyModule
def first_module_method
end
end
Para 2. La lib
carpeta. Si desea organizar sus módulos en la lib
carpeta, puede ponerlos en módulos. Por ejemplo, si quisiera una subcarpeta, super_modules
sus módulos se definirían de la siguiente manera:
module SuperModules
module MyModule
def first_module_method
end
end
end
Hasta el 3./5. Al incluir el módulo en una clase, simplemente puede llamar a los métodos de los módulos como si estuvieran definidos dentro de la clase:
class MyClass
include MyModule
def some_method
first_module_method #calls module method
end
end
Para 4. Primero, asegúrese de que su módulo sea realmente necesario en cada clase de su aplicación. Si no es así, tiene sentido incluirlo solo donde sea necesario para no inflar las clases que no lo necesitan de todos modos. Si realmente desea que el módulo esté en todas partes, incluya un vistazo a la jerarquía de clases de sus clases en la aplicación. ¿Quieres el módulo en todos los modelos? Puede abrir ActiveRecord :: Base y agregar su módulo allí.