Per 1. Un modulo viene creato / aperto semplicemente dicendo:
module MyModule
def first_module_method
end
end
Per 2. La lib
cartella. Se vuoi organizzare i tuoi moduli nella lib
cartella, puoi inserirli nei moduli stessi. Ad esempio, se volessi una sottocartella, i super_modules
tuoi moduli sarebbero definiti come segue:
module SuperModules
module MyModule
def first_module_method
end
end
end
A 3./5. Quando includi il modulo in una classe puoi semplicemente chiamare i metodi dei moduli come se fossero definiti all'interno della classe:
class MyClass
include MyModule
def some_method
first_module_method #calls module method
end
end
Per 4. Innanzitutto, assicurati che il tuo modulo sia realmente necessario in ogni classe della tua applicazione. In caso contrario, ha senso includerlo solo dove è necessario per non gonfiare le classi che non ne hanno comunque bisogno. Se vuoi davvero il modulo ovunque, includi lo sguardo alla gerarchia delle classi delle tue classi nell'app. Vuoi il modulo in tutti i modelli? Potresti aprire ActiveRecord :: Base e aggiungere il tuo modulo lì.