10.6. Śledzenie zmian dokonywanych w danej klasie
Podziękowania dla Phila Thomsona
Problem
Chcemy być powiadamiani o każdej zmianie dokonanej w ramach klasy: zdefiniowaniu nowej metody, anulowaniu lub zmodyfikowaniu definicji istniejącej metody oraz włączeniu do klasy modułu-domieszki.
Rozwiązanie
Należy w odnośnej klasie zdefiniować metody klasowe o nazwach method_added
, method_ removed
i method_undefined
. Będą one wywoływane każdorazowo, gdy w klasie zostanie (odpowiednio) zdefiniowana nowa metoda, usunięta definicja metody lub anulowana definicja metody.
W poniższym przykładzie dodanie, usunięcie lub anulowanie definicji metody kwitowane jest odpowiednim komunikatem; gdy zmiana dotyczy metody important
, generowany jest wyjątek: ...
Get Ruby. Receptury now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.