Menu
Coddy logo textTech

Ripasso - Tessera della biblioteca

Fa parte della sezione Programmazione orientata agli oggetti del percorso Ruby di Coddy. Lezione 6 di 57.

challenge icon

Sfida

Medio

Completa la classe LibraryCard. initialize(name, limit = 3) memorizza il nome e il limite di prestiti e inizia senza titoli presi in prestito. borrow(title) restituisce true e aggiunge il titolo, a meno che la tessera non abbia raggiunto il limite o non possieda già quel titolo; in tal caso restituisce false. give_back(title) restituisce true quando rimuove il titolo. to_s restituisce Ada: 2/3 (Dune, Emma) con i titoli nell’ordine in cui sono stati presi in prestito, oppure Ada: 0/3 quando non è stato preso in prestito nulla.

Il codice fornito legge il nome e il limite (- per quello predefinito), quindi i comandi +title o -title. Stampa ok o no per ogni comando e infine la tessera.

Il tuo codice va in library_card.rb. main.rb contiene il codice di input/output fornito e non può essere modificato.

Provalo tu

require_relative 'library_card'

# Codice di input/output fornito: lascialo così com'è
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

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Ruby online