Préstamo de libros
Parte de la sección Programación orientada a objetos del Journey de Ruby de Coddy. Lección 51 de 57.
Desafío
FácilAñade el comando BORROW. Mantén todos los comandos de los pasos anteriores funcionando exactamente como antes.
BORROW name id: comprueba en este orden y responde con el primer problema:no member bo,no book 9,Dune is not available,ada has reached the limit(los miembros pueden tener como máximoLIMIT, 2, libros). De lo contrario, registra el préstamo tanto en el libro como en el miembro y respondeada borrowed Dune.
El código proporcionado pasa cada línea de entrada a library.handle(line) e imprime cada respuesta devuelta en su propia línea. Los nombres de los miembros son palabras individuales en minúsculas, los identificadores de los libros son números enteros y la entrada solo contiene los comandos descritos hasta ahora. Cualquier otro comando responde unknown command.
Tu código debe ir en book.rb, member.rb y library.rb. main.rb contiene el código proporcionado de entrada/salida y no se puede editar.
Pruébalo tú mismo
require_relative 'book'
require_relative 'member'
require_relative 'library'
# Código de entrada/salida suministrado: déjalo tal 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 las lecciones de Programación orientada a objetos
1Clases y objetos
Trabajar con archivosDefinir clasesVariables de instanciaMétodos y selfto_s e inspectRepaso: tarjeta de biblioteca4Encapsulación
Métodos privadosMétodos protegidosAsignadores privadosProtección del estadoRepaso: máquina expendedora7Polimorfismo y tipado pato
PolimorfismoTipado patoMétodos abstractoscase y clasesRepaso: métodos de pago2Accesores y self
Lectores y escritoresSetters personalizadosself en los métodosIdentidad e igualdadRepaso: lista de contactos5Herencia
SubclasesSobrescritura de métodosLlamar a superis_a? y ancestrosRepaso - Nómina del personal8Métodos especiales
Igualdad y hashMétodos de operadoresIndexación y adiciónColecciones personalizadasRepaso: fracciones11Proyecto: Gestión de biblioteca
Libros y miembrosPréstamo de librosPractica por tu cuenta: Compilador de Ruby online