[[Vorlage(getestet, bionic)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(./ruby.png, 48, align=left)]] [wikipedia:Ruby_(Programmiersprache):Ruby] (engl. für Rubin) ist eine interpretierte, objektorientierte [:Programmiersprache:], die mehrere weitere Programmierparadigmen (Prozedurale Programmierung, Funktionale Programmierung, Nebenläufigkeit) unterstützt. Ruby wird seit dem 24. Februar 1993 von Yukihiro „Matz“ Matsumoto in Japan entwickelt und wird heute als Open-Source-Projekt weitergepflegt. In Europa und Amerika wurde Ruby ab dem Jahr 2000 durch erste nicht-japanische Literatur bekannt. Der Name basierte ursprünglich auf dem Edelstein Rubin und wird heute auch als Anspielung auf die Programmiersprache Perl verstanden. Da Ruby wie [:Perl:] und [:Python:] eine Interpretersprache ist, muss der Programmcode vor der Ausführung nicht kompiliert werden. = Installation = Zur Installation von Ruby gibt es zwei Möglichkeiten. Eine führt über das Debian Paketsystem (APT), alternativ dazu gibt es noch den Ruby Version Manager (RVM). Die APT Methode ist völlig ausreichend für eine Basisinstallation. Wird eine größere Flexibilität bei der Verwendung von verschiedenen Ruby-Versionen benötigt, sollte RVM verwendet werden. == Installation mit APT == Ruby ist zur Zeit noch nicht in der Standardinstallation von Ubuntu enthalten und muss deswegen aus den Paketquellen über das Paket: {{{#!vorlage Paketinstallation ruby }}} nachinstalliert [1] werden. [[Anker(Programmierung)]] = Ein Programm erstellen = Der Standardweg, um Ruby-Programme zu erstellen, geht über einen Editor[3]. Viele Editoren bieten Hilfen wie Syntaxhervorhebung, automatische Einrückung und Funktionen zu verkleinern. Daher gibt es auch eine riesige Zahl von Programmen, es kann also jeder einen Editor seiner Wahl finden. Es wird der Quelltext im bevorzugten Editor erstellt und als '''*.rb''' abgespeichert. {{{#!code ruby #!/usr/bin/env ruby puts "Hallo Welt!" }}} Als Beispiel sei der Quellcode unter '''~/hallowelt.rb''' abgespeichert. Nun öffnet man das Terminal [3] und wechselt in das Verzeichnis der Quelldatei. In diesem Ordner kann man sodann durch eine einzige Befehlszeile den Code ausführen: {{{#!vorlage Befehl ruby hallowelt.rb }}} = IRB = IRB ist Rubys interaktive Konsole. Die Arbeitsweise der interaktiven Ruby-Konsole ist ähnlich der [:Shell:] [3] für Linux. Sie ist vor allem für Einsteiger und zum Testen von kleineren Abschnitten des Quelltextes nützlich, da die eingegebenen Befehle sofort ausgeführt werden. == Start == Die interaktive Konsole wird vom Terminal [2] aus durch: {{{#!vorlage Befehl irb }}} gestartet. == Navigation == || '''Tasten''' || '''Verwendung''' || || [[Vorlage(Tasten, Eingabe)]] || Eingabe bestätigen || || [[Vorlage(Tasten, hoch)]] [[Vorlage(Tasten, runter)]] || früher eingegebene Befehle auswählen || || [[Vorlage(Tasten, links)]] [[Vorlage(Tasten, rechts)]] || den Cursor in der aktuell angezeigten Eingabe bewegen || == Beispiel == {{{#!vorlage Befehl ~$ irb irb(main):001:0> u = `whoami` => "benutzer\n" irb(main):002:0> puts("Hallo " + u) Hallo benutzer => nil irb(main):003:0> puts "Ruby version #{`ruby -v`}" Ruby version ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu] => nil irb(main):004:0> exit ~$ }}} = Rubygems = Rubygems ist das Äquivalent zu [:Perl: Perls] [https://www.cpan.org/ Cpan] {en}. Mit Rubygems hat man Zugriff auf ein riesiges Repertoire an Ruby-Modulen (in der Rubysprache "Gems" genannt), die eine unzählbare Anzahl an Funktionen bereitstellen. Unter [:Bionic:Ubuntu 18.04] ist Rubygems als Abhängigkeit von ruby im Paket rubygems-integration gleich mit installiert. == Gems installieren == Mit Rubygems kann man bequem vom Terminal [2] aus ein Gem installieren. Will man Beispielsweise [http://www.sinatrarb.com/ sinatra] {en}, einen äußerst einfach zu programmierenden Webserver in seinem Rubyskript benutzen, installiert man es mit: {{{#!vorlage Befehl sudo gem install sinatra }}} Danach bindet man das Gem mit: {{{#!code ruby require 'rubygems' require 'sinatra' }}} in seinem Skript ein und kann dann sämtliche Funktionen des Gems benutzen. In diesem Beispiel-Skript, wird mit Hilfe des sinatra Gems ein simpler HTTP-Server erstellt. {{{#!code ruby #!/usr/bin/env ruby require 'rubygems' require 'sinatra' get '/hi' do "Hello World!" end }}} Wird das Skript ausgeführt, so startet ein lokaler HTTP-Server. Unter http://localhost:4567/hi kann die entsprechende Seite abgerufen werden. = Links = * [https://www.ruby-lang.org/de/ offizielle Ruby-Webseite] {de} * [https://www.ruby-lang.org/de/documentation/ Ruby Dokumentation mit Links zu vielen Anleitungen und kostenlosen Büchern] {de} * [https://forum.ruby-portal.de/ ein deutsches Ruby-Forum] {de} * [https://rvm.io/ Ruby Version Manager (RVM)] {en} * [https://www.ruby-forum.com/ ein Webfrontend zu zahlreichen Ruby Newsgroups und Mailinglisten] {en} * [https://www.addedbytes.com/cheat-sheets/ruby-on-rails-cheat-sheet/ Ruby on Rails Cheatsheet] {en} * [https://www.vimeo.com/2822568 Ruby-Interpreter kompilieren (Video)] {en} # tag: Programmierung