Menu
Coddy logo textTech

Repaso: tarjeta de biblioteca

Parte de la sección Programación orientada a objetos del Journey de Ruby de Coddy. Lección 6 de 57.

challenge icon

Desafío

Intermedio

Completa la clase LibraryCard. initialize(name, limit = 3) almacena el nombre y el límite de préstamos, y comienza sin títulos prestados. borrow(title) devuelve true y añade el título, a menos que la tarjeta haya alcanzado su límite o ya tenga ese título, en cuyo caso devuelve false. give_back(title) devuelve true cuando elimina el título. to_s devuelve Ada: 2/3 (Dune, Emma) con los títulos en el orden en que se tomaron prestados, o Ada: 0/3 cuando no hay ningún préstamo.

El código proporcionado lee el nombre y el límite (- para usar el valor predeterminado), y después los comandos +title o -title. Imprime ok o no para cada comando y, finalmente, la tarjeta.

Tu código debe estar en library_card.rb. main.rb contiene el código proporcionado de entrada/salida y no se puede editar.

Pruébalo tú mismo

require_relative 'library_card'

# Código de entrada/salida suministrado: déjalo como está
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

Todas las lecciones de Programación orientada a objetos

Practica por tu cuenta: Compilador de Ruby online