1.12. Czy można potraktować dany obiekt jak łańcuch?
Problem
Czy dany obiekt przejawia elementy funkcjonalności charakterystyczne dla łańcuchów?
Rozwiązanie
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) ...
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.