Beim Umschauen im Web habe ich festgestellt, dass die Klasse Time
von Ruby Time#advance
hat. Wo ist das dokumentiert? Ich habe es in den Ruby-API-Dokumenten hier nicht erwähnt.
Die Suchfunktion für die API-Dokumente gab an, dass es nirgendwo eine Methode namens "advance" gibt.
Trotzdem in IRB ...
%Vor%Noch eine Sache, die mich verwirrt ... In den Dokumenten für die Zeitklasse heißt es zuerst: "Implementiert die Erweiterungen der Klasse Time, die in der Dokumentation der Bibliothek time.rb beschrieben sind."
Heißt das "die Bibliothek time.rb implementiert Erweiterungen für diese Klasse?"
Ich dachte, das ist vielleicht der Punkt, an dem der Zeitvorsprung kam, aber alles, was ich gefunden habe, war das .
Es befindet sich tatsächlich im ActiveSupport::CoreExtensions::Numeric::Time
-Modul.
Dies ist einer meiner Fehler bei Ruby - es ist unmöglich, für jede Methode, die ein Objekt besitzt, eine umfassende Dokumentation zu finden, da sich die Methodenliste je nach Kontext ändert. Mächtig, aber irritierend.
Ich arbeite an einer großen Rails-App, die ich ursprünglich nicht geschrieben habe, und google ab und zu eine Methode, die ich einige Minuten lang nicht kenne, bevor ich realisiere ... yep, der vorherige Entwickler hat es definiert / lib.
Sieht nicht so aus, als ob advance
ein zentraler Teil der Sprache ist, daher fehlt es an Dokumentation. Es scheint ein Teil eines Pakets zu sein, das in rails enthalten ist, das ActiveSupport-Modul.
Dokumentation ist hier: Ссылка
Dies ist mit vielen anderen Erweiterungen von Time Teil von ActiveSupport, die Sie wahrscheinlich als Teil von Rails erworben haben, obwohl die Bibliothek selbst durchaus verwendbar ist.
Siehe die Dokumentation
Dies ist eine Antwort auf Ihre zweite Frage.
In den Dokumenten für die Zeitklasse heißt es zunächst "Implementiert die Erweiterungen für die Klasse Time, die in der Dokumentation für die Bibliothek time.rb beschrieben werden."
Heißt das "die Bibliothek time.rb implementiert Erweiterungen für diese Klasse?"
Die Zeitklasse ist an vielen Stellen geöffnet:
APIdock unterscheidet zwischen Ruby und Rails, aber "kombiniert" die RDocs eines einzelnen Elements, wenn es in einem Projekt mehrfach definiert ist. Wenn für ein einzelnes Element mehrere RDocs vorhanden sind (wie in diesem Fall die Time-Klasse), wird nur eine davon angezeigt, die anderen nicht. Dies kann verwirrend sein.
Dieser Text:
Implementiert die Erweiterungen der Time-Klasse, die in der Dokumentation für die Bibliothek time.rb beschrieben sind.
... kommt von lib / time.rb. Es stammt aus der Standardbibliothek und erweitert die Time-Klasse der Core-Bibliothek (die in time.c definiert ist). Also, Sie müssen anrufen ...
%Vor%... um die in time.rb definierten Erweiterungen zu verwenden. Ansonsten können Sie nur die in time.c definierten Methoden verwenden.