Un estilo es a métodos de grupo juntos para que utilice sólo private
y protected
una vez por clase como máximo. Otro estilo es especificar la visibilidad justo después de la definición del método:
class Example
def my_private_method
end
private :my_private_method
def my_public_method
end
end
A partir de Ruby 2.1.0 def
devuelve el nombre del método como símbolo, por lo que es posible un estilo más simplificado:
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
(Tenga en cuenta que usamos private_class_method
para métodos de clase; de lo contrario, obtendríamos NameError: undefined method
ya que private
espera un método de instancia. Incluso cuando se usa como una macro como en el ejemplo original, solo afecta la visibilidad de los métodos de instancia).
Me gusta más este estilo de visibilidad en línea, ya que le permite organizar los métodos como desee. Disminuye el riesgo de agregar un nuevo método en el lugar equivocado y hacerlo privado inadvertidamente.
En cuanto a la sintaxis del método de clase, puede manejarlo de esta manera:
class Example
private def my_private_method
end
class << self
private def my_private_class_method
end
end
end
private def my_method...end