Búsqueda en el catálogo
Parte de la sección Programación orientada a objetos del Journey de Ruby de Coddy. Lección 53 de 57.
Desafío
FácilAñade el comando SEARCH. Mantén todos los comandos de los pasos anteriores funcionando exactamente como antes.
SEARCH text: el texto puede contener espacios. Responde con una línea por cada libro cuyo título contenga el texto, sin distinguir entre mayúsculas y minúsculas, en orden de id del libro:Dune (available)oEmma (borrowed by ada). Si no hay coincidencias, respondeno matches.
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 ids 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 estar en book.rb, member.rb y library.rb. main.rb contiene el código de entrada/salida proporcionado 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 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