Один стиль для групових методів разом , так що ви використовуєте тільки private
і protected
один раз в класі максимум. Інший стиль - це вказати видимість відразу після визначення методу:
class Example
def my_private_method
end
private :my_private_method
def my_public_method
end
end
Починаючи з Ruby 2.1.0, def
повертає назву методу як символ, тому можливий більш впорядкований стиль:
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
(Зверніть увагу, що ми використовуємо private_class_method
для методів класу - інакше ми отримаємо, NameError: undefined method
оскільки private
очікуємо методу екземпляра. Навіть використовуючи його як макрос, як у вихідному прикладі, це впливає лише на видимість методів екземпляра.)
Мені найбільше подобається цей стиль вбудованої видимості, оскільки він дозволяє впорядковувати методи за вашим бажанням. Це зменшує ризик додавання нового методу в неправильному місці та ненавмисне перетворення його на приватний.
Що стосується синтаксису методу класу, замість цього ви можете впоратися з ним таким чином:
class Example
private def my_private_method
end
class << self
private def my_private_class_method
end
end
end
private def my_method...end