Nous allons apprendre dans cette section comment afficher à l'écran le contenu de notre carnet d'adresses.
Nous pouvons toujours taper puts carnet, mais le résultat n'est pas très lisible pour un être humain (essayez dans IRB par vous-même). Nous voudrions mieux définir notre propre moyen pour afficher son contenu.
Comme carnet est un tableau, nous pouvons utiliser l'itérateur Array#each. Commençons par simplement afficher le prénom de nos amis:
carnet.each do |personne| puts personne["prénom"] end
Ce qui affichera:
Nicolas François Marina
La prochaine étape est d'afficher les noms complets:
carnet.each do |personne| prenom = personne["prénom"] nom = personne["nom de famille"] puts prenom + " " + nom end
Nicolas Rocher François Willemart Marina Nantini
Rajouter le numéro de téléphone n'est pas plus difficile:
carnet.each do |personne| prenom = personne["prénom"] nom = personne["nom de famille"] tel = personne["téléphone"] puts prenom + " " + nom puts " " + tel end
Le résultat:
Nicolas Rocher (+33) 02 93 45 49 19 François Willemart (+32) 02 679 24 81 Marina Nantini (+39) 055 681 32 11
Finalement, il ne nous reste plus qu'à afficher les adresses. Voici le code qui devrait effectuer cette requête, en prenant soin d'espacer chaque personne par une nouvelle ligne:
carnet.each do |personne| # Nom et téléphone prenom = personne["prénom"] nom = personne["nom de famille"] tel = personne["téléphone"] puts prenom + " " + nom puts " " + tel # Adresse rue = personne["adresse"]["rue"] cp = personne["adresse"]["code postal"] ville = personne["adresse"]["ville"] pays = personne["adresse"]["pays"] puts " " + rue puts " " + cp + ", " + ville puts " " + pays # Une ligne vide pour séparer les entrées puts "" end
Ce qui produira:
Nicolas Rocher (+33) 02 93 45 49 19 Rue du port, 32 56000, Vannes France François Willemart (+32) 02 679 24 81 Avenue de la tranchée, 14 1000, Bruxelles Belgique Marina Nantini (+39) 055 681 32 11 Strada di l'amore, 61 50100, Firenze Italia
Et voila le travail!