Programmation Ruby/Exemples de code
Tous ces exemples peuvent être testés directement dans irb. Il existe une version web d'irb pour tester Ruby dans un navigateur : TryRuby.
Objets
modifierLes nombres sont des objets. Pour obtenir la valeur absolue de -12 :
-12.abs
La taille d'une chaîne de caractères :
"Ruby est un langage dérivé de Perl et Python!".length
Trier un tableau et l'inverser :
[ 1, 42, 5, 12, 6, 8 ].sort.reverse
dangers = { "eau" => "mouille", "feu" => "brule" }
puts "L'eau, ça " + dangers["eau"]
Blocs et itérateurs
modifierSaluer 10 fois :
10.times do
puts "Salutations !"
end
Afficher le carré de chaque nombre d'un tableau :
[1, 2, 5, 8].each do |x|
puts( x * x )
end
Obtenir un tableau contenant la racine carrée de quelques nombres :
racines = [2, 45, 999].map { |x| Math.sqrt(x) }
Trier des chaines de caractères en fonction de leur taille :
[ "Bonjour", "Ruby", "Tic Tac" ].sort_by { |chaine| chaine.length }
Structures
modifierCréation d'une structure Livre :
Livre = Struct.new "Livre", :titre, :auteurs, :isbn
pickaxe = Livre.new "Programming Ruby", ["Dave Thomas", "Andrew Hunt"], "0-201-71089-7"
puts pickaxe.titre
Classes
modifier- Création d'une classe Bibliotheque qui stocke des livres
class Bibliotheque
# Accès direct au tableau de livres
attr_reader :livres
# Méthode appelée à la création d'un objet bibliothèque qui initialise le tableau de livres
def initialize
@livres = []
end
# Ajoute un livre à la bibliothèque, s'il n'y est pas déjà
def ajouter livre
raise "Le livre #{livre} est déjà dans la bibliothèque" if @livres.include? livre
@livres << livre
end
# Retourne le nombre de livres dans la bibliothèque
def taille
@livres.length
end
# Retourne la liste des auteurs ayant écrit ou co-écrit au moins un livre dans la bibliothèque
def auteurs
@livres.map { |livre| livre.auteurs }.flatten.uniq
end
end
- Création de la bibliothèque
biblio = Bibliotheque.new
</source >
# Ajout du livre créé plus haut
<syntaxhighlight lang="ruby">
biblio.ajouter pickaxe
- Ajout d'un autre livre
biblio.ajouter Livre.new("Ruby on Rails", ["Dave Thomas", "David Heinemeier Hansson"], "2-212-11746-9")
- Affichage de la liste des auteurs
puts "Auteurs : " + biblio.auteurs.join(", ")
Qui affichera
Dave Thomas, Andrew Hunt, David Heinemeier Hansson