Programmer en Ruby

Ruby est un langage interprété pur object développé par Yukihiro Matsumoto

Pour télécharger ruby aller sur le site francophone : http://www.ruby-lang.org/fr
Sous Debian, l'installation se fait avec la commande : apt-get  install  ruby
Pour lancer l’interpréteur ruby, sous Linux, taper  irb

Guide du programmeur Ruby : http://www.ruby-doc.org/docs/ProgrammingRuby/html/

1. Man ruby

Etant donné un fichier prg.rb contenant un programme en Ruby,

ruby prg.rb Exécute prg.rb
ruby -l prg.rb Exécute prg.rb et insère un saut de ligne à chaque sortie s'il n'y en a pas.
ruby -cw prg.rb Vérifie les erreurs de syntaxe de prg.rb
ruby -w prg.rb Exécute prg.rb en mode verbeux
ruby -r debug prg.rb Exécute prg.rb en mode débugueur (commandes : step, step x,....)
ruby -r profile org.rb Mesure l'utilisation des ressources du système lors de l'exécution de prg.rb

ruby - v Version de ruby
ruby -e "puts 12**12" Exécute l'expression ruby entre guillement simple ou double
ruby
puts "Bonjour"
x=12**12
puts x
Ctrl D
Exécute le programme écrit en dessous jusqu'au caractère de fin de fichier Ctrl D

2. Script sous UNIX

La première ligne d'un script ruby est généralement :

#! /usr/bin/ruby -w

Le script prg.rb doit avoir les droits d'exécution ce qui s'obtent par la commande suivante :

chmod +x prg.rb

Le lancement du script se fait en précisant le chemin complet, ou relatif à une racine figurant dans la variable d'environnement $PATH :

./prg.rb

3. Les variables en Ruby

Nom commençant par
Genre de variable
$
Variable globale
@
Variable d'instance
@@
Variable de classe
Minuscule ou _
Variable local
Majuscule
Nom de classe, nom de module, nom de constante

Exemple $x est une variable globale, x est une variable local, X est une constante, @x est une variable d'instance, et @@x est une variable de classe.

4. Sucre syntaxique

x = %w{mais ou est donc or ni car}

est équivalent à :

x = ["mais", "ou", "est", "donc", "or", "ni", "car"]

5. Expression régulière

Les caractères de contrôles sont + ? . * ^ $ ( ) [ ] { } | \
Pour les utiliser comme simple caractère il faut les précéder d'un backslash.

Modele
Description
^
Début de ligne.
$
Fin de ligne.
.
Un caractère autre que le newline (sauf en mode m).
[abc]
Un caractère a ou b ou c.
[^abc] Un caractère qui n'est pas ni a ni b ni c.
[a-e2-5]
Un caractère entre a et e ou entre 2 et 5.
X*
0 ou plusieur occurences de X. Non gourmand X*?
X+
1 ou plusieur occurences de X. Non gourmand X+?
X?
0 ou 1 occurence de X.  Non gourmand X??
X{n}
Exactement n occurences de X
X{n,}
n ou plus d'occurences de X. Non gourmand {n,}?
X{n,m}
de n à m occurences de ce qui précède. Non gourmand {n,m}?
X|Y
X ou Y
(X)
Groupé et mémorisé
(?:X)
Groupé et non mémorisé
X(?=Y)
X si suivie de Y

\w
Caractères word [A-Za-z0-9_]
\W
Caractères word [^A-Za-z0-9_]
\s
Espace [ \t\n\r\f]
\S
Non espade [^ \t\r\n\f]
\d
Chiffre [0-9]
\D
Non chiffre [^0-9]
\n,\t...
newline, tabulation, etc.
\1...\9
n ième expression mémorisées
\10
10 ième expression mémorisée si elle existe sinon caractère de code octal 10.

"abctoto" =~ /toto|tata/          => 3      // Conforme à l'expression régulière à partir de l'indice 3
x.sub(/toto|tata/, 'titi')                           // Remplace dans x le premier toto ou tata par titi
x.gsub(/toto|tata/, 'titi')                         // Remplace dans x tous les toto et tata par titi

6. Bloc de code

Un bloc de code regroupe des instructions ruby entre accolade { ... } ou bien entre do ... end.

--- 26 mai 2013 ---