November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy zdefiniować metodę charakterystyczną dla całej klasy, nie dla jej poszczególnych obiektów. Chcemy także zdefiniować pewną metodę dla pojedynczego obiektu, nie dla wszystkich obiektów klasy.
W celu zdefiniowania metody klasowej należy w jej definicji poprzedzić jej nazwę nazwą klasy. Definicję tę można umieścić zarówno w obrębie klasy, jak i poza nią.
W poniższym przykładzie definiowana jest metoda Regexp.valid?, sprawdzająca, czy dany łańcuch można skompilować do postaci wyrażenia regularnego. Metoda ta ma związek z klasą Regexp (wykorzystuje jej metodę compile), lecz pozostaje bez związku z jakimś konkretnym obiektem tej klasy.
class Regexp def Regexp.is_valid?(str) ...