November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Podziękowania dla Phila Thomsona
Chcemy dodać metody instancyjne modułu tylko do wybranego obiektu, nie do całej klasy — chcemy bowiem uzyskać specyficzne własności jedynie wybranych obiektów.
Należy wykorzystać metodę Object#extend.
Załóżmy na przykład, że definiujemy klasę reprezentującą ludzi statecznych:
class Osoba
attr_reader :nazwisko, :wiek, :profesja
def initialize(nazwisko, wiek, profesja)
@nazwisko, @wiek, @profesja = nazwisko, wiek, profesja
end
def stateczny?
true
end
end
Utwórzmy kilka instancji tej klasy:
jimmy = Osoba.new('Jimmy Olsen', 21, 'dziennikarz') clark = Osoba.new('Clark Kent', 35, 'reporter') jimmy.stateczny? # => true clark.stateczny? ...