Wyszukiwanie w katalogu
Część sekcji Programowanie obiektowe ścieżki Ruby w Coddy. Lekcja 53 z 57.
Wyzwanie
ŁatwyDodaj polecenie SEARCH. Wszystkie polecenia z poprzednich kroków muszą nadal działać dokładnie tak jak wcześniej.
SEARCH text: tekst może zawierać spacje. Odpowiedz jednym wierszem dla każdej książki, której tytuł zawiera ten tekst, bez rozróżniania wielkości liter, w kolejności według identyfikatora książki:Dune (available)lubEmma (borrowed by ada). Jeśli nie ma dopasowań, odpowiedzno matches.
Dostarczony kod przekazuje każdy wiersz wejściowy do library.handle(line) i wypisuje każdą zwróconą odpowiedź w osobnym wierszu. Imiona członków to pojedyncze słowa zapisane małymi literami, identyfikatory książek to liczby całkowite, a dane wejściowe zawierają wyłącznie opisane dotąd polecenia. Na każde inne polecenie odpowiedzią jest unknown command.
Twój kod umieść w plikach book.rb, member.rb i library.rb. Plik main.rb zawiera dostarczony kod wejścia/wyjścia i nie można go edytować.
Spróbuj swoich sił
require_relative 'book'
require_relative 'member'
require_relative 'library'
# Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
input = []
while (line = gets)
input << line.chomp
end
library = Library.new
input.each do |line|
library.handle(line).each { |reply| puts reply }
end
Wszystkie lekcje w sekcji Programowanie obiektowe
1Klasy i obiekty
Praca z plikamiDefiniowanie klasZmienne instancjiMetody i selfto_s i inspectPowtórzenie – karta biblioteczna4Hermetyzacja
Metody prywatneMetody chronionePrywatne setteryOchrona stanuPowtórzenie – automat vendingowy7Polimorfizm i typowanie kacze
PolimorfizmTypowanie kaczeMetody abstrakcyjnecase i klasyPowtórzenie – metody płatności10Wzorce projektowe, część 2
Delegowanie z ForwardableWzorzec dekoratoraWzorzec budowniczegoWzorzec stanu2Metody dostępowe i self
Gettery i setteryWłasne setteryself w metodachTożsamość i równośćPowtórzenie – lista kontaktów5Dziedziczenie
PodklasyNadpisywanie metodWywoływanie superis_a? i przodkowiePowtórka – lista płac pracowników8Metody specjalne
Równość i hashMetody operatorówIndeksowanie i dodawanieWłasne kolekcjePowtórka – ułamki11Projekt: Zarządzanie biblioteką
Książki i czytelnicyWypożyczanie książekPoćwicz samodzielnie: Kompilator Ruby online