“base".senden :zählen, InstanceMethods" ---> Was macht das?
Ich bin auf der Suche auf ein Modul X enthält zwei Module namens "InstanceMethods
" und "ClassMethods
".
Die Letzte definition im Modul X ist:
def self.included(base)
base.send :include, InstanceMethods
base.send :extend, ClassMethods
end
Was macht das?
- Ich weiß, es ist nicht dein code, aber beachten Sie, dass es keine Notwendigkeit zu haben, eine InstanceMethod Modul: das übergeordnete Modul bereits enthalten, so sollten wir die Instanz-Methoden gibt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
included
wird aufgerufen, wenn ein Modul in ein anderes Modul oder eine Klasse. In diesem Fall wird Sie versuchen, aufrufenbase
'sinclude
Methode, um das Modul Methoden, Variablen und Konstanten, die vonInstanceMethods
Hinzugefügtbase
und dann versuchen, aufrufenbase
'sextend
Methode, um die Instanz-Methoden vonClassMethods
Hinzugefügtbase
.Könnte es auch gewesen
'senden' ruft sein erstes argument als eine Methode auf dem Objekt, die genannt, und den rest der Argumente, die gesendet werden, die als Argumente an die Methode. Also in diesem Fall
entspricht
Fügt die Methoden in der InstanceMethods Modul 'base' - Objekt
base.send :include
noch rufen, auch wenn die Methode wurde aus privaten.base.include
wird ein Fehler ausgelöst.Es definiert eine Klasse Methode, die einen parameter nimmt,"
base
". Es ruft dann dieinclude
undextend
Methoden aufbase
vorbei das ModulInstanceMethods
undClassMethods
als argument an. Der Aufrufinclude
wird, fügen Sie die Instanz-Methoden definiert, die inInstanceMethods
zubase
. Ich bin nicht vertraut mit derextend
Methode, aber ich vermute, es wird auch so etwas machen, aber für die Klasse Methoden.