Jeden styl polega na grupowaniu metod razem, tak aby można było używać tylko private
i protected
maksymalnie raz na klasę. Innym stylem jest określenie widoczności zaraz po definicji metody:
class Example
def my_private_method
end
private :my_private_method
def my_public_method
end
end
Począwszy od Ruby 2.1.0 def
zwraca nazwę metody jako symbol, więc możliwy jest bardziej uproszczony styl:
class Example
private def my_private_method
end
def my_public_method
end
protected def my_protected_method
end
private_class_method def self.my_private_class_method
end
end
(Zauważ, że używamy private_class_method
dla metod klasowych - w przeciwnym razie otrzymalibyśmy NameError: undefined method
odprivate
oczekuje metody instancji. Nawet jeśli używamy jej jako makra, jak w oryginalnym przykładzie, wpływa to tylko na widoczność metod instancji.)
Najbardziej podoba mi się ten styl widoczności w wierszu, ponieważ pozwala on na dowolną organizację metod. Zmniejsza ryzyko dodania nowej metody w niewłaściwym miejscu i nieumyślnego uczynienia jej prywatną.
Jeśli chodzi o składnię metody klas, możesz to obsłużyć w ten sposób:
class Example
private def my_private_method
end
class << self
private def my_private_class_method
end
end
end
private def my_method...end