November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Przed nadpisaniem zawartości oryginalnego pliku chcemy utworzyć jego kopię; postępowanie to chcemy wielokrotnie powtarzać, za każdym razem nadając docelowemu plikowi inną nazwę, jednak bazującą na nazwie oryginalnej.
Nazwę kolejnej kopii zapasowej możemy tworzyć przez dołączenie do nazwy oryginalnej przyrostka identyfikującego kolejną wersję. Począwszy od pewnego przyrostka „startowego”, na przykład '.0', za pomocą metody String#succ możemy generować kolejne nazwy aż do uzyskania nazwy pliku nieistniejącego.
class File def File.versioned_filename(base, first_suffix='.0') suffix = nil filename = base while File.exists?(filename) suffix = (suffix ? suffix.succ : first_suffix) ...