Empréstimo de Livros
Parte da seção Programação orientada a objetos do Journey de Ruby da Coddy. Lição 51 de 57.
Desafio
FácilAdicione o comando BORROW. Mantenha todos os comandos das etapas anteriores funcionando exatamente como antes.
BORROW name id: verifique nesta ordem e responda com o primeiro problema:no member bo,no book 9,Dune is not available,ada has reached the limit(os membros podem ter no máximoLIMIT, 2, livros emprestados). Caso contrário, registre o empréstimo tanto no livro quanto no membro e respondaada borrowed Dune.
O código fornecido passa cada linha de entrada para library.handle(line) e imprime cada resposta retornada em sua própria linha. Os nomes dos membros são palavras únicas em minúsculas, os IDs dos livros são números inteiros e a entrada contém apenas os comandos descritos até agora. Qualquer outro comando responde unknown command.
Seu código deve ser colocado em book.rb, member.rb e library.rb. main.rb contém o código fornecido de entrada/saída e não pode ser editado.
Experimente você mesmo
require_relative 'book'
require_relative 'member'
require_relative 'library'
# Código de entrada/saída fornecido: mantenha-o como está
input = []
while (line = gets)
input << line.chomp
end
library = Library.new
input.each do |line|
library.handle(line).each { |reply| puts reply }
end
Todas as lições de Programação orientada a objetos
1Classes e Objetos
Trabalhando com ArquivosDefinindo ClassesVariáveis de InstânciaMétodos e selfto_s e inspectRevisão - Cartão da Biblioteca4Encapsulamento
Métodos privadosMétodos protegidosSetters privadosProtegendo o estadoRevisão - Máquina de venda automática7Polimorfismo e Duck Typing
PolimorfismoDuck TypingMétodos Abstratoscase e ClassesRevisão - Métodos de Pagamento2Acessores e self
Leitores e GravadoresSetters Personalizadosself nos MétodosIdentidade e IgualdadeRecapitulação - Lista de Contatos5Herança
SubclassesSobrescrita de métodosChamando superis_a? e ancestraisRevisão - Folha de pagamento da equipe8Métodos Especiais
Igualdade e hashMétodos de OperadoresIndexação e AdiçãoColeções PersonalizadasRevisão - Frações11Projeto: Gerenciamento de Biblioteca
Livros e MembrosEmpréstimo de LivrosPratique por conta própria: Compilador de Ruby online