Menu
Coddy logo textTech

Récapitulatif - Carte de bibliothèque

Fait partie de la section Programmation orientée objet du Journey Ruby de Coddy. Leçon 6 sur 57.

challenge icon

Défi

Moyen

Complétez la classe LibraryCard. initialize(name, limit = 3) enregistre le nom et la limite d’emprunt, et commence sans aucun titre emprunté. borrow(title) renvoie true et ajoute le titre, sauf si la carte a atteint sa limite ou contient déjà ce titre, auquel cas elle renvoie false. give_back(title) renvoie true lorsqu’elle a supprimé le titre. to_s renvoie Ada: 2/3 (Dune, Emma) avec les titres dans l’ordre d’emprunt, ou Ada: 0/3 lorsqu’aucun titre n’est emprunté.

Le code fourni lit le nom et la limite (- pour la valeur par défaut), puis les commandes +title ou -title. Il affiche ok ou no pour chaque commande, puis enfin la carte.

Votre code doit être placé dans library_card.rb. main.rb contient le code fourni pour les entrées et sorties et ne peut pas être modifié.

Essayez vous-même

require_relative 'library_card'

# Code d'entrée/sortie fourni : le laisser tel quel
input = []
while (line = gets)
  input << line.chomp
end
card = input[1] == "-" ? LibraryCard.new(input[0]) : LibraryCard.new(input[0], input[1].to_i)
input.drop(2).each do |cmd|
  title = cmd[1..]
  done = cmd.start_with?("+") ? card.borrow(title) : card.give_back(title)
  puts done ? "ok" : "no"
end
puts card

Toutes les leçons de Programmation orientée objet

Entraînez-vous par vous-même : Compilateur Ruby en ligne