Wo wird Time.advance dokumentiert?

8

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 .

    
Ethan 06.03.2009, 00:20
quelle

4 Antworten

5

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.

    
Sarah Mei 06.03.2009, 00:52
quelle
6

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: Ссылка

    
danieltalsky 06.03.2009 00:27
quelle
3

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

    
Mike Woodhouse 06.03.2009 00:24
quelle
3

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:

  • in Ruby:
    • time.c
    • lib / date.rb
    • lib / rss / rss.rb
    • lib / zeit.rb
    • lib / yaml / rubytypes.rb
  • in Schienen:
    • activesupport / lib / aktive-support / core-ext / numeric / time.rb

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.

    
Antti Tarvainen 06.03.2009 16:36
quelle

Tags und Links