Salah satu gayanya adalah mengelompokkan metode bersama sehingga Anda hanya menggunakan private
dan paling banyak protected
sekali per kelas. Gaya lainnya adalah menentukan visibilitas tepat setelah definisi metode:
class Example
def my_private_method
end
private :my_private_method
def my_public_method
end
end
Sejak Ruby 2.1.0 def
mengembalikan nama metode sebagai simbol, jadi gaya yang lebih ramping dimungkinkan:
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
(Perhatikan bahwa kami menggunakan private_class_method
untuk metode kelas - jika tidak, kami akan mendapatkannya NameError: undefined method
karena private
mengharapkan metode instance. Bahkan ketika menggunakannya sebagai makro seperti dalam contoh asli, itu hanya memengaruhi visibilitas metode instance.)
Saya paling suka gaya visibilitas sebaris ini, karena memungkinkan Anda mengatur metode sesuai keinginan. Ini mengurangi risiko menambahkan metode baru di tempat yang salah dan secara tidak sengaja menjadikannya pribadi.
Sedangkan untuk sintaks metode kelas, Anda dapat menanganinya dengan cara ini:
class Example
private def my_private_method
end
class << self
private def my_private_class_method
end
end
end
private def my_method...end