7.10. Kod inicjujący i kończący dla bloku kodowego
Problem
Przed rozpoczęciem iteracji związanej z cyklicznym wykonywaniem bloku kodowego konieczne jest jednokrotne wykonanie pewnego kodu inicjującego; analogicznie po zakończeniu iteracji należy wykonać jednokrotnie pewien kod kończący. Kod kończący powinien być wykonany także wtedy, gdy w trakcie iteracji wystąpi wyjątek. Nie można przy tym obarczać tym zadaniem aplikacji wywołującej metodę organizującą iterację.
Rozwiązanie
Wykonanie kodu inicjującego (setup) i kończącego (cleanup) można zapewnić dzięki następującej konstrukcji:
def between_setup_and_cleanup setup() # kod inicjujący begin yield # iteracja finally cleanup() # kod kończący end end
Oto konkretny przykład. W ramach iteracji ...
Get Ruby. Receptury now with O’Reilly online learning.
O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.