November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Czy dany obiekt przejawia elementy funkcjonalności charakterystyczne dla łańcuchów?
Sprawdź, czy obiekt definiuje metodę to_str.
'To jest napis'.respond_to? :to_str # => true Exception.new.respond_to? :to_str # => true 4.respond_to? :to_str # => false
Sformułowany powyżej problem możemy jednak rozważać w postaci bardziej ogólnej: czy mianowicie dany obiekt definiuje pewną konkretną metodę klasy String, z której to metody chcielibyśmy skorzystać. Oto przykład konkatenacji obiektu z jego następnikiem i konwersji wyniku do postaci łańcucha — to wszystko wykonalne jest jednak tylko wtedy, gdy obiekt definiuje metodę succ wyznaczającą następnik:
def join_to_successor(s) ...