Notes sur Ruby

Yann Mérignac (yann.merignac@laposte.net)
04/03/2014

Variables spéciales

Variable Description

$DEBUG

true si ruby a été lancé avec l’option -d

$VERBOSE

true si ruby a été lancé avec l’option -v

$!

exception en cours

$@

pile d’appel

$stderr

sortie erreur standard

$stdout

sortie standard

$stdin

entrée standard

ARGV

arguments de la ligne de commande

Encodage

Pour pouvoir utiliser des caractères non ascii il faut spécifier l’encodage du fichier source. Cela se fait par une ligne de commentaire magique qui doit être la première ligne du fichier ou la deuxième si la première ligne est un shebang.

Exemple 1
# -*- coding: UTF-8 -*-
puts "Hé !"
Exemple 2
#!/usr/bin/ruby -w
# -*- coding: UTF-8 -*-
puts "Hé !"

Conteneurs

Arrays

a = [ 1, 5, 8, 10 ]
a[0]      # => 1
a[3]      # => 10
a[55]     # => nil
a[-1]     # => 10
a[0..2]   # => [1, 5, 8]
a.length  # => 4

Hashes

pattes = { 'chat' => 4, 'chien' => 4,
           'merle' => 2, 'abeille' => 6,
           'araignée' => 8 }

pattes['abeille'] # => 6
pattes['pomme']   # => nil
pattes.length     # => 5

Exécuter des commandes externes

On peut executer des commandes externes de 2 façons :

filter = '*.rb'
`ls #{filter}`    # la sortie est perdue
%x{ls #{filter}}  # la sortie est perdue

files = `ls #{filter}`    # la sortie va dans files

if $?.exitstatus != 0 then
  puts "ERROR n°#{$?.exitstatus}"
end

if not $?.success? then
  puts "ERROR n°#{$?.exitstatus}"
end