Ich habe eine Klasse, die die Methode def_delegators
aus der verwendet Weiterleitbares -Modul. Ich habe keinen Weg gefunden, Yardoc zu erhalten, um Dokumentation dafür auszugeben. Ich habe versucht, ein Makro zu verwenden, aber für diese speziellen Methoden wird nichts ausgegeben (alles andere in der Datei ist in Ordnung, und es gibt keine Fehler), und ich habe mehrere def_delegators
unterschiedlicher Länge.
z.B.
%Vor%Wenn jemand von einem Juwel oder einer Möglichkeit weiß, dies zu tun, was bedeutet, dass ich es vermeiden kann, eine Yard-Erweiterung dafür zu schreiben, wäre ich sehr dankbar.
Nach mehr Experimenten habe ich festgestellt, dass das ganz gut funktioniert:
%Vor%Es gibt wahrscheinlich eine Möglichkeit, dies in ein oder zwei Zeilen zu tun, aber verglichen mit dem Schreiben einer Erweiterung finde ich das sehr akzeptabel.
Ich habe gerade festgestellt, dass dies besser mit der Dokumentation der delegierten Methoden verknüpft wird:
%Vor%Dies würde den bereits dokumentierten Rückgabewert aus der Array # size-Methode nehmen. Ich erwarte, dass die anderen Tags das auch tun werden. Es ist immer noch ziemlich ausführlich, aber akzeptabel.
Sie müssen die beiden Konzepte kombinieren. Verwenden Sie @! Macro, um eine @! -Methode zu erstellen.
Unten ist meine Version einer Lösung. Aber das Problem für mich ist OptParser ist nicht enthalten, also hat der See auch keinen Link. Der zweite Nachteil ist die Signatur der Methode, Parameter und der Rückgabewert wird nicht beschrieben. Und der dritte ick ist der String, OptParser ist zwar fest, muss aber wirklich angepasst (parametriert) werden können.
Wenn es an eine im Projekt enthaltene Methode weitergeleitet wurde, dann könnten Sie es verwenden (siehe Methode Foo #) (in diesem Fall kein @ -Zeichen) und alles, was in der Foo # -Methode ist, wird in die neue Quelle kopiert. Dies würde getan werden, indem Sie (siehe Foo # $ 2) innerhalb des Makros - mit den enthaltenen Paren. Siehe YARDs Referenztags
%Vor%Das funktioniert für mich.
%Vor%Andere:
yard-delegate
funktioniert nicht für ein solches Konstrukt. Es ist ziemlich alt. # @!method
über dem einzelnen :method
wird nicht verwendet (wird von YARD ignoriert). Tags und Links ruby documentation yard