Menu
Coddy logo textTech

Revisão - Cartão da Biblioteca

Parte da seção Programação orientada a objetos do Journey de Ruby da Coddy. Lição 6 de 57.

challenge icon

Desafio

Médio

Complete a classe LibraryCard. initialize(name, limit = 3) armazena o nome e o limite de empréstimos e começa sem títulos emprestados. borrow(title) retorna true e adiciona o título, a menos que o cartão esteja no limite ou já contenha esse título; nesse caso, retorna false. give_back(title) retorna true quando removeu o título. to_s retorna Ada: 2/3 (Dune, Emma) com os títulos na ordem dos empréstimos, ou Ada: 0/3 quando nada foi emprestado.

O código fornecido lê o nome e o limite (- para o padrão), depois os comandos +title ou -title. Ele imprime ok ou no para cada comando e, por fim, o cartão.

Seu código deve ficar em library_card.rb. main.rb contém o código fornecido de entrada/saída e não pode ser editado.

Experimente você mesmo

require_relative 'library_card'

# Código de entrada/saída fornecido: mantenha-o 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 as lições de Programação orientada a objetos

Pratique por conta própria: Compilador de Ruby online