Diskussion:Ruby-Programmierung

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Warum befindet sich das Buch Ruby im Namensraum Programmierkurs? Es ist auf dem besten Weg ein eigenständiges Buch zu werden und sollte deshalb nach Ruby-Programmierung oä verschoben werden. Das würde auch das Einfügen von eigenen Seiten für Kapitel einfacher machen. --Stefan Kögl 09:15, 6. Sep 2004 (UTC)

#!/bin/env ruby[Bearbeiten]

Hi, bei mir ist ist ruby(Ich nutze ubuntu) unter /usr/bin/ruby installiert.

Ich führe also ein export ruby=/usr/bin/ruby aus. Danach habe ich allerdings als erste Programmzeile #!/bin/env ruby eingegeben, damit hat es jedoch nicht funktiniert, sondern mit #!/usr/bin/ruby


Hm, sorry, aber das ist jetzt mal ziemlicher Unfug
1) Eine Umgebungsvariable RUBY wird nicht benötigt, es reicht völlig aus wenn der Ruby-Interpreter im Pfad ist
2) Wenn du env benutzen willst dann nehme #!/usr/bin/env ruby
3) Wenn du den Ruby-Interpreter in der Shebangzeile angibst, dann kannst du dir den vorherigen Quatsch erst recht sparen

Sollte man nicht bei einem einheitlichen Beispielsystem bleiben?

Es sollte also #!/usr/bin/ruby als erste Zeile angegeben werden, oder? Zumal es bei mir gar keine /bin/env gibt...

BTW: Muss export ruby=/usr/bin/ruby nur einmal ausgeführt werden? Ein kleiner Kommentar wäre sinnvoll, denke ich.

Danke für das tolle Buch! greets


Ich persönlich rufe den Interpreter auf; der wird ja vom Ubuntu-Paket fertig eingerichtet. Ob das auch der Windows-Installer macht, weiß ich nicht. Aber die Variante mit Interpreter fände ich praktischer, gerade wegen den Plattformen. --Yuuki Mayuki 06:09, 28. Feb 2006 (UTC)

Bei mir wird der Interpreter leider nicht erkannt wenn ich auf /bin/env verlinke. Ich habe gelesen das nicht jedes OS das kann, eine alternative Variante(wie ich sie beschrieben habe) wäre sinnvoll im Text. Wenn man das geschriebene Programm allerdings weitergibt...wie soll es dann laufen? Man kann ja nicht verlangen das der User jedesmal vorher ein "export ruby=/pfad/zu/seinem/ruby" ausführt...


Aber den Pfad zum Interpreter ins Script zu schreiben ist auch sehr unschön. Oder verstehe ich da etwas falsch?
Also, ich persönlich finde, dass erwartet werden kann, dass beim Aufruf von ruby an beliebiger Stelle auch Ruby startet... was unter Windows sogar weniger ein Problem sein dürfte als anderswo. Nachdem meine Linux-Distribution mir diese Aufgabe abgenommen hat (was vermutlich bei anderen Distributionen genauso komfortabel sein sollte), weiß ich leider nicht, wie das "von Hand" geht; aber vermutlich durch einen Eintrag in einem Script. Das ist doch sicherlich leichter, als immer eine Shebang-Zeile zu überprüfen, und das geht doch auch sicher in die Installationsanleitung rein. Bringt die Zeile unter Windows überhaupt etwas? --Yuuki Mayuki 06:55, 1. Mär 2006 (UTC)

Hi, ja ich glaube du hast ein bischen was falsch verstanden ;) Es geht mir nicht darum ob mein OS ruby findet, wenn ich ruby eingebe. Sondern ob es ruby findet, wenn ich auf "/bin/env/ ruby" verweise. Mein Ubuntu macht das nämlich nicht. Wenn ich allerdings ruby in die shell hacke, wird auch ruby ausgeführt. Das Problem ist das man bei der shebang methode ja auf irgendeinen Pfad verweisen muss, sei es nun der Pfad zu ruby direkt, bei mir: /usr/bin/ruby oder über den Umweg ruby erstmal per export-funktion zur PATH Variable hinzuzufügen, um dann die shebang Zeile auf "usr/env/ ruby" verweisen zu können. Leider ist es ja nötig die export-funktion jedesmal nach dem Neustart auszuführen, um dann ruby skripte mittels "./" starten zu können. Und ich denke das das für den User kaum zumutbar ist.

Da geht einiges ziemlich durcheinander. Bei #!/usr/bin/env ruby sucht env in den Verzeichnissen der Umgebungsvariablen PATH nach einem Programm namens ruby. Sollte Ruby korrekt installiert sein, wird das auch klappen. Eine Umgebungsvariable ruby interessiert env gar nicht. (Den Sinn dieser EXPORT-Geschichte habe ich nicht nicht verstanden.)
Will man den Interpreter direkt aufrufen, also "ruby foo.rb", dann sollte das auch klappen, denn die Shell sucht auch in den PATH-Verzeichnissen. --84.131.140.253 18:32, 6. Mär 2006 (UTC)

Ich bin noch ZIEMLICH neu bei ruby, werden denn die .rb dateien später noch kompiliert? Bzw gibt es die Möglichkeit?

Ansonsten ist es evtl möglich mehrere shebang Zeilen ins Skript zu schreiben? Also in der Hoffnung das irgendein Pfad schon passt?

gruß


Nachtrag: Mehrere shebang Zeilen gehen nicht, und "#! ruby" hat auch keinen Sinn ;)


Kompiliert wird nichts, Ruby ist eine interpretierte Sprache. Compiler gibt es meines Wissens nicht, aber ich weiß auch noch nicht viel von Ruby...
Alternativ lassen sich Scripte ähnlich wie bei Java ausführen:
ruby <name>.rb
Was ich jetzt wohl offiziell als Alternative vorschlage, denn dann brauchen die .rb-Dateien kein Shebang, wohl auch kein chmod +x und ähnliches. --Yuuki Mayuki 20:11, 1. Mär 2006 (UTC)

Ja das habe ich schon ins Buch geschrieben:

Eine etwas unfeinere Art, die allerdings zum Üben kleiner Skripte schneller gehen mag, ist es ruby selbst aufzurufen, um das xxx.rb Skript zu starten. So kann man sich das chmod a+x xxx.rb sparen.

Diese Art würde für die Datei hello.rb dann so aussehen:

$ ruby hello.rb

greets


ruby Environment-Variable[Bearbeiten]

Kann man das mit der Evironment-Variable 'ruby' mal ganz hier rausschmeißen? Das ist komplett überflüssig und irreführend. Es reicht aus, wenn die PATH-Variable das Directory enthält, in dem Ruby installiert ist, das wird wahrscheinlich sowieso schon der Fall sein, falls Ruby in einem Standardverzeichnis wie /usr/local/bin o.ä. installiert ist. --Thopre 09:34, 6. Okt 2006 (CEST)

irb / gems mit installieren?[Bearbeiten]

Sollte nicht vielleicht angesprochen werden, dass es u.U. praktisch ist auch irb und gems gleich zu installieren? Ich weis nicht, ob andere distributionen das mitinstallieren, gentoo jedenfalls tut es afaik nicht. (emerge irb rubygems)

IRB befindet sich in der Standardbibliothek. Seit 1.9 rubygems auch. Wahrscheinlich fehlen nur die scripts zum ausführen oder Gentoo nimmt das weiter auseinander. -- FF-Wonko DB 06:26, 20. Feb. 2009 (CET)

Zusammenführung von Seiten[Bearbeiten]

Hallo,

Ich habe in den letzten Tagen einige Änderungen an den ersten Seiten des Buchs vorgenommen und hoffe, dass ich soweit nichts falsch gemacht habe. Als nächstes würde ich gerne die Grundlagen weitgehend umstrukturieren, weiß jedoch nicht wie. Nachdem ich verschieben nach einiger Suche endlich gefunden hatte fehlt mir noch die Möglichkeit Seiten zusammenzuführen, falls das möglich ist.

Momentan sind die Datentypen-Seiten nur Listen von Funktionen auf den entsprechenden Objekten, das finde ich wenig lehrreich. Ich würde mich mit einer Seite den wichtigsten build-in Klassen beschäftigen: Zahlen, Strings, Array, Hashes und Dateien. Sie vorstellen und Standardprobleme vorstellen (So wie die ersten vier Seiten bisher nur kürzer). Dafür würde ich also gerne alle die bisher vorhandenen Seiten in einer Seite 'Daten Typen' zusammenführen und soviel wie möglich von dem nutzen, was es bereits gibt. Geht das?

Auch bitte ich natürlich um Anregungen, ob das überhaupt sinnvoll ist, was ich tue.

Grüße, Tray -- Tray 12:07, 1. Dez. 2011 (Signatur nachgetragen von: Jürgen 12:39, 1. Dez. 2011 (CET) -- bitte künftig mit 4 Tilden ~~~~ selbst erledigen)

Das ist eigentlich nur manuell möglich. Vor allem muss wegen der Lizenzbedingungen darauf geachtet werden, dass die Autorenliste übernommen wird. Ich hatte das irgendwo einmal in der Hilfe gelesen, finde es aber nicht mehr. Grundsatz:
  • Eine Seite wird verschoben.
  • Für beide Seiten wird die Autorenliste erstellt, siehe Autorenliste erstellen und auf die Diskussionsseite der gemeinsamen Seite gespeichert, etwa mit einer Erläuterung: "Diese Seite ist entstanden aus... Bis zum Zeitpunkt der Zusammenführung haben folgende Autoren mitgearbeitet: an ... abc, an ... xyz."
  • Die andere Seite wird per Copy&Paste übernommen.
  • Alle Links auf die beiden Seiten müssen angepasst werden.
  • Nach Erledigung können die andere Seite und die Weiterleitung mit {{Löschen|Seite gehört jetzt zu ... und wird nicht mehr benötigt. -- ~~~~}} zum Löschen vorgemerkt werden.
Gruß -- Jürgen 12:39, 1. Dez. 2011 (CET)