notes·de·pit

Parfois j'apprends à pêcher à des gens qui n'aiment pas le poisson

Ruby sur l'ongle, on rails plutôt

Je découvre le langage Ruby sans avoir lu sa « présentation ». Je ne sais donc à priori pas à quoi m’attendre. Je sais simplement que c’est un langage interprèté où tout est objet.

Voyons voir…

Un fauteuil

Les entiers sont des objets

Première découverte, les entiers sont (aussi) considérés comme des objets. D’accord ! Ce qui a pour effet que je peux leur appliquer des méthodes ^^. Pour exécuter 10 fois quelque chose, il me suffit donc d’écrire

10.times do
    print "Hello"
end

Les « bang ! » et les « huh ? »

Par convention, certains noms de méthodes se terminent par ! qui se lit bang. Il signale que l’objet sur lequel porte la méthode risque d’être détruit ou modifié. Exemple

s = "Séduisante"
s.chop!
print s  # Écrira "Séduisant"

De manière similaire, une méthode se terminant pas ? qui se lit huh (hein), informe qu’elle retourne une valeur booléenne.

Méthode singleton

Ruby propose les méthodes singleton. Ce sont des méthodes redéfinies pour une instance de classe (un objet). Une méthode foo est écrite pour tous les objets de la classe C et l’instance particulière c1 de la classe C peut réécrire la méthode foo.

Ça donne une truc du style

class C
def foo
    print "Je dis foo"
end
end

print "Création d'un instance de C, c1", c1=C.new , ""
print "c1: "
c1.foo

print "Création d'un instance de C, c2", c2=C.new , ""
print "Réécriture de la méthode foo, voir code"
def c2.foo
    print "Je ne dis PLUS foo"
end
print "c2: "
c2.foo

Méthode, module et procédure

Ruby distingue trois notions,

J’ai encore plein de trucs à découvrir mais jusque là, ça m’excite très fort. Je reviens ici dès que j’ai réussi à faire fonctionner RADRails (projet mort) convenablement. Pour l’instant, j’ai suivi un tutoriel qui semble bien fait mais je n’arrive pas à afficher le résultat que je devrais obtenir… Grr.

J’y retourne de ce pas.


Crédit photo chez 500px par Ruby Cardinal