Exemple pratique: un carnet d'adresses

Dans cette section, nous allons construire un petit carnet d'adresses, contenant des informations sur trois amis: Nicolas, François et Marina.

La structure d'un carnet d'adresses est relativement complexe. Elle doit contenir plusieurs personnes, chacun ayant un nom, une adresse, et ainsi de suite.

Pour implémenter ce carnet d'adresses, notre stratégie sera de découper le problème en plusieurs petits problèmes.

Il nous faut commencer par déterminer le type d'informations que notre carnet d'adresses devrait référencer:

Nous allons commencer par définir une structure représentant une adresse, et nous finirons par assembler le carnet tout entier.

Nous avons ici deux possibilités pour implémenter la structure d'une adresse:

Nous allons évidemment choisir d'utiliser un hachage. Voici la représentation de nos adresses:

# Adresse de Nicolas
adresse_de_nicolas = {
    "rue"         => "Rue du port, 32",
    "code postal" => "56000",
    "ville"       => "Vannes",
    "pays"        => "France"
}

# Adresse de François
adresse_de_francois = {
    "rue"         => "Avenue de la tranchée, 14",
    "code postal" => "1000",
    "ville"       => "Bruxelles",
    "pays"        => "Belgique"
}

# Adresse de Marina
adresse_de_marina = {
    "rue"         => "Strada di l'amore, 61",
    "code postal" => "50100",
    "ville"       => "Firenze",
    "pays"        => "Italia"
}

Chaque personne est identifiée par un prénom, un nom de famille, un numéro de téléphone ainsi qu'une adresse. Comme pour la structure précédente, un hachage convient parfaitement. Voici comment nous pouvons représenter nos amis avec Ruby:

# Nicolas
nicolas = {
    "prénom"         => "Nicolas",
    "nom de famille" => "Rocher",
    "téléphone"      => "(+33) 02 93 45 49 19",
    "adresse"        => adresse_de_nicolas
}

# François
francois = {
    "prénom"         => "François",
    "nom de famille" => "Willemart",
    "téléphone"      => "(+32) 02 679 24 81",
    "adresse"        => adresse_de_francois
}

# Marina
marina = {
    "prénom"         => "Marina",
    "nom de famille" => "Nantini",
    "téléphone"      => "(+39) 055 681 32 11",
    "adresse"        => adresse_de_marina
}

Maintenant que nous avons défini toutes les autres structures, il ne nous reste plus qu'à créer le carnet d'adresses. Comme nous désirons pouvoir par la suite trier les éléments, nous devons donc utiliser un tableau pour réunir nos trois amis:

carnet = [ nicolas, francois, marina ] 

Et voila! Nous venons d'implémenter complètement la structure de notre carnet d'adresses. Dans la section suivante, nous allons apprendre comment trier les éléments du carnet, ainsi que d'autres petites choses amusantes.

[Note]Note

Sauvegardez les structures dans un fichier. Nous allons les ré-utiliser dans les sections qui vont suivre.