Cercare nel catalogo
Fa parte della sezione Programmazione orientata agli oggetti del percorso Ruby di Coddy. Lezione 53 di 57.
Sfida
FacileAggiungi il comando SEARCH. Fai in modo che tutti i comandi dei passaggi precedenti continuino a funzionare esattamente come prima.
SEARCH text: il testo può contenere spazi. Rispondi con una riga per ogni libro il cui titolo contiene il testo, ignorando maiuscole e minuscole, in ordine di ID del libro:Dune (available)oppureEmma (borrowed by ada). Se non ci sono corrispondenze, rispondino matches.
Il codice fornito passa ogni riga di input a library.handle(line) e stampa ogni risposta restituita su una riga distinta. I nomi dei membri sono parole singole in minuscolo, gli ID dei libri sono numeri interi e l’input contiene solo i comandi descritti finora. Per qualsiasi altro comando, la risposta è unknown command.
Il tuo codice va inserito in book.rb, member.rb e library.rb. main.rb contiene il codice di input/output fornito e non può essere modificato.
Provalo tu
require_relative 'book'
require_relative 'member'
require_relative 'library'
# Codice di input/output fornito: lascialo così com'è
input = []
while (line = gets)
input << line.chomp
end
library = Library.new
input.each do |line|
library.handle(line).each { |reply| puts reply }
end
Tutte le lezioni di Programmazione orientata agli oggetti
1Classi e oggetti
Lavorare con i fileDefinire le classiVariabili d'istanzaMetodi e selfto_s e inspectRipasso - Tessera della biblioteca4Incapsulamento
Metodi privatiMetodi protettiSetter privatiProteggere lo statoRiepilogo - Distributore automatico7Polimorfismo e Duck Typing
PolimorfismoDuck TypingMetodi astratticase e classiRiepilogo - Metodi di pagamento10Pattern di progettazione Parte 2
Delegazione con ForwardablePattern DecoratorPattern BuilderPattern State2Metodi di accesso e self
Metodi di lettura e scritturaSetter personalizzatiself nei metodiIdentità e uguaglianzaRiepilogo - Elenco contatti5Ereditarietà
SottoclassiRidefinizione dei metodiChiamare superis_a? e antenatiRiepilogo - Paghe del personale8Metodi speciali
Uguaglianza e hashMetodi degli operatoriIndicizzazione e appendCollezioni personalizzateRiepilogo - Frazioni11Progetto: Gestione della biblioteca
Libri e iscrittiPrendere in prestito i libriEsercitati da solo: Compilatore Ruby online