Inhalt | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11

Offizielle Ruby FAQ

Wenn Sie Fehler melden oder Verbesserungen für diese FAQ vorschlagen möchten, besuchen Sie bitte unser GitHub-Repository und öffnen Sie ein Issue oder einen Pull Request.

Erweiterungsbibliothek

Wie kann ich Ruby interaktiv verwenden?

Dieser Abschnitt oder Teile davon könnten veraltet oder nicht bestätigt sein.

Sie können es mit irb versuchen. Das Folgende ist eine Paraphrase von Kentaro Goto (Gotoken) und erschien ursprünglich in [ruby-talk:444].

  1. Holen Sie sich das neueste Tarball von irb aus dem contrib-Verzeichnis im Ruby-Archiv.
  2. Extrahieren Sie den irb-Verzeichnisbaum.
  3. Fügen Sie den Speicherort des irb/-Verzeichnisses zur Umgebungsvariable $RUBYLIB hinzu.
  4. Erstellen Sie einen symbolischen Link von $RUBYLIB/irb/irb.rb zu einer Datei namens irb, die sich irgendwo in Ihrem Pfad befindet.
  5. chmod +x $RUBYLIB/irb/irb.rb
  6. Verwenden Sie möglicherweise rehash, um Ihre Anmelde-Shell über den neuen Befehl zu informieren.
  7. Geben Sie irb ein.

Wenn das readline-Erweiterungsmodul mit Ihrem Interpreter funktioniert, macht die Verwendung von irb viel mehr Spaß.

Es gibt auch ein einfaches Programm namens eval im Verzeichnis samples/ der Ruby-Distribution. Es ermöglicht Ihnen, Ausdrücke einzugeben und ihre Werte anzuzeigen. Sie können eval in das Verzeichnis site_ruby im Ruby-Baum kopieren und es dann mit Folgendem aufrufen:

ruby -r eval -e0

Gibt es einen Debugger für Ruby?

Es gibt einen gdb-ähnlichen Debugger für Ruby.

ruby -r debug your_program

Wie kann ich eine in C geschriebene Bibliothek von Ruby aus verwenden?

Von allen Skriptsprachen ist Ruby wahrscheinlich am einfachsten zu erweitern. Es gibt keine Probleme mit Referenzzählung und Variablentypen und sehr wenige Schnittstellen zu erlernen. Tatsächlich sieht C-Code, der zur Erweiterung von Ruby verwendet wird, oft überraschend wie Ruby-Code selbst aus.

Lesen Sie zuerst die Datei doc/extension.rdoc im Ruby-Quellcode oder lesen Sie extension.rdoc auf docs.ruby-lang.org. Dies ist ein gutes Dokument, nicht nur wenn Sie eine Erweiterungsbibliothek schreiben, sondern auch wenn Sie Ruby tiefer verstehen möchten.

Dann bietet die RubyGems-Website eine Anleitung zur Erstellung von Gems mit Erweiterungen. Sie zeigt, wie man ein Gem mit C-Erweiterungen einrichtet, die bei der Installation kompiliert werden. Sie enthält auch Links zu einigen vorhandenen Gems, die C-Bibliotheken umschließen, und zu weiterführender Lektüre.

Möglicherweise möchten Sie auch einen Blick auf den Quellcode des Interpreters selbst werfen und auf die verschiedenen mitgelieferten Erweiterungen im Verzeichnis ext/ (Sie können das Ruby-Repository auf GitHub durchsuchen).

Kann ich Tcl/Tk in Ruby verwenden?

Dieser Abschnitt oder Teile davon könnten veraltet oder nicht bestätigt sein.

Es gibt zwei Schnittstellen zu Tcl/Tk, die in der Standarddistribution enthalten sind. Eine befindet sich unter ext/tcltk/ und wird mit require "tcltk" geladen. Die Syntax ist der Tcl-Syntax sehr ähnlich, die an den Tcl-Interpreter übergeben wird. Leider ist die Beschreibung für diese Bibliothek auf Japanisch verfasst.

Die andere befindet sich unter ext/tk/ und wird mit require "tk" geladen. Ihre Syntax ist näher am Stil der Tk-Schnittstelle, die von den Perl- und Python-Schnittstellen bereitgestellt wird.

Tk funktioniert nicht. Warum?

Dieser Abschnitt oder Teile davon könnten veraltet oder nicht bestätigt sein.

Ihre Tk-Version ist möglicherweise veraltet, versuchen Sie eine neuere Version.

Kann ich gtk+ oder xforms Schnittstellen in Ruby verwenden?

Dieser Abschnitt oder Teile davon könnten veraltet oder nicht bestätigt sein.

Sie finden ruby-gtk-x.xx.tar.gz und ruby-forms-x.x.tar.gz unter contrib/ auf den Ruby-FTP-Sites.

Wie mache ich Datumsarithmetik?

Dieser Abschnitt oder Teile davon könnten veraltet oder nicht bestätigt sein.

Ein Time-Objekt kann nur die Daten zwischen dem 1. Januar 1970 und dem 19. Januar 2038 darstellen.

Es werden zwei Standard-Erweiterungsbibliotheksmodule bereitgestellt: require "date", das einfach ist und den englischen Kalender verwendet, und require "date2", das allgemeiner einsetzbar ist.

Siehe auch sample/cal.rb.