一つのスタイルは一緒ので、あなただけ使用することをグループの方法にある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