November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Dysponujemy klasą, której jedna z metod zawiera błąd. Wiemy, na czym błąd ten polega i w jaki sposób można go poprawić, nie chcemy jednak (lub nie możemy) ingerować w obcy kod źródłowy.
Otwieramy definicję klasy, aliasujemy błędną metodę i pod jej oryginalną nazwą definiujemy poprawną wersję.
Oto jeden z opisanych przypadków: metoda Multiplier#podwojenie wbrew swojej nazwie zwraca trzykrotną, nie dwukrotną wartość argumentu:
class Multiplier
def podwojenie(value)
return value * 3 # Błąd!!!.
end
end
m = Multiplier.new
m.podwojenie(6) # => 18
Otwierając definicję klasy Multiplier, zmieniamy nazwę błędnej metody, po czym pod oryginalną nazwą implementujemy jej poprawną wersję. ...